在x86程序集中打印字符串的问题

时间:2012-12-21 00:06:01

标签: assembly x86 masm

所以我有这个代码(它显示“输入你的输入:”然后当用户输入一个字符时,它会回复它们):

.model small
.stack 100h
.data
msg db 'Enter your input: $'

.code
start:
    mov     ah, 09h
    lea     dx, msg
    int     21h

    mov     ah, 1h
    int     21h

    mov     dl, al
    mov     ah, 2h
    int     21h

    mov     ax, 4c00h
    int     21h
end start

当我组装它时,它可以工作,但在它说“输入你的输入:”之前,它会显示一堆随机的ASCII字符。任何帮助?感谢。

1 个答案:

答案 0 :(得分:3)

嗯,好的DOS DOS ......

您需要设置段寄存器:

start:
    mov     ax, @data
    mov     ds, ax
    ...
    ...