📄 rjexp2.asm
字号:
DATA SEGMENT
DATA1 DB 32H,39H,30H,35H,34H
DATA2 DB 34H
MES1 DB '*','$'
MES2 DB '=','$'
RESULT DB 6 DUP (00H)
DATA ENDS
STACK SEGMENT
STA DB 20 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,TOP
LEA SI,DATA1
MOV BX,05H
L1: MOV AH,02H
MOV DL,[SI+BX-1]
INT 21H
DEC BX
JNZ L1
MOV AH,09H
LEA DX,MES1
INT 21H
LEA SI,DATA2
MOV AH,02H
MOV DL,[SI]
INT 21H
MOV AH,09H
LEA DX,MES2
INT 21H
MOV SI,OFFSET DATA2 ;显示算式
MOV BL,[SI] ;乘数DATA2→BL
AND BL,00001111B ;屏蔽高4位,ASCII码转化为十六进制数
MOV SI,OFFSET DATA1
MOV DI,OFFSET RESULT
MOV CX,05
LOOP1: MOV AL,[SI]
AND AL,00001111B ;取被乘数DATA1,ASCII变十六进制数
INC SI ;指向被乘数1的下一字符单元
MUL BL ;相乘
AAM ;AAM调整
ADD AL,[DI] ;结果低位与前次计算的进位相加
AAA ;AAA调整
MOV [DI],AL
INC DI ;结果送存到下一单元
MOV [DI],AH
LOOP LOOP1 ;计算结果高位进位送存
MOV CX,06
MOV SI,DI
DISPL: MOV AH,02
MOV DL,[SI]
ADD DL,30H
INT 21H
DEC SI
LOOP DISPL ;显示结果
MOV AX,4C00H
INT 21H ;结束
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -