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

📄 sound.asm

📁 求(汇编语言课程设计)八位数字抢答器
💻 ASM
字号:
;Its execute file can't be name with sound.exe into W98
mydata	SEGMENT
pstart	DB	'Program start.',0DH,0AH,'$'
pend	DB	'Program will end when input ',27H,'q',27H,'.',0DH,0AH,'$'
mydata	ENDS

mystack	SEGMENT	stack
	DW	100 dup(?)
mystack	ENDS

mycode	SEGMENT
	ASSUME	CS:mycode,DS:mydata,ES:mystack
main	PROC
	MOV	AX,mydata
	MOV	DS,AX

	MOV	DX,OFFSET pstart
	MOV	AH,09H
	INT	21H

	PUSH	CX
	PUSH	DI
	MOV	CX,2000		;delaytime,input parameter
	MOV	DI,600		;frequency,input parameter
	CALL	sound
	POP	DI
	POP	CX

	MOV	DX,OFFSET pend
	MOV	AH,09H
	INT	21H
wait1:	MOV	AH,01H
	INT	21H
	CMP	AL,'q'
	JNE	wait1
	MOV	AH,4CH
	INT	21H
main	ENDP

sound	PROC
	PUSH	AX
	PUSH	DX
	MOV	AL,0B6H		;10110110B,control word of 8253,TIMER2,MODE3
	OUT	43H,AL
	MOV	DX,0020H	;fclk=1.19MHZ
	MOV	AX,34DEH
	DIV	DI		;AX←count N=fclk/f
	OUT	42H,AL
	MOV	AL,AH
	OUT	42H,AL

	IN	AL,61H		;Read PB
	MOV	AH,AL		;Save from PB
	OR	AL,3		;PB0=1,PB1=1
	OUT	61H,AL		;Write PB

delay:	PUSH	CX
	MOV	CX,0AFFFH	;Delaytime
delay1:	NOP
	NOP
	LOOP	delay1
	POP	CX
	LOOP	delay

	MOV	AL,AH		;Restore to PB
	OUT	61H,AL
	POP	DX
	POP	AX

	RET
sound	ENDP

mycode	ENDS

	END	main

⌨️ 快捷键说明

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