汇编语言程序设计 第十章 算术运算与代码转换
多字节加减
DSEG SEGMENT
DATA1 DB 85H,27H,4AH
DATA2 DB 93H,87H,65H
LEGH DB 3
SUM DB 0,0,0
DSEG ENDS
SSEG SEGMENT PARA STACK
STACK DB 50 DUP(0)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
ASSUME SS:SSEG
MADD: MOV AX,DSEG
MOV DS,AX
MOV AX,SSEG
MOV SS,AX
MOV SP,LENGTH STACK
MOV SI,OFFSET DATA1
MOV BX,OFFSET DATA2
MOV DI,OFFSET SUM
MOV CL,LEGH
CLC
AGAIN: MOV AL,[SI]
ADC AL,[BX]
MOV [DI],AL
INC SI
INC BX
INC DI
DEC CL
JNZ AGAIN
MOV AH,4CH
INT 21H
CSEG ENDS
END START
减法类似
MSUB PROC NEAR
PUSH SI
PUSH AX
PUSH DI
CLC
MSUB1:MOV AL,[DI]
SBB [SI],AL
INC SI
INC DI
DEC AH
JNZ MUSB1
POP DI
POP AX
POP SI
RET
MSUB ENDP
多字节比较
MCMP PROC NEAR
PUSH SI
PUSH AX
PUSH DI
MCMP1:MOV AL,[SI]
CMP AL,[DI]
JNZ MCMPR
DEC SI
DEC DI
DEC AH
JNZ MCMP1
MCMPR:POP DI
POP AX
POP SI
RET
MCMP ENDP
多字节移位
MSHL PROC NEAR
PUSH SI
PUSH CX
CLC
MSHL1: RCL BYTE PTR[SI],1
INC SI
DEC CH
JNZ MSHL1
POP CX
POP SI
RET
MSHL ENDP

浙公网安备 33010602011771号