求装配工
;关键描述:
;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
代码结束
结束开始;这是编译的结尾