+ -
当前位置:首页 → 问答吧 → 我错在哪里跪求解释……谢谢

我错在哪里跪求解释……谢谢

时间:2010-12-18

来源:互联网

;eg0021.asm
include io16.inc
.data
msg byte 'The bell is ring!',13,10,0
.code
start: 
mov al,36h
out 43h,al
mov al,0
out 40h,al
out 40h,al
mov al,54h
out 43h,al
mov al,18
out 41h,al
;发音频率设置子程序,
speaker proc
push ax
mov al,0b6h
out 43h,al
pop ax
out 42h,al
mov al,ah
out 42h,al
ret
speaker endp
speakon proc ;扬声器开子程序
push ax
in al,61h
or al,03h
out 61h,al
pop ax
ret
speakon endp
;
speakoff proc ;扬声器关子程序
push ax
in al,61h
and al,0fch
out 61h,al
pop ax
ret
speakoff endp
mov eax,offset msg
call dispmsg
exit 0
end start


我写的汇编程序 我的本意是写一个中断处理程序,在主程序运行过程中,每隔 20秒响铃一次,同时在屏幕上显示信息”The bell is ring!”,按键后恢复原状。能通过编译但是无法显示为什么 啊 跪求解释 谢谢大哥指点

作者: wyf605081231   发布时间: 2010-12-18

call dispmsg
这个dispmsg过程在哪?另外:没有看到你调用speaker,speakon,speakoff这些过程

作者: leetow2003   发布时间: 2010-12-18

;eg0021.asm
include io16.inc
.data
msg byte 'The bell is ring!',13,10,0
.code
start: 
mov ax,@data
mov ds,ax
mov ax,offset msg
call dispmsg
exit 0
end start

作者: va_zaixuexi   发布时间: 2010-12-18

引用 1 楼 leetow2003 的回复:
call dispmsg
这个dispmsg过程在哪?

他有库文件include io16.inc......

作者: va_zaixuexi   发布时间: 2010-12-18

另外,每次都跪求好像不太好,自己基础还要多补补,多努力吧

作者: va_zaixuexi   发布时间: 2010-12-18

没见到中断的影子~,按理说, 应该程序应该驻留。

作者: masmaster   发布时间: 2010-12-18

引用 4 楼 va_zaixuexi 的回复:
另外,每次都跪求好像不太好,自己基础还要多补补,多努力吧


对对 教训的是 刚学 真的什么都不懂 还要多学习!

作者: wyf605081231   发布时间: 2010-12-18

引用 5 楼 masmaster 的回复:
没见到中断的影子~,按理说, 应该程序应该驻留。


好像是这么个道理

作者: wyf605081231   发布时间: 2010-12-18

我可不教训人的,只是你总写跪求,让人觉得反感,呵呵.不要自傲,也不用自卑.

作者: va_zaixuexi   发布时间: 2010-12-18

引用 8 楼 va_zaixuexi 的回复:
我可不教训人的,只是你总写跪求,让人觉得反感,呵呵.不要自傲,也不用自卑.

明白 明白 明白 明白 明白……

作者: wyf605081231   发布时间: 2010-12-18