ImageVerifierCode 换一换
格式:PPT , 页数:95 ,大小:284.50KB ,
文档编号:2775048      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-2775048.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(微型计算机接口技术课件第三章1.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

微型计算机接口技术课件第三章1.ppt

1、第第3章章 指令系统(指令系统(1)主要内容:主要内容:l指令系统的一般概念指令系统的一般概念l对操作数的寻址方式对操作数的寻址方式l六大类指令的操作原理六大类指令的操作原理操作码的含义操作码的含义指令对操作数的要求指令对操作数的要求指令执行的结果指令执行的结果3.1 概述概述了解:了解:l指令及指令系统指令及指令系统l指令的格式指令的格式l指令中的操作数类型指令中的操作数类型一、指令与指令系统一、指令与指令系统指令:指令:控制计算机完成某种操作的命令控制计算机完成某种操作的命令指令系统:指令系统:处理器所能识别的所有指令的集合处理器所能识别的所有指令的集合指令的兼容性:指令的兼容性:同一系列

2、机的指令都是兼容的同一系列机的指令都是兼容的二、指令格式二、指令格式指令中应包含的信息:指令中应包含的信息:运算数据的来源运算数据的来源运算结果的去向运算结果的去向执行的操作执行的操作指令格式:指令格式:操作码操作码 操作数操作数,操作数操作数执行何种操作执行何种操作目标操作数目标操作数源操作数源操作数参加操作的数据参加操作的数据或数据存放的地址或数据存放的地址指令格式:指令格式: 零操作数指令:零操作数指令: 操作码操作码 单操作数指令:单操作数指令: 操作码操作码 操作数操作数双操作数指令:双操作数指令: 操作码操作码 操作数,操作数操作数,操作数多操作数指令:多操作数指令: 三操作数及以

3、上三操作数及以上三、指令中的操作数三、指令中的操作数表征参加操作的数据本身表征参加操作的数据本身 立即数立即数表征数据存放的地址表征数据存放的地址寄存器寄存器存储器存储器操作数:操作数:立即数操作数:立即数操作数:l表示参加操作的数据本身,可以是表示参加操作的数据本身,可以是8位或位或16位位 例:例: MOV AX,1234H MOV BL,22Hl立即数无法作为目标操作数立即数无法作为目标操作数l立即数可以是无符号或带符号数,其数值应在立即数可以是无符号或带符号数,其数值应在可取值范围内可取值范围内操作数:操作数:寄存器操作数:寄存器操作数:l表示参加运算的数存放在指令给出的寄存器中,表示

4、参加运算的数存放在指令给出的寄存器中,可以是可以是16位或位或8位。位。l例:例:MOV AX,BX MOV DL,CH操作数:操作数: 存储器操作数:存储器操作数:l表示当前参加运算的数存放在存储器的某一个表示当前参加运算的数存放在存储器的某一个或某两个单元中或某两个单元中l例:例:MOV AX,1200H MOV AL,1200H22H11H1200H偏移地址偏移地址AH AL 四、指令字长与机器字长四、指令字长与机器字长l指令字长由操作码的长度、操作数地址长度、指令字长由操作码的长度、操作数地址长度、操作数个数决定操作数个数决定l8088/8086CPU采用变字长指令格式采用变字长指令格

5、式l机器字长:机器字长: 计算机能够直接处理的二进制数的位数计算机能够直接处理的二进制数的位数五、指令的执行速度五、指令的执行速度l指令的字长影响指令的执行速度指令的字长影响指令的执行速度 (常用指令的执行时间见表(常用指令的执行时间见表3-1)l对不同的操作数,指令执行的时间不同:对不同的操作数,指令执行的时间不同: 存储器存储器 立即数立即数 寄存器寄存器快!快!3.2 寻址方式寻址方式 寻找操作数所在地址的方法寻找操作数所在地址的方法 寻找转移地址的方法寻找转移地址的方法 本节本节一、立即寻址一、立即寻址l指令中的源操作数是立即数,即源操作数是参指令中的源操作数是立即数,即源操作数是参加

6、操作的数据本身加操作的数据本身l例:例:MOV AX,1234H12H34HAH ALMOV代代码码段段 二、直接寻址二、直接寻址l指令中直接给出操作数指令中直接给出操作数的偏移地址的偏移地址l例:例:MOV AX,1200H22H11H1200H偏移地址偏移地址AH AL 11 22数数据据段段直接寻址直接寻址l直接寻址方式下,操作数的段地址默认为数据直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。段,但允许段重设,即由指令定义段。l例:例:MOV AX,ES:1200H三、寄存器寻址三、寄存器寻址l参加操作的操作数在参加操作的操作数在CPU的通用寄存器中。的通用寄

7、存器中。l例:例:MOV AX,BX AX BX四、寄存器间接寻址四、寄存器间接寻址l参与操作的操作数存放在内存中,其偏移地址参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。为指令中的寄存器的内容。l例:例:MOV AX,BX 设(设(BX)=1200H22H11H1200H偏移地址偏移地址AH AL 11 22数数据据段段代代码码段段MOV寄存器间接寻址寄存器间接寻址l由寄存器间接给出操作数的偏移地址由寄存器间接给出操作数的偏移地址l存放偏移地址的寄存器称为间址寄存器存放偏移地址的寄存器称为间址寄存器,它们它们是:是:BX,BP,SI,DIl操作数的段地址(数据处于哪个段)取

8、决于选操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:择哪一个间址寄存器: BX,SI,DI 默认在数据段默认在数据段 BP 默认在堆栈段默认在堆栈段寄存器间接寻址寄存器间接寻址寄存器寄存器间接寻址间接寻址基址寻址(间址基址寻址(间址寄存器为基址寄存寄存器为基址寄存 器器BX,BP)变址寻址(间址变址寻址(间址寄存器为变址寄存寄存器为变址寄存 器器SI,DI)五、寄存器相对寻址五、寄存器相对寻址l操作数的偏移地址为寄存器的内容加上一个位操作数的偏移地址为寄存器的内容加上一个位移量移量l例:例:MOV AX,BX+DATA 设设DS=2000H,BX=0220H,DATA=05H 则

9、:则:AX=20225H 六、基址、变址寻址六、基址、变址寻址l操作数的偏移地址为一个基址寄存器的内容加操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,操作数的段地址由上一个变址寄存器的内容,操作数的段地址由选择的基址寄存器决定选择的基址寄存器决定l例:例:MOV AX,SI+BX七、基址、变址、相对寻址七、基址、变址、相对寻址l操作数的偏移地址为一个基址寄存器的内容加操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,再加上一个位移量上一个变址寄存器的内容,再加上一个位移量l操作数的段地址由选择的基址寄存器决定操作数的段地址由选择的基址寄存器决定l例:例:MOV

10、AX,BP+SI+DATA八、隐含寻址八、隐含寻址l指令隐含了的一个或两个操作数的地址,即操指令隐含了的一个或两个操作数的地址,即操作数在默认的地址中作数在默认的地址中l例:例: MUL BL 指令的执行:指令的执行:ALBL AX3.3 8086指令系统指令系统从功能上包括六大类:从功能上包括六大类:数据传送数据传送算术运算算术运算逻辑运算和移位逻辑运算和移位串操作串操作程序控制程序控制处理器控制处理器控制一、数据传送一、数据传送l通用数据传送通用数据传送l输入输出输入输出l地址传送地址传送l标志位操作标志位操作1. 通用数据传送通用数据传送一般数据传送指令一般数据传送指令堆栈操作指令堆栈操

11、作指令交换指令交换指令查表转换指令查表转换指令字位扩展指令字位扩展指令特点:特点:该类指令的执行对标志位不产生影响该类指令的执行对标志位不产生影响 一般数据传送指令一般数据传送指令l一般数据传送指令一般数据传送指令 MOVl格式:格式:MOV dest,srcl操作:操作:src destl例:例: MOV AL,BL一般数据传送指令一般数据传送指令注:注:l两操作数字长必须相同两操作数字长必须相同 l两操作数不允许同时为存储器操作数两操作数不允许同时为存储器操作数l两操作数不允许同时为段寄存器两操作数不允许同时为段寄存器l在源操作数是立即数时,目标操作数不能是段在源操作数是立即数时,目标操作

12、数不能是段寄存器寄存器lIP和和CS不作为目标操作数,不作为目标操作数,FLAGS一般也不一般也不作为操作数在指令中出现作为操作数在指令中出现一般数据传送指令一般数据传送指令判断下列指令的正确性:判断下列指令的正确性:lMOV AL,BXlMOV AX,SI05HlMOV BXBP,BXlMOV DS,1000HlMOV DX,09HlMOV 1200,SI一般数据传送指令应用例一般数据传送指令应用例将将( (* *) ) 的的ASCIIASCII码码2 2AHAH送入内存送入内存10001000H H开始的开始的100100个个单元中:单元中: MOV DIMOV DI,1000H1000H

13、 MOV CX MOV CX,64H64H MOV AL MOV AL,2AH2AHAGAINAGAIN:MOV DIMOV DI,ALAL INC DI INC DI ;DI+1DI+1 DEC CX DEC CX ;CX-1CX-1 JNZ AGAIN JNZ AGAIN ;CX0CX0则继续则继续 HLT HLT 上段程序在代码段中的存放形式上段程序在代码段中的存放形式設設CS=109EHCS=109EH,IP=0100HIP=0100H,则各条指令存放地址则各条指令存放地址如下:如下: CS : IPCS : IP 109E 109E:0100 0100 MOV DIMOV DI,10

14、00H1000H 109E 109E:0103 MOV CX0103 MOV CX,64H64H 109E 109E:0106 MOV AL0106 MOV AL,2AH2AH 109E 109E:0108 MOV DI0108 MOV DI,ALAL 109E 109E:010A INC DI010A INC DI 109E 109E:010B 010B DEC CXDEC CX 109E 109E:010C JNZ 0108010C JNZ 0108 109E 109E:010E HLT010E HLT数据段中的分布数据段中的分布 送上送上2 2AHAH后数据段中相应存储单元的内容改后数据

15、段中相应存储单元的内容改变如下:变如下:DSDS:1000 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A 1000 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DSDS:1010 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A 1010 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DSDS:1020 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A

16、1020 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DSDS:1030 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A1030 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2ADSDS:1040 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A 1040 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DSDS:1050 2A 2A 2A 2A 2A 2A

17、 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A 1050 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DSDS:1060 2A 2A 2A 2A 00 00 00 00 00 00 00 00 00 00 00 001060 2A 2A 2A 2A 00 00 00 00 00 00 00 00 00 00 00 00偏移地址偏移地址DI堆栈操作指令堆栈操作指令掌握:掌握:l有关堆栈的概念有关堆栈的概念 栈顶、栈首、栈底栈顶、栈首、栈底l堆栈指令的操作原理堆栈指令的操作原理 执行过程,执行结果执行过程,执行结果堆栈操作的原则堆栈

18、操作的原则l先进后出先进后出l以字为单位以字为单位堆栈操作指令堆栈操作指令l压栈指令压栈指令 PUSH 格式格式: PUSH OPRDl出栈指令出栈指令 POP 格式格式: POP OPRD 压栈指令压栈指令 PUSHl指令执行过程:指令执行过程: (SP (SP)(SPSP)-2-2 (SPSP)-1-1操作数高字节操作数高字节 (SPSP)-2-2操作数低字节操作数低字节压栈指令的操作压栈指令的操作设设AX=1234H,SP=1200H执行执行 PUSH AX 指令后堆栈区的状态:指令后堆栈区的状态: 1200H 堆堆栈栈段段 SP-2=11FEH12H34H1200H 堆堆栈栈段段12H

19、 34HAX入栈后入栈后入栈前入栈前出栈指令出栈指令POPl指令执行过程:指令执行过程: (SPSP) 操作数低字节操作数低字节 (SPSP)+1 +1 操作数高字节操作数高字节 (SP (SP)(SPSP)+2+2出栈指令的操作出栈指令的操作执行执行 POP AX 堆栈区的状态:堆栈区的状态:12H34H11FEH 堆堆栈栈段段代代码码段段PUSH 12 34 AX SP+2堆栈操作指令说明堆栈操作指令说明l指令的操作数必须是指令的操作数必须是1616位的位的l操作数可以是寄存器或存储器两单元,但不能操作数可以是寄存器或存储器两单元,但不能是立即数是立即数l不能从栈顶弹出一个字给不能从栈顶弹

20、出一个字给CSCSlPUSHPUSH和和POPPOP指令在程序中一般成对出现指令在程序中一般成对出现lPUSHPUSH指令的操作方向是从高地址向低地址,而指令的操作方向是从高地址向低地址,而POPPOP指令的操作正好相反指令的操作正好相反堆栈操作指令例堆栈操作指令例lPUSH AXlPUSH BXlPUSH WORD PTRBXlPOP WORD PTRBXlPOP AXlPOP BX 如此,会使如此,会使AX和和BX的内容互换的内容互换交换指令交换指令l格式:格式: XCHG REG XCHG REG,MEM/REGMEM/REGl两操作数必须有一个是寄存器操作数两操作数必须有一个是寄存器操

21、作数l不允许使用段寄存器。不允许使用段寄存器。l例:例: XCHGXCHGAXAX,BXBX XCHG XCHG20002000,CLCL查表指令查表指令l格式:格式: XLATl说明:用说明:用BX的内容代表表格首地址,的内容代表表格首地址,AL内容内容为表内位移量,为表内位移量,BX+AL得到要查找元素的偏得到要查找元素的偏移地址移地址l操作:操作:BX+AL ALl例:教材第例:教材第112页页查表指令例查表指令例数据段中存放有一数据段中存放有一张张ASCIIASCII码转换表,码转换表,设首地址为设首地址为20002000H H,现欲查出表中第现欲查出表中第1111个代码的个代码的AS

22、CIIASCII码码(设(设DS=4000HDS=4000H)303132.394142.4546.42000H+042000H+110129ABEF查表指令例查表指令例字位扩展指令字位扩展指令 l将符号数的符号位扩展到高位将符号数的符号位扩展到高位l指令为零操作数指令,采用隐含寻址,隐含的指令为零操作数指令,采用隐含寻址,隐含的操作数为操作数为AX及及AX,DXl无符号数的扩展规则为在高位补无符号数的扩展规则为在高位补0字节到字的扩展指令字节到字的扩展指令l格式:格式: CBWl操作:将操作:将AL内容扩展到内容扩展到AXl规则:若最高位规则:若最高位=1,则执行后,则执行后AH=FFH 若

23、最高位若最高位=0,则执行后,则执行后AH=00H字到双字的扩展指令字到双字的扩展指令l格式:格式: CWDl操作:将操作:将AX内容扩展到内容扩展到DX AXl规则:若最高位规则:若最高位=1,则执行后,则执行后DX=FFFFH 若最高位若最高位=0,则执行后,则执行后DX=0000H字位扩展指令例字位扩展指令例 MOV AL,44H CBW ;执行结果执行结果 MOV AX,0AFDEH CWD MOV AL,86H CBW?2. 输入输出指令输入输出指令掌握:掌握:l指令的格式及操作指令的格式及操作l指令的两种寻址方式指令的两种寻址方式l指令对操作数的要求指令对操作数的要求输入输出指令输

24、入输出指令l专门面向专门面向I/O端口操作的指令端口操作的指令l包括包括输入指令输入指令 IN acc,PORT输出指令输出指令 OUT PORT,acc端口地址端口地址指令寻址方式指令寻址方式l直接寻址直接寻址l直接给出直接给出8位端口地址,可寻址位端口地址,可寻址256个端口个端口l间接寻址间接寻址 16位端口地址由位端口地址由DX指定,可寻址指定,可寻址64K个端口个端口I/O指令例指令例lIN AX,80HlMOV DX,2400HlIN AL,DXlOUT DX,AXlOUT AL,35H 3. 地址传送指令地址传送指令取偏移地址指令取偏移地址指令LEALDS指令指令LES指令指令取

25、偏移地址指令取偏移地址指令LEAl将变量的将变量的1616位偏移地址取出送目标寄存器位偏移地址取出送目标寄存器l格式:格式: LEA REG LEA REG,MEM MEM l指令要求源操作数必须是一个存储器操作数,指令要求源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器,目标操作数通常是间址寄存器,LEA指令指令l比较下列指令:比较下列指令: LEA SI,DATA1 MOV SI,DATA1 MOV BX,BX LEA BX,BX DATA1符号符号地址地址12H34H1100H88H77HBX=1100HLEA指令在程序中的应用指令在程序中的应用l将数据段中首地址为将数据段中首

26、地址为MEM1 的的50个字节的数据个字节的数据传送到同一逻辑段首地址为传送到同一逻辑段首地址为MEM2的区域存放。的区域存放。编写相应的程序段编写相应的程序段 LEA指令在程序中的应用指令在程序中的应用 开开 始始取源地址取源地址取目标地址取目标地址送数据块长度到送数据块长度到CL传送一个字节传送一个字节修改地址指针修改地址指针修改计数值修改计数值计数值计数值=0? 结结 束束NYLEA指令在程序中的应用指令在程序中的应用 LEA SI,MEM1 LEA DI,MEM2 MOV CL,50NEXT: MOV AL,SI MOV DI,AL INC SI INC DI DEC CL JNZ N

27、EXT HLT 取远地址指针指令取远地址指针指令 LDS reg,MEM32 LES reg,MEM32l指令中源操作数是存储器某指令中源操作数是存储器某4个连续单元的偏个连续单元的偏移地址,目标操作数是间址寄存器。移地址,目标操作数是间址寄存器。LDS指令例指令例l例:例: LDS DI,1200H MOV AX,DI 指令执行后:指令执行后:LDS指令例指令例lDS = 6000Hl DI = 1234HlAX = 2233H 12H34H00H60H1200H数数据据段段 1 DSDI数数据据段段233H22H61234HLES指令例指令例 LES DI,1200H MOV AX,DI

28、12H34H00H60H1200H数数据据段段 ESDI附附加加段段33H22H61234H4. 标志位操作指令标志位操作指令 LAHFSAHFPUSHFPOPF隐含操作数隐含操作数AH隐含操作数隐含操作数FLAGSLAHF,SAHFlLAHF ;将将FLAGS的低的低8位装入位装入AHlSAHF ;执行与执行与LAHF相反的操作相反的操作CFPFAFZFCF.AHFLAGSD15D0D7D0PUSHF,POPFl针对针对FLAGS的堆栈操作指令的堆栈操作指令 将标志寄存器压栈或从堆栈弹出将标志寄存器压栈或从堆栈弹出二、算术运算类指令二、算术运算类指令加法运算指令加法运算指令减法运算指令减法运

29、算指令乘法指令乘法指令除法指令除法指令算术运算指令的执行大多算术运算指令的执行大多对状态标志位会产生影响对状态标志位会产生影响1. 加法指令加法指令 普通加法指令普通加法指令ADD 带进位位的加法指令带进位位的加法指令ADC 加加1指令指令INC加法指令对操作数的要加法指令对操作数的要求与求与MOV指令相同指令相同ADD指令指令l格式:格式: ADD OPRD1,OPRD2l操作:操作: OPRD1+OPRD2 OPRD1ADD指令的执行对全部指令的执行对全部6个个状态标志位都产生影响状态标志位都产生影响ADD指令例指令例 MOV AL,78H ADD AL,99H指令执行后指令执行后6个状态

30、标志位的状态个状态标志位的状态ADD指令例指令例 01111000 + 10011001 000100011标志位状态:标志位状态: CF= SF= AF= ZF= PF= OF=ADC指令指令l指令格式、对操作数的要求、对标志位的影响指令格式、对操作数的要求、对标志位的影响与与ADD指令完全一样指令完全一样l指令的操作:指令的操作: OPRD1+OPRD2+CF OPRD1lADC指令多用于多字节数相加,使用前要先将指令多用于多字节数相加,使用前要先将CF清零。清零。INC指令指令l格式:格式: INC OPRDl操作:操作: OPRD+1 OPRD常用于在程序中修改地址指针常用于在程序中修

31、改地址指针不能是段寄存器不能是段寄存器或立即数或立即数2. 减法指令减法指令普通减法指令普通减法指令SUB考虑借位的减法指令考虑借位的减法指令SBB减减1指令指令DEC比较指令比较指令CMP求补指令求补指令NEG减法指令对操作数的要求减法指令对操作数的要求与对应的加法指令相同与对应的加法指令相同SUB指令指令l格式:格式: SUB OPRD1,OPRD2l操作:操作: OPRD1- OPRD2 OPRD1l对标志位的影响与对标志位的影响与ADD指令同指令同SBB指令指令l指令格式、对操作数的要求、对标志位的影响指令格式、对操作数的要求、对标志位的影响与与SUB指令完全一样指令完全一样l指令的操

32、作:指令的操作: OPRD1- OPRD2- CF OPRD1DEC指令指令l格式:格式: DEC OPRDl操作:操作: OPRD - 1 OPRD指令对操作数的要求与指令对操作数的要求与INC相同相同指令常用于在程序中修改计数值指令常用于在程序中修改计数值应用程序例应用程序例 MOV BL,2NEXT1 :MOV CX,0FFFFHNEXT2: DEC CX JNZ NEXT2 DEC BL JNZ NEXT1 HLT NEG指令指令l格式:格式: NEG OPRDl操作:操作: 0 - OPRD OPRD8/16位寄存器或位寄存器或存储器操作数存储器操作数用用0减去操作数,相当于减去操作

33、数,相当于对该操作数求补码对该操作数求补码指令的两点注意请指令的两点注意请参见教材参见教材p121CMP指令指令l格式:格式: CMP OPRD1,OPRD2l操作:操作: OPRD1- OPRD2 指令执行的结果不影响目标操作数!指令执行的结果不影响目标操作数!CMP指令指令l用途:用途: 用于比较两个数的大小,可作为条件转移指令用于比较两个数的大小,可作为条件转移指令转移的条件转移的条件l指令对操作数的要求及对标志位的影响与指令对操作数的要求及对标志位的影响与SUB指令相同指令相同CMP指令指令l两个无符号数的比较:两个无符号数的比较: CMP AX,BX 若若 AX BX CF=0 若若

34、 AX BX OF和和SF状态不同状态不同 AX BX CMP指令例指令例 LEA BX,MAX LEA SI,BUF MOV CL,20 MOV AL,SINEXT:INC SI CMP AL,SI JNC GOON ;CF=0转 XCHG SI,ALGOON:DEC CL JNZ NEXT MOV BX,AL HLT程序功能程序功能 ?程序功能程序功能 MAXBUFXXHXXHXXH找找20个数中最大的数,个数中最大的数,并将其存放在并将其存放在MAX单单元中元中3. 乘法指令乘法指令无符号的乘法指令无符号的乘法指令MUL带符号的乘法指令带符号的乘法指令IMUL乘法指令采用隐含寻址,隐含的

35、是存放被乘乘法指令采用隐含寻址,隐含的是存放被乘数的累加器数的累加器AL或或AX及存放结果的及存放结果的AX,DX;若运算结果的高位全为若运算结果的高位全为0或或1,表示其为无效,表示其为无效数据,数据,OF=CF=0无符号数乘法指令无符号数乘法指令l格式:格式: MUL OPRD 不能是立即数不能是立即数l操作:操作: OPRD为字节数为字节数 ALOPRD AX OPRD为为16位数位数 AXOPRD DXAX无符号数乘法指令例无符号数乘法指令例lMUL BYTE PTRBX BXXXHAL XXHAX带符号数乘法指令带符号数乘法指令l格式:格式: IMUL OPRDIMUL指令将指令将O

36、PRD视为带符号数,运算时若操视为带符号数,运算时若操作作数为负数,要先将操作数求补码,运算后再将结数为负数,要先将操作数求补码,运算后再将结果求补。果求补。IMUL指令例指令例设:设:AL=FEHAL=FEH,CL=11HCL=11H,求求ALAL与与CLCL的乘积。的乘积。l若为无符号数,则若为无符号数,则 MUL CLMUL CL 结果:结果:AX=10DEHAX=10DEHl若将两操作数看作有符号数,则:若将两操作数看作有符号数,则: IMUL CL IMUL CL 指令执行后:指令执行后:AX=FFDEH=-34AX=FFDEH=-34。4. 除法指令除法指令无符号除法指令无符号除法

37、指令 DIV OPRD有符号除法指令有符号除法指令 IDIV OPRD若若OPRD是字节数,则执行是字节数,则执行AX/OPRD 若若OPRD是双字节数,则执行是双字节数,则执行 DXAX/OPRD 指令要求被除数是除数的双倍字长指令要求被除数是除数的双倍字长AL=商商AH=余数余数AX=商商DX=余数余数5. BCD码调整指令码调整指令l共共6条,均为隐含寻址方式,隐含的操作数是条,均为隐含寻址方式,隐含的操作数是 AL或或AL、AH;l不能单独使用,要紧跟在相应的算术运算指令不能单独使用,要紧跟在相应的算术运算指令 之后;之后;l执行结果为压缩执行结果为压缩BCD码或扩展码或扩展BCD码表

38、示的码表示的十进制数。十进制数。加法指令应用例加法指令应用例l计算计算2658+3619=2658+3619=? 结果存放在结果存放在SUMSUM单元单元l设被加数和加数的设被加数和加数的每一位都以每一位都以ASCIIASCII码码形式存放在内存中,形式存放在内存中,低位在前,高位在低位在前,高位在后。后。36H32H39H31HSTRING1STRING238H35H36H33H数数据据段段SUM.加法指令应用例加法指令应用例 LEA SI,STRING1 LEA DI,STRING2 LEA BX,SUM MOV CX,4 CLCNEXT:MOV AL,SI ADC AL,DI AAA MOV BX,AL INC SI INC DI INC BX DEC CX JNZ NEXT

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|