相关疑难解决方法(0)

缓冲输入的工作原理

下一个程序中的输入工作正常,但是当我要求显示输出时,DOS 根本不显示任何内容!这怎么可能?

        ORG     256
        mov     dx, msg1
        mov     ah, 09h                 ;DOS.WriteString
        int     21h
        mov     dx, buf
        mov     ah, 0Ah                 ;DOS.BufferedInput
        int     21h
        mov     dx, msg2
        mov     ah, 09h                 ;DOS.WriteString
        int     21h
        mov     dx, buf
        mov     ah, 09h                 ;DOS.WriteString
        int     21h
        mov     ax, 4C00h               ;DOS.TerminateWithExitcode
        int     21h
; --------------------------------------
msg1:   db      'Input : ', '$'
buf:    db      20 dup ('$')
msg2:   db      13, 10, 'Output : ', '$'
; --------------------------------------
Run Code Online (Sandbox Code Playgroud)

assembly dos input x86-16

5
推荐指数
1
解决办法
5928
查看次数

8086中断21H问题

我觉得好像我不理解8086汇编中断21H的功能0AH.我阅读了语法教程,例如:

"缓冲区的第一个字节指定它可以容纳的最大字符数(1到255).该值必须由用户提供.缓冲区的第二个字节由DOS设置为实际读取的字符数,不包括终止返回."

所以我尝试了一个非常基本的代码.

mov dh, 01
mov ah, 0AH
int 21H
Run Code Online (Sandbox Code Playgroud)

我运行这个程序,输入一个数值,然后按回车键.然而,Debug显示我的寄存器都没有从此操作中更改.我不知道在哪里,如果有的话,我输入的值被存储.有人可以帮我弄这个吗?

x86 assembly dos x86-16

1
推荐指数
1
解决办法
959
查看次数

标签 统计

assembly ×2

dos ×2

x86-16 ×2

input ×1

x86 ×1