问题描述
也许有人可以帮助我。我正在尝试打印与用户输入的数量相同的''。所以我需要将字符串转换为数字。我正在尝试循环执行,但是有一些问题,我的代码无法正常工作,它正在打印65535'',基本上是最大的。也许有人可以解释我的问题在哪里?
.MODEL small
.STACK 200h
.DATA
input DB 4,?,4 dup (?)
Symbol DB '*$'
.CODE
Start:
mov AH,0Ah
mov ds,ax
mov DX,offset input
int 21h
mov cl,input[2]
mov si,2
mov ax,0
LoopStart:
mov bh,10
mul bh
mov ah,input[si]
add ah,al
sub cl,1
cmp cl,0
jne LoopStart
mov cx,ax
mov ax,@DATA
mov ds,ax
mov dx,offset Symbol
LoopStart1:
mov ah,9
int 21h;
sub cx,1
cmp cx,0
jne LoopStart1
mov ah,4Ch
int 21h
END Start
解决方法
所以这是可行的解决方案
.MODEL small
.STACK 200h
.DATA
Symbol DB '*$'
input DB 6,?,6 dup (?)
.CODE
Start:
mov ax,@DATA
mov ds,ax
mov AH,0Ah
mov DX,offset input
int 21h
mov AH,0Fh
int 10h
mov AH,0
int 10h
mov si,2
mov ax,0
mov cl,input[1]
LoopStart:
mov bh,10
mul bh
add al,input[si]
sub al,48
add si,1
sub cl,1
; cmp cl,0
jne LoopStart
mov cx,ax
mov dx,offset Symbol
LoopStart1:
mov ah,9
int 21h;
sub cx,1
cmp cx,0
jne LoopStart1
mov ah,0
int 16h
mov ah,4Ch
int 21h
END Start