微机原理中处理按键抖动的子程序

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:20:01
详细的问题说明,有助于回答者给出准确的答案
stack segment stack 'stack'
dw 32 dup(0)
stack ends
data segment
data ends
code segment
begin proc far
assume ss :stack ,cs :code, ds:data
push ds
sub ax,ax
push ax
mov ax,seg irq2is
mov ds,ax
mov dx,offset irq2is
mov ax,250ah
int 21h
in al,21h
and al,0fbh
out 21h,al
mov bl,0
again: cmp bl,1
je l1
jb l0
cmp b1,3
jb l2
je l3
jg l4
l0: nop
jmp again
l1: nop
jmp again
l2: nop
jmp again
l3: nop
jmp again
l4: nop
jmp again
ret
irq2is: cmp bl,4
je xx
inc bl
jmp yy
xx: mov bl,0
yy: mov al,20h
out 20h,al
in al,21h
iret
begin endp
code ends
end begin
这是我写的函数发生器的部分程序,有个错误说123.asm(24): error A2009: Symbol not def

有个错误说123.asm(24): error A2009: Symbol not defined: B1
你这个是B1呢还是BL寄存器?如果是B1,需要在数据段定义才能使用。
按键防抖动,实际上采用简单的延时子程序就可以,比如延时10ms之后再查看有健按下否。