做练习的时候发现的一个问题,麻烦大家看看
当我把ds 设置成为了 b800h 也就是显示缓冲区的起始地址的时候mov bx,0
mov ,'h'
写完之后 我用debug跟踪 ,d命令查看b800:0 的内存,b800:0的内容结果不是'h'的 ascii 码
但是当我 把ds设置为ffffh之后, 同样写入的时候, ffff:0却是 'h'的 ascii码。
这是为什么呢???求解。
楼主B800段在显示缓冲区中也就是说 里面的数据在每Debug一次就更改一次你存进去的数据在Debug下寿命只有一条指令的时间长度 例如 此时你刚执行完数据存入的指令 然后要用d命令查看是否存入 可是当你敲下d命令的时候 显示器为了给你一个反馈把显示缓冲区的数据又进行了一次改写
所以 楼主的发生问题的原因应该是 数据被覆盖了 段地址需要是16的整倍数
b800 不符合这要求,你可进一步测试下它是怎么修正的。 {:7_155:}............. monk-half 发表于 2013-7-12 10:35 static/image/common/back.gif
楼主B800段在显示缓冲区中也就是说 里面的数据在每Debug一次就更改一次你存进去的数据在Debug下寿命只 ...
你说的很有道理,我觉得 百分之99 是对的 :funk:没有看懂啊菜B还得继续学习
页:
[1]