汇编代码修改

时间:2014-05-12 16:48:34

标签: assembly

我有一个例外,它在屏幕上显示您输入的预定义文本。我做得对。该计划如下:

 .model small
.stack
msg_len equ 37 
.data

my_msg db "READ THE LETTERS: A, B, C, D, E, F, G"
.code
start: 

mov ax, @data
mov ds, ax

mov cx, msg_len
mov ah, 02h    

mov si, offset my_msg   


prntchar:
mov dl, byte ptr[si]
int 21h
inc si
loop prntchar
mov ax, 4c00h
int 21h                 


mov dl, 0dh
int 21h
mov dl, 0ah
int 21h       

end start

程序结束后我想更改行然后按一个字符。例如D,程序再次运行并在屏幕上显示相同的文本直到字母D.希望您了解我的需要。谢谢

1 个答案:

答案 0 :(得分:0)

您可以查看this pdf。您可以在那里找到 DOS int 21h 及其功能代码的几个示例。

您正在寻找的内容将如下所示:

.data
char BYTE ?
.code
L1: mov ah,06h   ; keyboard input
    mov dl,0FFh  ; don't wait for input
    int 21h
    jz L1        ; no character? repeat loop

    ; ...

我希望这会对你有所帮助。