| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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  
 
 
 
 
 |   
 
 
 
 |