版块
论坛
喜欢
话题
应用
搜索
登录
注册
jerry_yang的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=36502
这是一个嵌入bios的程序,发现当设置了自己的堆栈以后,跟读键盘16H中断就冲突了.
.model tiny.386code segment assume cs:code,ds:codesaveLocale MACRO mov word ptr cs:ax_reserve,ax mov word ptr cs:bx_reserve,bx ...
全文
回复
(
3
)
2004-07-22 11:11
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
changjt
:
你这个宏肯定是执行不成功的,不信你把这些数据单元在执行后打印出来,肯定还是为0的。因为你写的是ROM程序,BIOS会把它加载到UMB里,与普通程序的最大区别就是它在int19中的只读性,这就是写ROM程序时需要注意的最大问题,所以一般写tsr都会有拷贝到内存中执行的操作。
(2004-07-26 12:45)
回复
jerry_yang
:
好像不是吧. saveLocale MACRO mov word ptr cs:ax_reserve,ax mov word ptr cs:bx_reserve,bx mov word ptr cs:cx_reserve,cx mov word ptr cs:dx_re...
(2004-07-25 15:56)
回复
changjt
:
原因是这个样子的 因为在系统int19触发时你的代码段是处于只读的,而你这时把堆栈设在了自己的代码段,所以使的堆栈变成了只读,当然在调用int16时会有问题了,现场都没法保存了。
(2004-07-23 14:04)
回复
jerry_yang
加关注
写私信
0
关注
0
粉丝
91
帖子
返回顶部