📄 3bcd码相乘.asm
字号:
DATAS SEGMENT
X DB 55H
Y DB 24H
Z DB 5H DUP(?)
P DB '55*24='
Q DB 6H DUP(?)
DATAS ENDS
STACKS SEGMENT
DB 20H DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
MAIN PROC FAR
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
MOV AX,0
MOV DX,0
MOV SI,0
MOV BX,0
MOV CX,0
MOV BL,Y
AND BL,0F0H
MOV AL,BL
MOV CL,4
SHR AL,CL
MOV BH,6H
MUL BH
MOV BL,Y
SUB BL,AL
MOV CL,BL
PUSH CX
MOV BL,X
PUSH BX
AND BL,0FH
MOV AL,BL
POP BX
AND BL,0F0H
MOV AH,BL
MOV CL,4
SHR AH,CL
POP CX
L1: PUSH AX
CALL DOUT
POP AX
LOOP L1
MOV BX,DX
MOV SI,0
MOV CX,BX
INC CX
L4 :MOV AL,Z[BX]
AND AL,0FH
OR AL,30H
MOV Q[SI],AL
INC SI
DEC BX
LOOP L4
MOV Q[SI],'$'
MOV DX,OFFSET P
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
RET
MAIN ENDP
DOUT PROC NEAR
PUSH SI
L3 : ADD AL,Z[SI]
AAA
MOV Z[SI],AL
MOV AL,AH
XOR AH,AH
AAA
CMP DX,SI
JA NEXT
MOV DX,SI
NEXT: INC SI
CMP AL,0
JNZ L3
POP SI
RET
DOUT ENDP
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -