📄 no2.asm
字号:
DATA SEGMENT
A DB 0
RESULTA DB 200 DUP(0)
RESULTB DB 200 DUP(0)
COUNTA DW 0
COUNTB DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
PUSH DS
XOR AX,AX
MOV AX,DATA
MOV DS,AX
CALL INPUTA
CALL INPUTB
CALL PLUS
CALL OUTPUT
MOV AH,01H
INT 21H
MOV AH,4CH
INT 21H
;;;;;;;;;;;;;;;;;;;;
INPUTA PROC
MOV SI,0
LOOP1 : MOV AH,01
INT 21H
CMP AL,0DH ;回车返回调用INOUT2开始输入被加数
JZ NEXT1
SUB AL,30H
MOV RESULTA[SI],AL
INC SI
JMP LOOP1
NEXT1: MOV COUNTA,SI
MOV DL,0AH
MOV AH,02
INT 21H
RET
INPUTA ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;
INPUTB PROC
MOV SI,0
LOOP2 : MOV AH,01
INT 21H
CMP AL,0DH ;遇回车返回执行相加PLUS
JZ NEXT2
SUB AL,30H
MOV RESULTB[SI],AL
INC SI
JMP LOOP2
NEXT2: MOV COUNTB,SI
MOV DL,0AH
MOV AH,02
INT 21H
RET
INPUTB ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PLUS PROC
MOV DI,COUNTB
MOV SI,COUNTA
CMP SI,DI
JNB LOP
MOV BX,0
MOV AX,COUNTA
XCHG COUNTB,AX
MOV COUNTA,AX
XCHG DI,SI
LAB:
MOV AL,RESULTA[BX]
XCHG RESULTB[BX],AL
MOV RESULTA[BX],AL
INC BX
CMP BX,COUNTA
JNZ LAB
LOP:
MOV CX,COUNTB
LOP1:
MOV AL,RESULTB[DI-1]
ADD RESULTA[SI-1],AL
DEC DI
DEC SI
LOOP LOP1
MOV BX,COUNTA
MOV CX,COUNTB
LOP2:
MOV AL,RESULTA[BX-1]
CMP AL,10
JB LOP3
SUB AL,10
MOV RESULTA[BX-1],AL
ADD RESULTA[BX-2],1
LOP3:
DEC BX
LOOP LOP2
RET
PLUS ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;
OUTPUT PROC
MOV CX,COUNTA
MOV BX,0
PRINT:
MOV DL,RESULTA[BX]
ADD DL,30H
MOV AH,02H
INT 21H
INC BX
LOOP PRINT
RET
OUTPUT ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -