历安毛子种枝大” 4.2.1加减法指令 XIDIAN UNIVERSITY 加法指令(ADD、ADC-Add byte or word/with carry) LEA DI,DVAR DVAR 54H MOV AX,4D川;取低位字到(AX) 76H ADD AX,D川;低位字相加 12H 00H MOV DVARC,AX;保存结果的低位字 21H MOV AX,D川;取高位字到(AX) 98H ADC AX,2[D川;高位字相加(带进位) 04H MOV DVARC+2,AX;保存结果的高位字 00H 先利用ADD指令完成低位字的加法运算 再利用ADC指令完成高位字的带进位加法运算
加法指令(ADD、ADC- Add byte or word/ with carry ) 4.2.1 加减法指令 12 LEA DI, DVAR MOV AX, 4[DI] ; 取低位字到(AX) ADD AX, [DI] ; 低位字相加 MOV DVARC, AX ;保存结果的低位字 MOV AX, 6[DI] ; 取高位字到(AX) ADC AX, 2[DI] ; 高位字相加(带进位) MOV DVARC+2, AX ; 保存结果的高位字 54H 76H 12H 00H 21H 98H 04H 00H DVAR A B 先利用ADD指令完成低位字的加法运算 再利用ADC指令完成高位字的带进位加法运算
历粤毛子代枝大” 4.2.1加减法指令 XIDIAN UNIVERSITY 减法指令(SUB、SBB-Subtract byte or word/with borrow) 1.SUB(普通减法指令) 2.SBB(考虑借位的减法指令) 3.NEG (求负指令) 微机原理与系统设计 第四章汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn 13
减法指令(SUB、SBB-Subtract byte or word /with borrow) 4.2.1 加减法指令 13 1. SUB(普通减法指令) 2. SBB(考虑借位的减法指令) 3. NEG (求负指令) 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn
历些毛子绑技大” 4.2.1加减法指令 XIDIAN UNIVERSITY 减法指令(SUB、SBB-Subtract byte or word/with borrow) SUB DST,SRC (DST)-(DST)-(SRC) ;CPU根据结果设置6个标志位 SBB DST,SRC (DST)(DST)-(SRC)-(CF) ;CPU根据结果设置6个标志位 不区分有/无符号数
减法指令(SUB、SBB-Subtract byte or word /with borrow) 4.2.1 加减法指令 14 SUB DST, SRC ;(DST) ← (DST)-(SRC) ;CPU根据结果设置6个标志位 SBB DST, SRC ;(DST) ← (DST)- (SRC)-(CF) ;CPU根据结果设置6个标志位 不区分有/无符号数 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn
历粤毛子代枝大 4.2.1加减法指令 XIDIAN UNIVERSITY 减法指令(SUB、SBB-Subtract byte or word/with borrow) 例如,设VAR1为字型变量,VAR2为字节变量,则有 SUB AL,2CH ; (AL)←(AL)-2CH SBB AX,BX (AX)←(AX)-(BX)-(CF) SUB AX,VARI (AX)←-(AX)-(VAR1) SUB VAR1,2184H (VAR1)←-(VAR1)-2184H SBB DL,VAR2[SI](DL)-(DL)-(OFFSET VAR2+(SI))-(CF) 微机原理与系统设计 第四章汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn 15
减法指令(SUB、SBB-Subtract byte or word /with borrow) 4.2.1 加减法指令 15 例如,设VAR1为字型变量,VAR2为字节变量,则有 SUB AL, 2CH SBB AX, BX SUB AX, VAR1 SUB VAR1, 2184H SBB DL, VAR2[SI] ;(AL)← (AL)-2CH ;(AX)← (AX)-(BX)-(CF) ;(AX)← (AX)-(VAR1) ;(VAR1)← (VAR1)-2184H ;(DL)←(DL)-(OFFSET VAR2+(SI))-(CF) 微机原理与系统设计 第四章 汇编语言指令与程序设计 董明皓 minghao@xidian.edu.cn
历安毛子种枝大学 4.2.1加减法指令 XIDIAN UNIVERSITY 减法指令(SUB、SBB-Subtract byte or word /with borrow) 例:MOV AX,1734H SUB AX,5566H 执行后有(AX)=? (AX)=0CICEH CF=1,AF=1,OF=0,SF=1,ZF=0,PF=0 减法指令SUB和SBB指令会正常影响PSW中的6个状态标志位:CF、 AF、OF、SF、ZF和PF
减法指令(SUB、SBB-Subtract byte or word /with borrow) 4.2.1 加减法指令 16 例: MOV AX, 1734H SUB AX, 5566H 执行后有(AX)=? (AX)=0C1CEH CF=1,AF=1,OF=0,SF=1,ZF=0,PF=0 减法指令SUB和SBB指令会正常影响PSW中的6个状态标志位:CF、 AF、OF、SF、ZF和PF