寻址方式和指令系统.ppt

上传人:本田雅阁 文档编号:2663995 上传时间:2019-05-02 格式:PPT 页数:49 大小:308.51KB
返回 下载 相关 举报
寻址方式和指令系统.ppt_第1页
第1页 / 共49页
寻址方式和指令系统.ppt_第2页
第2页 / 共49页
寻址方式和指令系统.ppt_第3页
第3页 / 共49页
寻址方式和指令系统.ppt_第4页
第4页 / 共49页
寻址方式和指令系统.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《寻址方式和指令系统.ppt》由会员分享,可在线阅读,更多相关《寻址方式和指令系统.ppt(49页珍藏版)》请在三一文库上搜索。

1、优秀精品课件文档资料,第2章 寻址方式和指令系统,2.1 寻址方式 2.2 数据传送类指令 2.3 算术运算类指令 2.4 位操作类指令 2.5 串操作类指令 2.6 控制转移类指令 2.7 处理机控制类指令,开 始,2.3 算术运算类指令,2.3.1 加法指令 2.3.2 减运算指令 2.3.3 乘运算指令 2.3.4 除运算指令 2.3.5 符号扩展指令 2.3.6 十进制调整指令,返回本章首页,2.3.1 加法指令,1加1指令 INC 2加指令ADD 3带进位加指令ADC,1加1指令 INC 语句格式:INC OPD 功能:将目的操作数加1,结果送目的地址。即(OPD)+1OPD。 IN

2、C指令是一个单操作数指令,操作数可以是寄存器或存储器操作数。 如:INC BX,即(BX)+1BX。 加1指令可用于对计数器和地址指针进行调整。,2加指令ADD 语句格式:ADD OPD, OPS 功能:将目的操作数与源操作数相加,结果存入目的地址中,源地址的内容不改变。 即(OPD)+(OPS)OPD。,3带进位加指令ADC 语句格式:ADC OPD,OPS 功能:将目的操作数加源操作数再加低位进位,结果送目的地址。 即(OPD)+(OPS)+CF OPD。 【例2.20】无符号双字加法运算。 Sum=0234 4652H + 0F0F0F 0F0H MOV AX,4652H ;(AX)=4

3、652H ADD AX,0F0F0H ;(AX)=3742H,CF=1 MOV DX,0234H ;(DX)=0234H ADC DX,0F0F0H ;(DX)=0F325H,CF=0,返回本节,2.3.2 减运算指令,1减1指令DEC 2减指令SUB 3求补指令NEG 4带借位减指令 SBB 5比较指令 CMP,1减1指令DEC 语句格式:DEC OPD 功能:将目的操作数减1,结果送目的地址。即(OPD)1OPD。 DEC指令是一个单操作数指令,操作数可以是寄存器或存储器操作数。 如:DEC CX。即(CX)1CX。 减1指令DEC也一般用于对计数器和地址指针的调整。,2减指令SUB 语句

4、格式:SUB OPD,OPS 功能:目的操作数减源操作数,结果存于目的地址,源地址内容不变。 即(OPD)(OPS)OPD 【例2.21】减法运算。 MOV AX ,5678H ;(AX)=5678H SUB AX ,1234H ;(AX)=4444H MOV BX ,3354H ;(BX)=3354H SUB BX ,3340H ;(BX)=0014H,3求补指令NEG 语句格式:NEG OPD 功能:将目的操作数的每一位求反(包括符号位)后加1,结果送目的地址。 即(OPD)+1OPD。 【例2.22】求补运算。 MOV AX,0FF64H NEG AL ;(AX)=0FF9CH SUB

5、AL,9DH ;(AX)=0FFFFH NEG AX ;(AX)=0001H DEC AL ;(AX)=0000H NEG AX ;(AX)=0000H,4带借位减指令 SBB 语句格式:SBB OPD ,OPS 功能:目的操作数减源操作数再减低位借位CF,结果送目的地址。 即(OPD)(OPS)CF OPD,5比较指令 CMP,语句格式:CMP OPD,OPS 功能:目的操作数减源操作数,结果只影响标志位,不送入目的地址。 即(OPD)(OPS)。 【例2.24】比较AL的内容数值大小。 CMP AL,50 ;(AL)50 JB BELOW ;(AL)=50,( AL)50AL INC AH

6、 ;(AH)+1AH BELOW: ,返回本节,2.3.3 乘运算指令,1无符号数乘法指令MUL 2有符号乘指令IMUL,1无符号数乘法指令MUL,语句格式: MUL OPS 功能: 若是字节数据相乘,(AL)与OPS相乘得到字数据存入AX中;若是字数据相乘,则(AX)与OPS相乘得到双字数据,高字存入DX、低字存入AX中。 即字节乘法:(AL)* (OPS) AX,字乘法:(AX) * (OPS) DX,AX OPS 不能使用立即数寻址方式 【例2.25】无符号数0A3H与11H相乘。 MOV AL,0A3H ;(AL)=0A3H MOV BL, 11H ;(BL)=11H MUL BL ;

7、(AX)=0AD3H,2有符号乘指令IMUL,语句格式:IMUL OPS 功能:字节乘法:(AL)*(OPS)AX,字乘法:(AX)*(OPS)DX、AX。 IMUL指令除计算对象是带符号二进制数外,其他都与MUL一样,但计算结果不同。 【例2.26】有符号数0B4H与11H相乘。 MOV AL,0B4H ;(AL)=B4H MOV BL,11H ;(BL)=11H IMUL BL ;(AX)=0FAF4H,返回本节,2.3.4 除运算指令,1无符号除指令DIV 2有符号除指令IDIV,1无符号除指令DIV 语句格式:DIV OPS 功能:字节除法:(AX)/(OPS) AL(商)、AH(余数

8、) 字除法:(DX、AX)/(OPS) AX(商)、DX(余数) OPS 不能使用立即数寻址方式 【例2.27】写出实现无符号数0400H / 0B4H运算的程序段。 MOV AX,0400H ;(AX)=0400H MOV BL,0B4H ;(BL)=0B4H DIV BL ;商(AL)=05H,余数(AH)=7CH,2有符号除指令IDIV 语句格式:IDIV OPS 功能:字节除法:(AX)/(OPS) AL(商)、AH(余数) 字除法:(DX,AX)/(OPS) AX (商)、DX(余数) 除法指令DIV和IDIV虽然对标志的影响未定义,但可产生溢出。 OPS 不能使用立即数寻址方式。

9、【例2.28】写出实现有符号数0400H /0B4H运算的程序段。 MOV AX,0400H ;(AX)=0400H MOV BX,0B4H ;(BX)=0B4H IDIV BX ;(AL)=0F3H,(AH)=24H,返回本节,2.3.5 符号扩展指令,1字节转换成字指令CBW 2将字转换成双字指令CWD,1字节转换成字指令CBW 语句格式:CBW 功能:将AL中的符号位数据扩展至AH。 【例2.29】将字节数据扩展成字数据。 MOV AL,0A5H ;(AL)=0A5H CBW ;(AX)=0FFA5H ADD AL,70H ;(AL)=25H CBW ;(AX)=0025H,2将字转换成

10、双字指令CWD 语句格式:CWD 功能:将AX中的符号位数据扩展至DX 。 【例2.30】将字数据扩展成双字数据。 MOV DX, 0 ;(DX)=0 MOV AX, 0FFABH ;(AX)=0FFABH CWD ;(DX)=0FFFFH (AX)=0FFABH,返回本节,2.5 串操作类指令,串操作指令 : 数据传送类指令每次只能传送一个数据,若要传送大批数据就需要重复编程,这样就浪费了大量的时间和空间。为此8086提供了一组处理主存中连续存放数据串的指令,这就是串操作指令。,返回本章首页,1传送指令MOVS 语句格式: MOVSB字节串传送 MOVSW字串传送 功能:将以SI为指针的源串

11、中的一个字节(或字)存储单元中的数据传送至以DI为指针的目的地址中去,并自动修改指针,使之指向下一个字节(或字)存储单元。 即:(DS:SI)ES:DI。 当DF=0时,(SI)和(DI)增量。 当DF=1时,(SI)和(DI)减量。,2串比较指令CMPS 语句格式: CMPSB字节串比较 CMPSW字串比较 功能:将SI所指的源串中的一个字节(或字)存储单元中的数据与DI所指的目的串中的一个字节(或字)存储单元中的数据相减,并根据相减的结果设置标志,但结果并不保存。 即:(SI)(DI)。 修改串指针,使之指向串中的下一个元素。 当DF=0时,(SI)和(DI)增量。当DF=1时,(SI)和

12、(DI)减量。,3串搜索指令SCAS 语句格式: SCASB字节串搜索 SCASW字串搜索 功能:AL(字节)或AX(字)中的内容与DI所指的目的串中的一个字节(或字)存储单元中的数据相减,根据相减结果设置标志位,结果不保存, 即: 字节操作:(AL)(DI),字操作:(AX)(DI)。 修改指针使之指向串中的下一个元素。 当DF=0时,(DI)增量。当DF=1时,(DI)减量。,4从源串中取数指令LODS 语句格式: LODSB从字节串中取数 LODSW从字串中取数 功能:将SI所指的源串中的一个字节(或字)存储单元中的数据取出来送入AL(或AX)中。 即: 字节操作:(SI)AL,字操作:

13、(SI)AX。 修改指针SI,使它指向串中的下一个元素。 当DF=0时,(SI)增量。当DF=1时,(SI)减量。,5往目的串中存数指令STOS 语句格式: STOSB往字节串中存数 (2)STOSW往字串中存数 功能:将AL或AX中的数据送入DI所指的目的串中的字节(或字)存储单元中。 即: 字节操作:(AL)DI,字操作:(AX)DI。 修改指针DI,使之指向串中的下一个元素。 当DF=0时,(DI)增量)。当DF=1时,(DI)减量。,6重复前缀指令REP REPZ REPNZ (1)REP REP前缀用在MOVS、STOS 、LODS指令前。 功能:每执行一次串指令(CX)1,直到(C

14、X)=0,重复执行结束。 (2)REPZ 该指令一般用在CMP、SCAS指令前。 功能:每执行一次串指令(CX)1,并判断ZF标志是否为0,只要(CX)=0或ZF=0,则重复执行结束。 (3)REPNZ 该指令一般用在CMPS、SCAS 指令前。 功能:每执行一次串指令(CX)1,并判断ZF标志是否为0,只要(CX)=0或ZF=1,则重复执行结束。,2.6 控制转移类指令,2.6.1 条件转移指令 2.6.2 无条件转移指令 2.6.3 循环指令 2.6.4 子程序调用指令 2.6.5 中断指令,返回本章首页,2.6.1 条件转移指令,1简单条件转移指令 2无符号数条件转移指令 3. 有符号数

15、条件转移指令 它们都有通用的语句格式和功能。 语句格式: 标号: 操作符 短标号 功能:如果条件满足,则(IP)位移量IP。,1简单条件转移指令,2无符号数条件转移指令,表2.2 无符号数条件转移指令,【例2.53】比较无符号数大小,将较大的数存放AX寄存器。 CMP AX, BX ;(AX)(BX) JNB NEXT ;若AX=BX,转移到NEXT XCHG AX,BX ;若AXBX,交换 NEXT:,3. 有符号数条件转移指令,表2.3 有符号数条件转移指令,【例2.54】比较有符号数大小,将较大的数存放在AX寄存器。 CMP AX,BX ;(AX)(BX) JNL NEXT ;若AX=B

16、X,转移到NEXT XCHG AX,BX ;若AXBX,交换 NEXT:,返回本节,2.6.2 无条件转移指令,表2.4 无条件转移指令的语句格式及功能,返回本节,2.6.3 循环指令,1循环指令LOOP 2相等/为零循环指令LOOPE 3不相等/不为零循环指令LOOPNE 4CX为零转移指令JCXZ,1循环指令LOOP 语句格式: LOOP 短标号 功能:(CX)1 0,则程序转移(循环);否则,顺序执行。 说明:使用LOOP指令可代替两条指令: DEC CX JNE 短标号,2相等/为零循环指令LOOPE 语句格式: LOOPE 短标号 LOOPZ 短标号 功能:(CX)1 0且ZF=1,

17、则程序转移(循环);否则,顺序执行。,3不相等/不为零循环指令LOOPNE 语句格式: LOOPNE 短标号 LOOPNZ 短标号 功能:(CX)10,则程序转移(循环);否则,顺序执行。,4CX为零转移指令JCXZ 语句格式: JCXZ 短标号 功能:(CX)10,则程序转移(循环);否则,顺序执行。,返回本节,2.6.4 子程序调用指令,1子程序调用指令CALL (1)段内直接调用 (2)段间直接调用 (3)段内间接调用 (4)段间间接调用 2返回指令RET (1)语句格式:RET (2)语句格式:RET n(n为偶数),返回本节,2.6.5 中断指令,1中断调用指令INT 语句格式:IN

18、T n 功能:(FLAGS)(SP),0 IF、TF。 (CS) (SP),(4*n+2) CS。 (IP) (SP),(4*n) IP。 2中断返回指令IRET 语句格式:IRET 功能:(SP)IP (SP) CS (SP) FLAGS,返回本节,2.7 处理机控制类指令,2.7.1 标志位设置指令 2.7.2 CPU状态控制指令,返回本章首页,2.7.1 标志位设置指令,1进位标志操作指令 2方向标志操作指令 3中断标志操作指令,返回本节,2.7.2 CPU状态控制指令,1空操作指令NOP 2总线封锁前缀指令LOCK 3暂停指令HLT 4交权指令ESC 5等待指令WAIT,返回本节,本章到此结束,,返回本章首页,结 束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1