-
-
汇编输出字符问题
-
发表于: 2020-11-29 22:30 2401
-
data segment
x db 10
db ?
db 10 dup(0)
z dw 10
y dw 0
istr2 db '.x$'
crlf db 0dh, 0ah,'$'
data ends
assume cs:code, ds:data
code segment
start:
mov ax, data
mov ds, ax
; 输入数值
lea dx, x
mov ah,0ah
int 21h
;输出空格
lea dx, crlf
mov ah,9
int 21h
call convert2bin
mov ax,y
call print
mov ah,4ch
int 21h
;convert string x to number
convert2bin proc near
mov ch,0
mov cl, x[1]
mov dl,10
mov bx,0
mov ah,0
c0:
mov al,x[2+bx]
and al,0fh
xchg ax, y;交换
mul dl
xchg ax, y
add y, ax
inc bx
loop c0
ret
convert2bin endp
;print(ax) in decimal
print proc near
xor cx, cx
mov bx, 10
Q0:
xor dx,dx
div bx
xor dx, 0e30h
push dx
inc cx
cmp ax, 0
jnz Q0
Q1:
pop ax
int 10h
loop Q1
ret
print endp
code ends
end start
为什么输入2000以内能正常输出,超过比如输入3000就不能正常输出?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
- [翻译]Windows预取文件 12725
- [翻译]基于堆栈的文件对象 7114
- [翻译]文件过滤驱动中各种上下文的使用场景 11896
- [翻译] 文件流与流上下文 10861