永发信息网

加mov ah,2输出换行后,直接go命令,前面的输出被本该换行的覆盖掉了,为什么

答案:1  悬赏:60  手机版
解决时间 2021-02-14 02:35
  • 提问者网友:孤山下
  • 2021-02-13 18:24
加mov ah,2输出换行后,直接go命令,前面的输出被本该换行的覆盖掉了,为什么
最佳答案
  • 五星知识达人网友:轮獄道
  • 2021-02-13 19:56
好长啊……那就需要一个回车换行喽
mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
加入之后就会在下一行换行而不会覆盖原来数据……而且程序执行后最好再编个输入……否则会直接跳到最后打开exe文件看不到结果就没了……输出结果后跳转到在此输入那里就可以连续输入也不会直接跳出……

下面是一个完整程序……仅供参考……输入两位的……
assume cs:code,ds:data,ss:stack
data segment
n db ?
res dw 0
yuju db "input number(00--99)","$"
data ends

stack segment
dw 32 dup(?)
stack ends
code segment
start:
mov ax,data
mov ds,ax

l3:
mov ah,09h
lea dx,yuju
int 21h

mov ah,1
int 21h
sub al,30h
mov cl,10
mul cl
mov bx,ax
mov ah,1
int 21h
mov ah,0
sub al,30h
mov dx,bx
add dx,ax
mov ax,0
mov cx,dx
again:
cmp cx,0
jna exit
test cx,1
jz l2
jmp l1

l1:
add ax,cx
loop again
jmp again
l2:
add ax,cx
add ax,cx
loop again

exit:
push ax
mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
pop ax
mov res,ax
mov bx,res
mov cx,16
aga:
shl bl,1
rcl bh,1
mov dl,30h
adc dl,0
mov ah,2
int 21h
loop aga

mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h

jmp l3

mov ax,4c00h
int 21h
code ends
end start
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯