汇编语言编响铃实验

汇编语言编响铃实验,第1张

code SEGMENT

ASSUME CS:code

start:

MOV AH,1

INT 21h

MOV AH,0

MOV CX,AX

begain:MOV DL,7

MOV AH,2

INT 21h

LOOP begain

MOV AH,4ch

INT 21h

code ENDS

END start

你试试,可能由于相隔的时间太短,分不清到底是响了几声

还要做一个延时的程序段!! 但这是最基础的,很简单。

下面有纤凳个复杂的,你看看,是从网上copy的:

data SEGMENT

ts DB 'please input:$'

again DB 0ah,0dh,'again?(y/n)$'

data ENDS

code SEGMENT

ASSUME CS:code,DS:data

enter1 PROC 子程序,实现睁御的功能是回车换行

PUSH AX

PUSH DX

MOV AH,02h

MOV DL,0dh

INT 21h

MOV DL,0ah

INT 21h

POP DX

POP AX

RET

enter1 ENDP

start:

MOV AX,data 加载数据段

MOV DS,AX

a0003:LEA DX,ts

MOV AH,09h 调用09号功能显示输出字符

INT 21h

MOV AH,01h 调用01号功能接收字符

INT 21h

CMP AL,'1' 接收的字符与1的ASCll比较,小于则转移

JB a0001

CMP AL,'9' 接收的字符与9的ASCll比较,大于则转移

JA a0001

SUB AL,30h 将ASCll码转换为数字

XOR AH,AH 将AX高八位清零,此时AX中的数字为接收的数字

MOV CX,AX 将AX的值赋给CX以控制循环

a0002:MOV AH,02 响铃程序段

MOV DL,07

INT 21H

LOOP a0002 循环指令

a0001:LEA DX,again 提示是否再次运行本程序

MOV AH,09h

INT 21h

MOV AH,01h 接收字符

INT 21h

CALL enter1

CMP AL,'y' 将接收的字符与y比较,相同则转移

JE a0003

CMP AL,'Y' 将接收的字符与Y比较,相同则转移

JE a0003

MOV AH,4ch

INT 21h

code ENDS

END start

对于第一个程序,我说了,可能会因为电脑的运行时间太短,你分不清到底响了几声,你还要自己写一个延时的程序,就像2楼那样悉竖岩的。

那它确实是可以响n声,只是你判断不出来而已~

ts DB 'please input:$' --在这里,加上0ah,0dh,,即可省去回车换粗谈行的子程序

ts DB 0ah,0dh,'please input:$' --这样即可

----

这个程序,没有延时部分,几个声音,都连一起岩乎碰了,发成一个音了。

……

a0002:MOV AH,02 响铃程序段

 顷陆 <<<--延时程序,应该加在这里

MOV DL,07

INT 21H

LOOP a0002 循环指令

……


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12265274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存