Assembly 在x86中读取多个输入
我需要读取一个输入并存储它,但输入需要有超过1个数字,比如45或55 我已经做到了,但我认为有可能做得更好。我是这样做的:Assembly 在x86中读取多个输入,assembly,x86,Assembly,X86,我需要读取一个输入并存储它,但输入需要有超过1个数字,比如45或55 我已经做到了,但我认为有可能做得更好。我是这样做的: mov ah, 1 int 21h mov ah, 0 mov cl, 0Ah sub al, 30h ; mul cl mov bx, ax mov ah, 1 int 21h sub al, 30h ; '0' add bx, ax mov
mov ah, 1
int 21h
mov ah, 0
mov cl, 0Ah
sub al, 30h ;
mul cl
mov bx, ax
mov ah, 1
int 21h
sub al, 30h ; '0'
add bx, ax
mov temp_val, bl
retn
可能吗?我不能用其他方法来做。您的代码中有一些问题
mov ah, 1
int 21h
mov ah, 0 ; <-- Here MOV AH,0 is useless because ...
mov cl, 0Ah
sub al, 30h
mul cl ; <-- ... MUL changes AH anyway
mov bx, ax
mov ah, 1
int 21h
sub al, 30h
; <-- Here you forgot MOV AH,0 so you can ...
add bx, ax ; <-- ... correctly add AX to BX
甚至不使用MUL指令和更短的
mov ah, 1
int 21h
mov bl, al
mov ah, 1
int 21h
mov ah,bl
sub ax, 3030h
aad
mov bl, al ; Largest number is 99 so it fits in BL
菲弗尼克,非常感谢你!很好的解释解决了我的问题
mov ah, 1
int 21h
mov bl, al
mov ah, 1
int 21h
mov ah,bl
sub ax, 3030h
aad
mov bl, al ; Largest number is 99 so it fits in BL