pediyzhi 发表于 2012-8-31 10:29:42

关于在Debug中操作显存,显示不了的Bug

本帖最后由 pediyzhi 于 2012-8-31 10:48 编辑

**** Hidden Message *****
看到经常有朋友问在操作0b800h的显存,然后在dos下执行但却是空白的问题.在下有点心得,拿出来分享给大家,如果有高好的解决方案也请您留下方法{:5_108:}

第一种方法比较简单.但是有时候也会行不通,就是先执行下debug然后再运行程序,这个相信很多人都知道



第二种方法就是在Debug中查看指令mov ax,4c00这条指令的位置 ,然后用-G IP位置 指定,看图
这里用的甲鱼大湿的p188程序,这里用U命令查看后得到偏移是48 然后用-G 48如下图
但是让很多指令给影响了,效果不是太好,最后我附上这处方法的解决方案
请先向下看



也可以用EMU8086这个软件来模拟下,效果也不错.软件可以百度,上个用软件后的图



嗯,刚才说了,如果喜欢在Debug里用-G 指令来查看显存结果的话,会让一些指令影响,可以先把显存清空,附上指令,请笑纳{:5_109:}
这个可以写成方法,在程序开始的时候调用一下就好了,然后在Debug里查看也就方便多了
mov ax,0b800h
mov es,ax
mov di,0
mov cx,80*24   ;意思就是一行一共有80个字符(排除掉颜色属性所以不是160)
x: mov byte ptr es:,' '
mov byte ptr es:,0
inc di
inc di
loop x




pediyzhi 发表于 2012-8-31 10:46:38

自己做个沙发HOHO

如果。。。 发表于 2012-8-31 12:11:39

顶了!这个问题也影响我很久了。我也发了个解决的方法的。。。。可以参考
Debug窗口一闪而过的解决方法

pediyzhi 发表于 2012-8-31 19:47:08

如果。。。 发表于 2012-8-31 12:11 static/image/common/back.gif
顶了!这个问题也影响我很久了。我也发了个解决的方法的。。。。可以参考
Debug窗口一闪而过的解决方法

嗯.好贴,又学了一招

RAUL 发表于 2012-11-12 22:40:25

K K YINCAN L SM

因為·有你 发表于 2012-11-13 18:01:59

这个不错哇,多谢分享了哈

s0512 发表于 2012-11-21 17:46:29

学习学习!!!谢谢

pediyzhi 发表于 2012-11-22 00:03:15

s0512 发表于 2012-11-21 17:46 static/image/common/back.gif
学习学习!!!谢谢

嗯,可以参考下我另一个帖子http://bbs.fishc.com/thread-24222-1-1.html

xxcan 发表于 2013-1-5 01:01:38

学习了,第一种方法可行

好多鱼^^ 发表于 2013-1-26 23:07:45

[争议讨论] 汇编笔记之10.CALL和RET指令 [复制

zhujun051512 发表于 2013-5-18 17:15:50

强烈支持楼主ing……

金色暢想犬舍 发表于 2013-5-20 10:52:19

我回复,我看行,这个是好贴

金色暢想犬舍 发表于 2013-6-24 14:54:41

时代发生的发生的发生地方士大夫

baby520 发表于 2013-10-3 22:40:47

进来学习。。。。

xiejiale 发表于 2013-10-8 23:01:24

:shutup:谢谢楼主{:2_26:}{:7_175:}

qq1612893408 发表于 2019-8-6 13:56:29

6666666666666

T.Monstor 发表于 2020-2-24 21:06:11

{:5_110:}
页: [1]
查看完整版本: 关于在Debug中操作显存,显示不了的Bug