linlin.asm

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

ASM
67
字号
STACK SEGMENT STACK
   DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
MSG db 'happy, $'
 freq DW -1,96,220,196,262,247
      DW 196,196,220,196,294,262
      DW 196,196,392,330,262,247,220
      DW 349,349,330,262,294,262
      DW 196,196,220,196,262,247
      DW 196,196,220,196,294,262
      DW 196,196,392,330,262,247,220
      DW 349,349,330,262,294,262,0
   TAB DW -1
DATA ENDS
CODE SEGMENT 
ASSUME CS:CODE,DS:DATA
BEGIN:  MOV Ax,DATA
        MOV DS,AX  
        MOV DX,63H
        MOV AL,90H
        OUT DX,AL 
        MOV DX,43H
        MOV AL,10110110B
        OUT DX,AL
       MOV DX,11H
       MOV AX,0BD04H
       DIV WORD PTR[SI]
       OUT 42H,AL
       MOV AL,AH
       OUT 42H,AL
AA:   MOV DX,60H
     IN AL,DX

 
     AND AL,00000001B
    JZ QUIT 
AGA:  MOV sI,OFFSET freq
LAST:  CMP WORD  PTR[SI],0
JE AGA

CALL DELLY
ADD SI,2
MOV AH,06H
MOV BX,OFFSET MSG
INT 10H
MOV DX,60H
IN AL,DX
AND AL,00000001B
JZ QUIT 
 JMP LAST
QUIT:MOV SI,OFFSET TAB
CALL DELLY
JMP AA
DELLY PROC
PUSH AX
 PUSH CX
MOV CX,0FFFFH
M:MOV AX,0000H
LOOP M
POP CX
POP AX
RET
DELLY ENDP
CODE ENDS
  END BEGIN
     

⌨️ 快捷键说明

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