⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.asm

📁 汇编课程设计 图形编辑器
💻 ASM
字号:
        EXTRN   MUSIC:near
CODE    SEGMENT
        ASSUME  CS:CODE
BEGIN:

        MOV     AX, 40FH
        CALL    MUSIC
        MOV     AX, 411H
        CALL    MUSIC
        MOV     AX, 413H
        CALL    MUSIC
        MOV     AX, 413H
        CALL    MUSIC
        MOV     AX, 414H
        CALL    MUSIC
        MOV     AX, 414H
        CALL    MUSIC
        MOV     AX, 813H
        CALL    MUSIC
        MOV     AX, 412H
        CALL    MUSIC
        MOV     AX, 412H
        CALL    MUSIC
        MOV     AX, 411H
        CALL    MUSIC
        MOV     AX, 411H
        CALL    MUSIC
        MOV     AX, 410H
        CALL    MUSIC
        MOV     AX, 410H
        CALL    MUSIC
        MOV     AX, 80FH
        CALL    MUSIC

        JMP     BEGIN

        MOV     AH, 4CH
        INT     21H
CODE    ENDS
        END     BEGIN

PUBLIC  MUSIC
; 1=-1(低音1), 8=1(中音1), 15=+1(高音1), 21=+7(高音7)
; TIMES 1 = One eighth second(八分之一拍)



CNTTBL  DW      2411    ;+7
	DW      2707    ;+6
	DW      3038    ;+5
	DW      3410    ;+4
	DW      3613    ;+3
	DW      4055    ;+2
	DW      4552    ;+1
	DW      4823    ;7
	DW      5413    ;6
	DW      6076    ;5
	DW      6820    ;4
	DW      7226    ;3
	DW      8111    ;2
	DW      9104    ;1
	DW      9645    ;-7
	DW      10827   ;-6
	DW      12152   ;-5
	DW      13641   ;-4
	DW      14452   ;-3
	DW      16221   ;-2
	DW      18208   ;-1
CNTTBL_END      LABEL   WORD

SOUNDV  DW      0
TIMES2  DW      0

MUSIC   PROC    near
 IN:
    AL=SOUNDV  
    AH=TIMES  by 1/8 tap
	PUSH    AX
	PUSH    BX
	PUSH    DS

	PUSH    AX

	XOR     AH, AH
	SHL     AX, 1
	MOV     BX, OFFSET CNTTBL_END
	SUB     BX, AX
	MOV     AL, 0B6H
	OUT     43H, AL
	MOV     AX, CS:[BX]
	OUT     42H, AL
	MOV     AL, AH
	OUT     42H, AL

	IN      AL, 61H
	OR      AL, 3
	OUT     61H, AL

	POP     AX

	MOV     AL, AH
	XOR     AH, AH
	SHL     AX, 1
	MOV     TIMES2, AX
	XOR     AX, AX
	MOV     DS, AX
NEXTTIME:
	MOV     AX, DS:[46CH]
RECMP:
	CMP     AX, DS:[46CH]
	JZ      RECMP
	DEC     CS:TIMES2
	JNZ     NEXTTIME

	IN      AL, 61H
	AND     AL, 0FCH
	OUT     61H, AL

	POP     DS
	POP     BX
	POP     AX
	RETF
MUSIC   ENDP

CODE    ENDS
	END     MUSIC

⌨️ 快捷键说明

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