首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >8086-BEEP直到输入

8086-BEEP直到输入
EN

Stack Overflow用户
提问于 2018-01-16 10:03:31
回答 2查看 1.2K关注 0票数 2

我对汇编语言很陌生,我想用8086汇编语言创建一个程序。(emu8086)所以程序应该一直响,直到按下E键。现在,第一种方法是使用简单的跳转来检查每次输入,这是我想出的代码:

代码语言:javascript
复制
    macro beep
    mov dl,7h
    mov ah,2
    int 21h
endm

.model small
.stack 64

.code :  

lp:

beep

mov ah,1
int 21h

cmp al,'e'
je end

jmp lp

end:
mov ah,4ch
int 21h

现在,我想要实现的是,蜂鸣必须是连续的,我不希望用户在每个周期进行输入。类似于C中的多线程,它是在另一个线程中执行的。

这在8086年还可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-17 11:45:42

BIOS函数01h检查密钥是否挂起。

  • 如果没有,你马上再来一声。
  • 如果存在一个键,则使用BIOS函数00h获取它,如果它不是“e”,则继续重新发出嘟嘟声。

这可能是一个最简单的解决方案,以获得一个连续的嘟嘟,直到字符'e‘被按下。

代码语言:javascript
复制
lp:
 beep
 mov ah, 01h
 int 16h      ;Gives ZF
 jz  lp       ;No key waiting
 mov ah, 00h
 int 16h      ;Gives AX
 cmp al, 'e'
 jne lp
 mov ax, 4C00h
 int 21h
票数 1
EN

Stack Overflow用户

发布于 2018-01-16 21:10:47

如果它模拟标准PC环境,您可以设置定时器“芯片”(硬件中的8255)来控制扬声器。打开它,它会发出嗡嗡声,直到你关掉它,不管你的代码还在做什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48278629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档