标题:(菜鸟)BIOS程序设计写像素点失败,高手帮忙看看
只看楼主
爱末流
Rank: 2
等 级:论坛游民
帖 子:101
专家分:16
注 册:2011-6-3
结帖率:100%
已结贴  问题点数:20 回复次数:8 
(菜鸟)BIOS程序设计写像素点失败,高手帮忙看看
BIOS程序设计写像素点失败,就是调用INT 10H视频服务 的 0CH功能来写像素 调用就提示:
调用BIOS  执行第三次 int 10h  0x00000009 指令引用的 0x720789a3 内存不能为 写(written)
0x720789a3 是DLL的地址吧

源码:   (注释都写的好了)

.model small
.stack 200h
.386
;有些视频图形模式未用,该例子只使用 Mode_6A

Mode_06 = 6        ; 640 X 200,  2 colors
Mode_0D = 0Dh        ; 320 X 200, 16 colors
Mode_0E = 0Eh        ; 640 X 200, 16 colors
Mode_0F = 0Fh        ; 640 X 350,  2 colors
Mode_10 = 10h        ; 640 X 350, 16 colors
Mode_11 = 11h        ; 640 X 480,  2 colors
Mode_12 = 12h        ; 640 X 480, 16 colors
Mode_13 = 13h        ; 320 X 200, 256 colors
Mode_6A = 6Ah        ; 800 X 600, 16 colors

.data
saveMode  BYTE  ?        ;保存原来视频模式的变量
currentX  WORD 100       ;X横坐标
currentY  WORD 100       ;Y纵坐标
COLOR = 1001b            ;颜色属性 高位4位为背景颜色未使用,只使用前景颜色(低4位)  1001b=浅蓝色

.code
main PROC
    mov    ax,@data        ;取得段地址
    mov    ds,ax
   
    mov    ah,0Fh          ;获得视频模式信息
    int    10h             ;调用BIOS
    mov    saveMode,al     ;保存原来的视频模式
   
    mov    ah,0            ;设置视频模式
    mov    al,Mode_6A      ;设置为800 * 600
    int    10h             ;调用BIOS
   
    mov    ah,0Ch          ;写像素点
    mov    al,COLOR        ;像素的颜色
    mov    bh,0            ;视频页=0,当前视频页(活跃)
    mov    cx,currentX     ;写的位置X坐标(像素单位)
    mov    dx,currentY     ;写的位置Y坐标(像素单位)
    int    10h             ;调用BIOS  执行第三次 int 10h  0x00000009 指令引用的 0x720789a3 内存不能为 写(written)
   
    mov    ah,0            ;等待用户按键
    int    16h             ;调用BIOS  INT 16H为键盘处理中断
   
    mov    ah,0            ;恢复原来的视频模式
    mov    al,saveMode     ;要恢复的视频模式
    int    10h             ;调用BIOS
    .exit
main endp
end main






搜索更多相关主题的帖子: written 程序设计 
2012-09-06 22:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:20 
不懂 回复一下等楼主给分
2012-09-07 21:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
在DOS下运行看看

授人以渔,不授人以鱼。
2012-09-07 21:22
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
还没学到 帮顶

梅尚程荀
马谭杨奚







                                                       
2012-09-07 21:28
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
应该是被操作系统禁止了。

活到老,学到老! http://www. E-mail:hu-jj@
2012-09-07 21:58
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
虽然注释写得很详细,不过还是看不太懂。
2012-09-07 23:03
nosaybye
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-7-11
得分:0 
0x720789a3 dll,int中断?

将程序编译成二进制,写入MBR,用bochs,调试吧。
2012-09-13 09:41
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 

当场昏倒

我要成为嘿嘿的黑客,替天行道
2012-09-22 01:06
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
为什么每个程序 都爱用英文取名字  这给我读代码带来了很大的麻烦   看到的英文我总是记不住 他对应的值是多少

能否以后咱们中国的程序都  hang  lie 等等通俗点的字母组合 来标号 或者变量名啊

我要成为嘿嘿的黑客,替天行道
2012-09-22 01:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-380878-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.336418 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved