📄 rjexp3.aqd
字号:
DATA SEGMENT
FIRST DB 99H
SECOND DB 25H
THIRD DB 2 DUP(?)
MES1 DB '*','$'
MES2 DB '=','$'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STAPN DB 100 DUP(?)
TOP EQU LENGTH STAPN
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV BL,FIRST ;被乘数送BL
MOV CL,SECOND ;乘数送CL
MOV DX,0 ;部分积清0
MOV AL,BL
AGAIN: OR AL,AL
JZ DONE ;被乘数减到0则转结果显示
MOV AL,DL
ADD AL,CL
DAA ;乘数于部分积低位相加后调整
MOV DL,AL
MOV AL,DH
ADC AL,0
DAA ;往部分积高位送进位后调整
MOV DH,AL
MOV AL,BL
DEC AL
DAS ;组合BCD码减法调整
MOV BL,AL
JMP AGAIN
DONE: LEA BX,THIRD
MOV [BX],DX
LEA SI,FIRST
CALL DIS
XOR AX,AX
MOV AH,09H
LEA DX,MES1 ;*
INT 21H
LEA SI,SECOND
CALL DIS
XOR AX,AX
LEA DX,MES2 ;=
MOV AH,09H
INT 21H
LEA SI,THIRD
INC SI
CALL DIS
DEC SI
CALL DIS
MOV AX,4C00H ;返回DOS
INT 21H
DIS PROC NEAR ;显示子程序
MOV AL,[SI]
MOV CL,04H
SHR AL,CL
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,[SI]
AND AL,0FH
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
RET
DIS ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -