1
我想从键盘得到输入字符串,并重新显示它邻接我不知道为什么我得到一个消息两次。例如: 输入字符串:1234567 输出将是大会得到输入字符串
您的输入:1234567 您的输入:
我不知道为什么我收到了两遍。这里是我的代码:
data segment
prompt db 0dh,0ah,"Enter your string(7 Chars Max): $"
nam db 8 dup(?) ; 7 plus term char $
msg1 db 0dh,0ah,"Your input: $"
sev db 7 dup(?)
data ends
code segment
assume cs:code,ds:data
START:
mov ax,data
mov ds,ax
mov dx,offset prompt
mov ah,09h
int 21h
lea si,nam
mov cx,7
et:mov ah,01
int 21h
mov [si],al
inc si
loop et
mov si+sev,'$'
mov dx,offset msg1
mov ah,09h
int 21h
lea dx,nam
mov ah,09h
int 21h
mov ah,4ch
int 21h
Code ends
end Start
'mov si + sev,'$''最有可能不会做你想做的事。为什么不只是'mov [si],'$''? –
@SamiKuhmonen是正确的,循环后[[si]'已经指向字符串的末尾,所以'+ sev'是不必要的。 –
另外'sev'不等于7,它是另一个7字节的内存块,所以将它的偏移量加到'si'指向某处非常错误 –