📄 exp12.asm
字号:
DATA SEGMENT
BUF1 DB 5 DUP(?)
BUF2 DB 5 DUP(?)
RESULT DB 6 DUP(0)
DAT1 DB '-'
DAT2 DB '+'
DATA ENDS
STK1 SEGMENT
DB 300 DUP(?)
STK1 ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STK1
START: MOV AX,DATA
MOV DS,AX
LEA BX,BUF1
MOV DL,20H
MOV AH,02H
INT 21H
CALL SHURU
LEA BX,BUF2
MOV DL,DAT2 ;show'+'
MOV AH,02H
INT 21H
CALL SHURU ;finished input
LEA DI,BUF1
ADD DI,4
LEA SI,BUF2
ADD SI,4
LEA BX,RESULT
ADD BX,5 ;set up 3 pointers [bx]=[di]+[si]
CLC ;clear cf
MOV CX,5
HUAN:
MOV AL,[DI]
ADC AL,[SI]
AAA ;adjust for 10jinzhi
MOV [BX],AL
DEC DI
DEC SI
DEC BX
LOOP HUAN
MOV AL,0
ADC AL,0
MOV [BX],AL
MOV CX,7 ;show the '---------'
HR: MOV DL,DAT1
MOV AH,02H
INT 21H
LOOP HR
LEA BX,RESULT ;start to print result
MOV CX,6
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
L6: CMP CX,6
JL L5
MOV DL,[BX]
CMP DL,0
JG L5
MOV DL,20H
MOV AH,02H
INT 21H
JMP L3
L5: MOV DL,[BX]
ADD DL,30H
MOV AH,02H
INT 21H
L3: INC BX
LOOP L6
OVER: MOV AH,4CH
INT 21H
RET
MAIN ENDP
;****************************
SHURU PROC NEAR
PUSH CX
PUSH AX
MOV CX,5
L1: MOV AH,01H
INT 21H
SUB AL,30H
MOV [BX],AL
INC BX
LOOP L1
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
POP AX
POP CX
RET
SHURU ENDP
;****************************
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -