如题:编一个十进制乘法,被乘数和乘数以ASCⅡ码形式存在内存条中,将乘积在屏幕上显示出来。
纠结了很长时间了,希望大牛给予指正!
以下是我写的代码:
DAT SEGMENT
AA DB 12H,34H
CC DB 1 DUP(?),'$'
DAT ENDS
PROG SEGMENT
ASSUME CS:PROG,DS:DAT
START:MOV AX,DAT
MOV DS,AX
MOV DI,OFFSET CC
MOV SI,OFFSET AA
MOV BL,[SI]
MOV AL,[SI+1]
XOR AH,AH
DIV 10
MOV CL,AH
MOV AX,0
LP: ADD AL,BL
DAA
ADC AH,0
DAA
DEC CL
JNZ LP
CALL LP1
MOV AL,AH
MOV DX,OFFSET CC
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
LP1 PROC
MOV BH,AL
MOV CL,4
SHR AL,CL
CMP AL,9
JBE NEXT1
ADD AL,7
NEXT1:ADD AL,30H
MOV [DI],AL
INC DI
MOV AL,BH
AND AL,0FH
CMP AL,9
JBE NEXT2
ADD AL,7
NEXT2:ADD AL,30H
MOV [DI],AL
INC DI
RET
LP1 ENDP
PROG ENDS
END START
------解决方案--------------------------------------------------------