微机原理与接口技术(楼顺天)-第3章4

上传人:飞*** 文档编号:5993933 上传时间:2017-08-07 格式:PPT 页数:43 大小:288KB
返回 下载 相关 举报
微机原理与接口技术(楼顺天)-第3章4_第1页
第1页 / 共43页
微机原理与接口技术(楼顺天)-第3章4_第2页
第2页 / 共43页
微机原理与接口技术(楼顺天)-第3章4_第3页
第3页 / 共43页
微机原理与接口技术(楼顺天)-第3章4_第4页
第4页 / 共43页
微机原理与接口技术(楼顺天)-第3章4_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《微机原理与接口技术(楼顺天)-第3章4》由会员分享,可在线阅读,更多相关《微机原理与接口技术(楼顺天)-第3章4(43页珍藏版)》请在金锄头文库上搜索。

1、本教案内容,第3章 8086CPU指令系统汇编语言指令8086指令分类数据与转移地址的寻址方式数据传送类指令算术运算类指令逻辑运算类指令移位类指令标志位操作指令,转移指令循环控制指令子程序调用返回指令中断调用返回指令字符串操作指令I/O输入输出指令其它指令宏指令,3.5 算术运算类指令, 只要ALU涉及到运算,其运算结果会影响6个状态标志位。,3.5 算术运算类指令,一、加减法指令(一)加法指令(ADD、ADC)(Add byte or word/ with carry )格式:ADD DST, SRC ;(DST) (SRC)+(DST)ADC DST, SRC ;(DST) (SRC)+(

2、DST)(CF),SRC可以取立即数、通用寄存器和存储单元,DST可以取通用寄存器和存储单元,但SRC和DST不能同时取存储单元。,3.5 算术运算类指令,例如,设变量VAR1为字型变量,VAR2为字节变量,则有ADD AX, 56A0H ;(AX) (AX)+56A0HADC VAR1, 127FH ;(VAR1)(VAR1)127FH(CF)ADD BL, VAR2 ;(BL) (BL)+(VAR2)ADD BYTE PTR VAR1, AL ;(VAR1的低字节)(VAR1的低字节)(AL),3.5 算术运算类指令,ADD和ADC指令会影响PSW中的6个状态标志位:CF、AF、OF、SF

3、、ZF和PF。,例:(AX)125AH,执行ADD AX,78C6H后,(AX)8B20H,CF=0,AF=1,OF=1,SF=1,ZF=0,PF=0。,3.5 算术运算类指令,例3.2 设在DVAR开始的连续8字节中分别存放着两个数A和B(每个数为32位),求C=A+B,并将结果C放到DVARC开始的内存中。,解:设这两个数分别为A=00127654H、B=00049821H,则在数据段中有变量定义语句:DVAR DD00127654H DD 00049821HDVARC DD ?,3.5 算术运算类指令,LEA DI, DVARMOV AX, 4DI ; 取低位字到(AX)ADD AX,

4、DI ; 低位字相加MOV WORD PTR DVARC, AXMOV AX, 6DI ; 取高位字到(AX)ADC AX, 2DI ; 高位字相加(带进位)MOV WORD PTR DVARC+2, AX,3.5 算术运算类指令,(二)减法指令(SUB、SBB)Subtract byte or word /with borrow 格式:SUB DST, SRC;(DST) (DST)(SRC)SBB DST, SRC ;(DST) (DST) (SRC)(CF),指令中DST、SRC的说明与ADD指令相同。,3.5 算术运算类指令,例如,设VAR1为字型变量,VAR2为字节变量,则有SUB

5、AL, 2CH ;(AL) (AL)2CHSUB VAR1, 2184H ;(VAR1) (VAR1)2184HSBB DL, VAR2SI;(DL)(DL)-(OFFSET VAR2)(SI)-(CF),3.5 算术运算类指令,减法指令SUB和SBB会影响PSW中的6个状态标志位:CF、AF、OF、SF、ZF和PF。,例如:MOV AX,1734H SUB AX,5566H执行后有,(AX)=0C1CEH CF=1,AF=1,OF=0,SF=1,ZF=0,PF=0,3.5 算术运算类指令,例3.3 设DVAR1和DVAR2保存有双字数,求DVAR1DVAR2,并将结果保存在双字变量DVARR

6、中。解:设在数据段中有变量定义语句:DVAR1DD78127654HDVAR2DD 12349821HDVARRDD ?,3.5 算术运算类指令,MOV AX, WORD PTR DVAR1 SUB AX, WORD PTR DVAR2 MOV WORD PTR DVARR, AXMOV AX, WORD PTR DVAR12SBB AX, WORD PTR DVAR22MOV WORD PTR DVARR+2, AX,3.5 算术运算类指令,(三)取负指令(NEG) Negate byte or word 格式: NEG DST;(DST) 0(DST),说明:DST可以取通用寄存器和存储单

7、元。NEG指令影响PSW中的6个状态标志位.,3.5 算术运算类指令,例如,设(AL)=01H,则执行指令 NEG AL 后,(AL)=0FFH,3.5 算术运算类指令,二、比较指令CMP Compare byte or word 格式:CMP DST, SRC;(DST)(SRC),并 设置PSW中的状态标志位说明:CMP指令与减法指令类似,只是其结果不保存到DST。,3.5 算术运算类指令,CMP指令将正常影响PSW中的6个状态标志位:CF、AF、OF、SF、ZF和PF。 对两个数进行CMP运算,其主要目的是为了比较两数的大小、相等关系:(1)若两数相减结果为0,即两数相等,则ZF1;(2

8、)SF等同于最高位;(3)CF, OF视具体情况而定。,3.5 算术运算类指令,当两个无符号数进行比较时,如果CF0、ZF0,则表示(DST)(SRC);如果CF1,则表示(DST)(SRC),当OF SF1时,(DST)28H。如果采用CMP BL,AL语句,则CF1,说明28H113。如果采用CMP BL,AL语句,则OF0,SF1,这说明113113。如果采用CMP BL,AL语句,则OF1,SF0,这说明11357。,3.5 算术运算类指令,三、增量减量指令格式:INC DST ; (DST) (DST)1DEC DST ; (DST) (DST)1说明:INC和DEC指令可以正常影响

9、PSW中的5个标志位:AF、OF、SF、ZF和PF,但它们不会影响CF位。,3.5 算术运算类指令,四、乘法和除法指令,(一)乘法指令MUL SRC ;无符号数相乘IMUL SRC ;有符号数相乘,说明:指令的目的操作数隐含在AX(或AL)中,SRC可以取通用寄存器和存储单元,它必须有类型,而且只能是字节和字,它们决定了乘法操作的类型。,3.5 算术运算类指令,乘法操作的类型: 当SRC为字节时,表示将AL中的数与(SRC)相乘,其结果放入(AX)中;,3.5 算术运算类指令,乘法操作的类型: 当SRC为字时,表示将AX中的数与(SRC)相乘,其结果的高16位保存在(DX),低16位保存在(A

10、X)。,3.5 算术运算类指令,MUL和IMUL指令只对PSW的CF、OF位有影响,其规则为:,即 CF=0,OF=0表示,字节字节字节字 字 字,对MUL指令字运算时,若结果的高字为0,则CF=0,OF0;字节运算时,若结果的AH为0,则CF=0,OF0;否则CF=1,OF1。,3.5 算术运算类指令,对IMUL指令字运算时,若结果的DX为符号扩展,则CF=0,OF0;否则CF=1,OF1。字节运算时,若结果的AH为符号扩展,则CF=0,OF0;否则CF=1,OF1。,例1.下列指令是合法的。MUL CX ;(DX:AX) (AX)*(CX),为字操作IMUL CL ;(AX) (AL)*(

11、CL),为字节操作,3.5 算术运算类指令,下列指令是非法的。MUL AL,BLIMUL 05H, DST(被乘数)应为隐含寻址, SRC(乘数)不能为立即数寻址,3.5 算术运算类指令,例3.7 乘法的字节运算。要计算两个无符号数2CH、42H的乘积,结果保存在AX中。,程序段如下:MOV AL, 2CHMOV BL, 42HMUL BL,结果(AX)0B58H,CF1,OF1。,3.5 算术运算类指令,例3.9 字节字运算。要计算两个有符号数15H、FB78H的乘积。,有符号数FB78H为负数(-1160)。程序段为:MOVAL, 15HCBWMOV BX, 0FB78HIMULBX,执行

12、得到结果(DX)FFFFH,(AX)A0D8H,CF0,OF0。,3.5 算术运算类指令,(二)除法指令格式: DIV SRC ;无符号数的除法 IDIV SRC ;有符号数的除法,说明:指令的目的操作数隐含在DX:AX(或AX)中,SRC可以取通用寄存器和存储单元,它必须有类型,而且只能是字节和字,它们决定了除法操作的类型。,3.5 算术运算类指令,除法操作类型 :当SRC为字节时,表示将AX中的16位二进制数除以8位二进制数(SRC),其结果的商保存在(AL)中,余数保存在(AH)中;,3.5 算术运算类指令,当SRC为字时,表示将DX与AX联合构成的32位二进制数除以16位二进制数(SR

13、C),其结果的商保存在(AX)中,余数保存在(DX)中。,3.5 算术运算类指令,DIV和IDIV指令不影响PSW中的标志位.除法不允许出现除数为0或商溢出,若发生除数为0或商溢出则其结果没有意义,并引起中断。,例1.下列指令是合法的。 DIV BL IDIV CX DIV WORD PTR BXSI,3.5 算术运算类指令,下列指令是非法的。 DIV 12 DIV SI+02H IDIV AX,BL, SRC(除数)不能为立即数寻址, SRC类型不明确, DST(被除数)应为隐含寻址,3.5 算术运算类指令,例3.10 字字节的除法运算。设要完成除法运算12345156。,解:被除数12345可以用一个字表示,除数156可以用一个字节表示,因此可以直接采用除法的字节运算。程序段为:,执行结果商(AL)4FH 余数(AH)15H,MOVAX, 12345MOVBL, 156DIVBL,3.5 算术运算类指令,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号