001.asm

来自「微机原理——接口应用编程源码」· 汇编 代码 · 共 63 行

ASM
63
字号
       stack  segment stack
       dw 64 dup(?)
       stack ends
       data segment
       msg db ' The signal! $'
       data ends
code   segment
       assume cs:code,ds:data
start: mov ax,data
       mov ds,ax
       mov ah,06h
       mov bx,offset msg
       int 10h
       mov dx,63h         ;8255 PB:in PA:out 0
       mov al,10000010B   
       out dx,al
       mov dx,43h         ;8253 counter 2,way 3
       mov al,10110100B
       out dx,al    
wav:   mov dx,61h
       in al,dx
       mov ah,al
       and al,00000001b
       jnz wav1
       mov ah,al
       and al,00000010b
       jnz wav2
       mov ah,al
       and al,00000100b
       jnz wav3         
       jmp wav
wav1:  mov dx,42h
       mov al,01111100b    ;1.19MHZclock
       out dx,al
       mov al,101110b
       out dx,al
       call delay
       jmp wav
wav2:  mov dx,42h
       mov al,10100110b
       out dx,al
       mov al,100b
       out dx,al
       call delay
       jmp wav
wav3:  mov dx,42h
       mov al,1110111b
       out dx,al
       call delay
       jmp wav
delay  proc near
       push ax
       push cx
       mov cx,0ffffh
a:     mov ax,77h
       loop a
       pop cx
       pop ax
       ret 
delay  endp
code ends
end start

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?