第10章二进制算术运算
加法与减法指令(ADD与SUB)
无符号数与带符号数
乘法
除法
改变符号和符号扩展指令
寻址与加、减法运算练习
加法与减法指令(ADD与SUB)
ADD与SUB指令是加法与减法指令,可进行二进制数的字节或字的加、减运算。加法运算与手工加法相似,按逢二进一求和。而对于减法运算,计算机是利用对减数求补与被减数相加的方法来处理。方法是:将第二个操作数(减数),每一位变反(0→1或1→0),然后加1,这个过程称为求补;最后再与第一个操作数(被减数)相加。对于操作数的寻址有下列五种可能:
立即数与存储器的加/减
立即数与寄存器的加/减
寄存器与寄存器的加/减
寄存器与存储器的加/减
存储器与寄存器的加/减
加法指令ADD与减法指令SUB的使用。其中,子程序B10ADD使用ADD指令来处理字节的相加,C10SUB使用SUB指令来处理字的相减。
源程序清单如下:
; filename:
; —————————————————————
CODE SEGMENT
ASSUME CS:CODE ,DS:CODE,SS:CODE
ORG 100H
BEGIN: JMP SHORT MAIN
; —————————————————————
BYTEA DB 64H ;数据定义
BYTEB DB 40H
BYTEC DB 16H
WORDA DW 4000H
WORDB DW 2000H
WORDC DW 1000H
; —————————————————————
MAIN PROC NEAR
CALL B10ADD ;调用加法子程序
CALL C10SUB ;调用减法子程序
RET
MAIN ENDP
; —————————————————————
B10ADD PROC
MOV AL,BYTEA
MOV BL,BYTEB
ADD AL,BL ;寄存器与寄存器
ADD AL,BYTEC ;存储器与寄存器
ADD BYTEA,BL ;寄存器与存储器
ADD BL,10H ;立即数与寄存器
ADD BYTEA,25H ;立即数与存储器
RET
B10ADD ENDP
; —————————————————————
C10SUB PROC
MOV AX,WORDA
MOV BX,WORDB
SUB AX,BX ;寄存器与寄存器
SUB AX,WORDC ;存储器与寄存器
SUB WORDA,BX ;寄存器与存储器
SUB BX,1000H ;立即数与寄存器
SUB WORDA,256H ;立即数与存储器
RET
C10SUB ENDP
; —————————————————————
CODE ENDS
END BEGIN
因为不允许存储器与存储器之间直接进行数据运算,所以可以使用寄存器来作为中间桥梁。例如,WORDA与WORDB均定义成WORD(字),要将WORDA加到WORDB的运算,可以写出如下语句:
MOV AX,WORDA
ADD AX,WORDB
MOV WORDB,AX
《进制算术运算》PPT课件 来自淘豆网m.daumloan.com转载请标明出处.