从书中复制 8086 代码后出现错误
Getting error after copying 8086 code from book
我遇到了麻烦 运行这个 8086 程序从键盘输入一个字母并输出“你输入的字母是 _”
我刚开始阅读有关这方面的大学书籍,并尝试 运行 在我的计算机上使用书中的一些代码,但卡在了这里。
下面的代码来自我的大学课本。
我正在 运行在 emu8086 模拟器中安装它。
CODE SEGMENT
; set the DS register
MOV AX, DATA
MOV DS, AX
; Read Keyboard
MOV AH, 08H
INT 21H
; Save input
MOV BL, AL
; Display first part of Message
MOV AH, 09H
MOV DX, OFFSET MESSAGE
INT 21H
; Display character of BL register
MOV AH, 02H
MOV DL, BL
INT 21H
; Exit to DOS
MOV AX, 4C00H
INT 21H
CODE ENDS
DATA SEGMENT
MESSAGE DB “The letter you typed is $”
DATA ENDS
END
我得到的错误是
INT 21h, AH=09h -
address: 00020
byte 24h not found after 2000 bytes.
; correct example of INT 21h/9h:
mov dx, offset msg
mov ah, 9
int 21h
ret
msg db "Hello$"
经过我自己的进一步调试,我断定这个有问题
MOV AX, DATA
MOV DS, AX
如果我将它从我的代码中删除,它会执行,但在开始时会出现一些垃圾。
如有任何建议,我们将不胜感激。
更新:
围绕字符串“您键入的字母 $”的模拟器图像
嗯,所以在放弃 2 天后,我参考了另一本书,其中没有使用细分。所以我删除了段和程序 运行 完美这里是新代码:
ORG 100H
MOV AH, 08H ; Read Keyboard
INT 21H
MOV BL, AL ; Save input
MOV AH, 09H ; Display first part of Message
MOV DX, OFFSET MESSAGE
INT 21H
MOV AH, 02H ; Display character of BL register
MOV DL, BL
INT 21H
MOV AX, 4C00H ; Exit to DOS
INT 21H
RET
MESSAGE DB "The letter you typed is $"
感谢所有试图帮助我的人,真的很感激。
我遇到了麻烦 运行这个 8086 程序从键盘输入一个字母并输出“你输入的字母是 _”
我刚开始阅读有关这方面的大学书籍,并尝试 运行 在我的计算机上使用书中的一些代码,但卡在了这里。
下面的代码来自我的大学课本。 我正在 运行在 emu8086 模拟器中安装它。
CODE SEGMENT
; set the DS register
MOV AX, DATA
MOV DS, AX
; Read Keyboard
MOV AH, 08H
INT 21H
; Save input
MOV BL, AL
; Display first part of Message
MOV AH, 09H
MOV DX, OFFSET MESSAGE
INT 21H
; Display character of BL register
MOV AH, 02H
MOV DL, BL
INT 21H
; Exit to DOS
MOV AX, 4C00H
INT 21H
CODE ENDS
DATA SEGMENT
MESSAGE DB “The letter you typed is $”
DATA ENDS
END
我得到的错误是
INT 21h, AH=09h -
address: 00020
byte 24h not found after 2000 bytes.
; correct example of INT 21h/9h:
mov dx, offset msg
mov ah, 9
int 21h
ret
msg db "Hello$"
经过我自己的进一步调试,我断定这个有问题
MOV AX, DATA
MOV DS, AX
如果我将它从我的代码中删除,它会执行,但在开始时会出现一些垃圾。
如有任何建议,我们将不胜感激。
更新:
围绕字符串“您键入的字母 $”的模拟器图像
嗯,所以在放弃 2 天后,我参考了另一本书,其中没有使用细分。所以我删除了段和程序 运行 完美这里是新代码:
ORG 100H
MOV AH, 08H ; Read Keyboard
INT 21H
MOV BL, AL ; Save input
MOV AH, 09H ; Display first part of Message
MOV DX, OFFSET MESSAGE
INT 21H
MOV AH, 02H ; Display character of BL register
MOV DL, BL
INT 21H
MOV AX, 4C00H ; Exit to DOS
INT 21H
RET
MESSAGE DB "The letter you typed is $"
感谢所有试图帮助我的人,真的很感激。