我对汇编语言很陌生,我想用8086汇编语言创建一个程序。(emu8086)所以程序应该一直响,直到按下E键。现在,第一种方法是使用简单的跳转来检查每次输入,这是我想出的代码:
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年还可能吗?
发布于 2018-01-17 11:45:42
BIOS函数01h检查密钥是否挂起。
这可能是一个最简单的解决方案,以获得一个连续的嘟嘟,直到字符'e‘被按下。
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发布于 2018-01-16 21:10:47
如果它模拟标准PC环境,您可以设置定时器“芯片”(硬件中的8255)来控制扬声器。打开它,它会发出嗡嗡声,直到你关掉它,不管你的代码还在做什么。
https://stackoverflow.com/questions/48278629
复制相似问题