|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 pediyzhi 于 2012-8-31 10:48 编辑
看到经常有朋友问在操作0b800h的显存,然后在dos下执行但却是空白的问题.在下有点心得,拿出来分享给大家,如果有高好的解决方案也请您留下方法
第一种方法比较简单.但是有时候也会行不通,就是先执行下debug然后再运行程序,这个相信很多人都知道
第二种方法就是在Debug中查看指令mov ax,4c00这条指令的位置 ,然后用-G IP位置 指定,看图
这里用的甲鱼大湿的p188程序,这里用U命令查看后得到偏移是48 然后用-G 48如下图
但是让很多指令给影响了,效果不是太好,最后我附上这处方法的解决方案
请先向下看
也可以用EMU8086这个软件来模拟下,效果也不错.软件可以百度,上个用软件后的图
嗯,刚才说了,如果喜欢在Debug里用-G 指令来查看显存结果的话,会让一些指令影响,可以先把显存清空,附上指令,请笑纳
这个可以写成方法,在程序开始的时候调用一下就好了,然后在Debug里查看也就方便多了
mov ax,0b800h
mov es,ax
mov di,0
mov cx,80*24 ;意思就是一行一共有80个字符(排除掉颜色属性所以不是160)
x: mov byte ptr es:[di],' '
mov byte ptr es:[di+1],0
inc di
inc di
loop x
|
|