请大虾帮忙解释一下!

erwinrommel 2004-07-22 04:57:09
mov bx,100;
call sound;

sound proc near
push ax ;save registers
push bx
push cx
push dx
push di
mov di,tone ;传递频率
mov al,0b6h ;write timer mode reg.
out 43h,al
mov dx,12h ;timer divisor
mov ax,348ch
div di ;1193100hz/freq 机器频率除以音符频率,人可以听得见
out 42h,al ;write timer cout low byte
mov al,ah
out 42h,al ;write timer cout high byte
in al,61h ;get current port setting
mov ah,al ;and save it in ah
or al,3h ;turn speaker on
out 61h,al
wait2:
mov cx,633
call waitf
dec bx
jnz wait2
mov al,ah
out 61h,al
pop di
pop dx
pop cx
pop bx
pop ax
ret
sound endp
; 等待,延时一点
waitf proc near
push ax
wait1:
in al,61h
and al,10h
cmp al,ah
je wait1
mov ah,al
loop wait1
pop ax
ret
waitf endp
请注释详细一点!分也不多,只给一人,小弟我谢了!
...全文
126 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowegale888 2004-07-25
  • 打赏
  • 举报
回复
详细的可以买一本ibm pc汇编的习题包括答案。。绝对好用
snowegale888 2004-07-25
  • 打赏
  • 举报
回复
wait2:
mov cx,633 和waitf的loop wait1对应循环次数
call waitf 调用waitf 应该是关闭发生吧and al,10h
dec bx bx应该是发生次数吧减一
jnz wait2 =0 jmp
mov al,ah 还原端口61初始状态ah 里是备份
out 61h,al 送入61h
pop di 还原寄存器
pop dx
pop cx
pop bx
pop ax
ret
sound endp
; 等待,延时一点
waitf proc near
push ax
wait1:
in al,61h
and al,10h
cmp al,ah
je wait1
mov ah,al
loop wait1
pop ax
ret
waitf endp
SDFDSAC 2004-07-25
  • 打赏
  • 举报
回复
call waitf ;是为了延时,waitf是个延时子程序
erwinrommel 2004-07-23
  • 打赏
  • 举报
回复
wait2:
mov cx,633
call waitf
dec bx
jnz wait2
mov al,ah
out 61h,al
pop di
pop dx
pop cx
pop bx
pop ax
ret
sound endp
; 等待,延时一点
waitf proc near
push ax
wait1:
in al,61h
and al,10h
cmp al,ah
je wait1
mov ah,al
loop wait1
pop ax
ret
waitf endp

这里看不懂
SDFDSAC 2004-07-23
  • 打赏
  • 举报
回复
如果真的还不懂的话,就看一下dunkel(内心和夜 哪个黑)说的那个帖子吧,没有比那个更详细的了
SDFDSAC 2004-07-23
  • 打赏
  • 举报
回复
又是一个喇叭
你自己的注释都那么清楚了,还要什么啊?
你的那些封号,除了帅哥以外,其他的我都是0分
erwinrommel 2004-07-23
  • 打赏
  • 举报
回复
现自己顶一下,分不够吗?你们都不愿帮我?
erwinrommel 2004-07-22
  • 打赏
  • 举报
回复
我没看懂,哪位大虾+高手+帅哥+达人+天才能帮忙注释一下,谢谢了!
dunkel 2004-07-22
  • 打赏
  • 举报
回复
可以参看下面的帖子, 大致和你的是一致的:
http://community.csdn.net/Expert/topic/3139/3139203.xml?temp=.1142237

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧