历粤毛子枝大 4.2.1加减法指令 XIDIAN UNIVERSITY 减法指令(SUB、SBB-Subtract byte or word/with borrow) 例3.3设DVAR1和DVAR2保存有双字数,求DVAR1一DVAR2, 并将结果保存在双字变量DVARR中。 解:设在数据段中有变量定义语句: DVARI DD 78127654H DVAR2 DD 12349821H DVARR DD ? 微机原理与系统设计 第四章汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn 17
减法指令(SUB、SBB-Subtract byte or word /with borrow) 4.2.1 加减法指令 17 例3.3 设DVAR1和DVAR2保存有双字数,求DVAR1-DVAR2, 并将结果保存在双字变量DVARR中。 解:设在数据段中有变量定义语句: DVAR1 DD 78127654H DVAR2 DD 12349821H DVARR DD ? 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn
历些毛子种枝大学 4.2.1加减法指令 XIDIAN UNIVERSITY 减法指令(SUB、SBB-Subtract byte or word /with borrow) 为完成双字相减运算,应该先利用$UB指令完成低位字的减法 运算,再利用$BB指令完成高位字的带进位减法运算。这样在 代码段中可以编写下列程序,完成题目指定的说明: MOV AX,DVARI ;取被减数的低位字到(AX) SUB AX,DVAR2 ;低位字相减 MOV DVARR.AX ;保存结果的低位字 MOV AX,DVAR1+2 ;取被减数的高位字到(AX) SBB AX.DVAR2+2 ;高位字相减(带借位相减) MOV DVARR+2.AX ;保存结果的高位字 微机原理与系统设计 第四章汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn 18
减法指令(SUB、SBB-Subtract byte or word /with borrow) 4.2.1 加减法指令 18 为完成双字相减运算,应该先利用SUB指令完成低位字的减法 运算,再利用SBB指令完成高位字的带进位减法运算。这样在 代码段中可以编写下列程序,完成题目指定的说明: MOV AX, DVAR1 ;取被减数的低位字到(AX) SUB AX, DVAR2 ;低位字相减 MOV DVARR, AX ;保存结果的低位字 MOV AX, DVAR1+2 ;取被减数的高位字到(AX) SBB AX, DVAR2+2 ;高位字相减(带借位相减) MOV DVARR+2, AX ;保存结果的高位字 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn
历些毛子种枝大学 4.2.1加减法指令 XIDIAN UNIVERSITY 求负指令 NEG DST ;(DST)←-0-(DST) ;DST可以取通用寄存器和存储单元 ;求负数 ;正常影响PSW中的6个状态标志位 例如,设VAR1为字型变量,则有下列指令: NEG BX ;(BX)←-0-(BX) NEG VARI ;(VAR1)←-0-(VAR1) NEG BYTE PTR 2[BX](BX)+2)-0-((BX)+2) 微机原理与系统设计 第四章汇编语言指令与程序设计 葚明皓 minghao@xidian.edu.cn 19
求负指令 4.2.1 加减法指令 19 NEG DST ;(DST) ←0-(DST) ;DST可以取通用寄存器和存储单元 ;求负数 ;正常影响PSW中的6个状态标志位 例如,设VAR1为字型变量,则有下列指令: NEG BX NEG VAR1 NEG BYTE PTR 2[BX] ;(BX)←0-(BX) ;(VAR1)←0-(VAR1) ;((BX)+2)←0-((BX)+2) 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn
历些毛子种枝大 4.2.2比较指令 XIDIAN UNIVERSITY 比较指令-CMP CMP DST,SRC;根据DST)一(SRC)结果,设置PSW中的状 态标志位 ;CMP指令与减法指令类似,但不破坏DST (结果不保存至DST),仅产生条件 例如,设VAR1为字型变量,VAR2为字节变量,则有 CMP CX,2000 (CX)-2000,并置FLAG CMP BX.DX (BX)-(DX), 并置FLAG CMP AL,VAR2 (AL)-(VAR2), 并置FLAG CMP VARI[SI],AX (OFFSET VARI+(SI))-(AX),FLAG 微机原理与系统设计 第四章汇编语言指令与程序设计 葚明皓 minghao@xidian.edu.cn 20
比较指令-CMP 4.2.2 比较指令 20 CMP DST, SRC ;根据(DST)-(SRC)结果,设置PSW中的状 态标志位 ;CMP指令与减法指令类似,但不破坏DST (结果不保存至DST),仅产生条件 例如,设VAR1为字型变量,VAR2为字节变量,则有 CMP CX, 2000 CMP BX, DX CMP AL, VAR2 CMP VAR1[SI],AX ;(CX)-2000,并置FLAG ;(BX)-(DX),并置FLAG ;(AL)-(VAR2),并置FLAG ;(OFFSET VAR1+(SI))-(AX),并置FLAG 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn
三 历粤毛子代枝大学 4.2.1加减法指令 XIDIAN UNIVERSITY 比较指令-CMP (P45)例3.4两个无符号数(AL)=49H,(BL)=28H进行大 小比较。 解:指令段为: MOV AL,49H MOV BL,28H CMP AL,BL 执行后,CF=0,说明49H>28H。 如果采用CMP BL,AL语句,则CF=1,说明28H<49H。 微机原理与系统设计 第四章汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn 21
比较指令-CMP 4.2.1 加减法指令 21 (P45) 例3.4 两个无符号数(AL)=49H,(BL)=28H进行大 小比较。 解:指令段为: MOV AL, 49H MOV BL, 28H CMP AL, BL 执行后,CF=0,说明49H>28H。 如果采用CMP BL,AL语句,则CF=1,说明28H<49H。 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn