求装配工

声音

;关键描述:

;1.不输入任何数字,直接按Enter键结束程序并返回操作系统。

;2.一次最多可以输入N(本程序,N=8)个数字(1 ~ 8)。

;3,少于8位数字,回车结束输入。

;该程序在MASMPlus 1.2的集成环境下编译调试,运行正确。

代码段

假设CS:Code,DS:Code

CR EQU 000DH

如果EQU 000啊

;-

;函数:显示指定地址的字符串(Str_Addr)

;入口:

;Str_Addr= =字符串地址(数据段中需要)

;用法:输出字符串地址

;用法示例:Output PromptStr

输出宏字符串地址

lea dx,Str _地址

mov ah,9

int 21h

EndM

;-

;功能:输出一个字符。

;条目:dl=要显示的字符

Output_Chr proc附近

推斧

mov ah,02h

int 21h

爆破筒

浸水使柔软

输出_Chr endp

;-

;功能:输出回车和换行

输出_CTLF进近

推斧

推送dx

mov ah,02h

mov dl,0dh

int 21h

mov dl,0ah

int 21h

流行dx

爆破筒

浸水使柔软

输出_CTLF endp

;-

;子例程延迟指定的时钟周期数。

;入口:

;Didas=时钟滴答(1秒滴答18.2次,10秒滴答182次。如果延迟不是10秒的几倍,误差稍大)

延迟前进接近

推送dx

推送cx

异或ax,ax

int 1ah

电影时代,dx

mov时间[2],cx

Read_Time:异或ax,ax

int 1ah

子dx,时间

sbb cx,时间[2]

cmp dx,Didas

jb读取时间

流行cx

流行dx

浸水使柔软

乘以dw 0,0

延迟结束

;-

;功能:从键盘输入N位数字。

;条目:N=位数;Di=保存输入号码的第一个地址。

;Exit: cx=实际接收的位数。

Input_Digit进程接近

cld

mov cx,N

@@Input: mov ah,1

int 21h

化学机械抛光铝,铬

jz @ @返回

cmp al,' 1 '

jb @ @输入

cmp al,' 8 '

ja @ @输入

stosb

循环@ @输入

@@Return: mov ax,N

子轴,cx

xchg ax,cx

浸水使柔软

输入_数字EndP

;-

;入口参数

;SI=音频地址

;CX=时间

音乐在附近进行

在铝,61h

推斧

或a1,3

out 61h,al;打开扬声器

推送cx

推送dx

推送si

mov al,0b6h

出43h,铝

mov dx,12h

mov ax,348厘米

div字指针[si]

42小时后,铝

移动铝,啊

42小时后,铝

在铝,61h

mov ah,al

或a1,3

out 61h,al

mov cx,3314

推斧

@@Waitf1: in al,61h

和铝,10h

cmp al,ah

jz @@Waitf1

mov ah,al

loop @@Waitf1

爆破筒

通话延迟;耽搁

移动铝,啊

out 61h,al;关掉扬声器

波普斯

流行dx

流行cx

爆破筒

out 61h,al

浸水使柔软

音乐结束

;-

迪达斯equ 18;延迟(时钟滴答声)

频率dw 262,294,330,349,392,440,492,524;频率值

;dw 441,495,556,589,661,742,833;从其他音乐程序复制的频率值

;dw 8829901112,1178,1322,1484,1655;同兴线

第八条

PromptStr db '请输入',N或30h,'数字(1-8): $ '

数字数据库N dup(?)

按下键db CR,LF,CR,LF,'按任意键退出...$'

;-

开始:推送cs

流行数码相机

推送cs

pop es使数据段、附加段和代码段成为同一个段。

input _ Str:Output PromptStr;提示输入n位数

lea di,号;数字存储地址

调用Input _ Digit从键盘接收数字

调用Output _ CTLF;输出回车、换行符

调用Output _ CTLF;输出回车、换行符

jcxz出口_过程

lea bx,编号;数字存储地址

声音:推cx

推送bx

mov dl,[bx];读入一个数字

调用Output _ Chr屏幕显示这个数字。

和D1,0fh

十二月份

shl dl,1

mov bl,dl

mov dl,0eh

调用Output _ Chr显示乐谱。

20小时电动自行车

调用Output _ Chr显示空间

lea si,频率[bx];对应频率值地址

叫音乐;激活扬声器,使其在指定的频率和持续时间内发出声音。

pop bx

inc bx添加1以处理下一张便笺。

流行cx

循环声音

调用Output _ CTLF;输出回车、换行符

调用Output _ CTLF;输出回车、换行符

jmp输入_字符串

;-

Exit_Proc:输出Press _ Key提示操作完成,按任意键结束程序。

mov ah,1

int 21h

mov ah,4ch结束程序

int 21h

代码结束

结束开始;这是编译的结尾