??? 发表于 2013-9-4 19:24:30

关于检测点9.3

本帖最后由 ??? 于 2013-9-4 19:25 编辑

请问如果2000:0这个单元的内容为0,此时bx=0,内存2000段中第一个为0的字节的偏移地址应该是0,
那么ok标号处dec bx,把bx减了1,请问这是书错了吗?还是我错了,求解!

福禄娃娃 发表于 2013-9-4 19:24:31

这道题的意思是查找内存2000段处的第一个值为0的字节
debug为虚拟8086,2000:0处的代码很多都是0,这道题需要先手动修改内存数据才能体现效果
e 2000:0 把之后几个字节改为非0
这段代码CX为18H,占24个字节
所以先把CX的高8位CH清0,低八位CL作为记数器,然后通过INC CX,CX自增一个字节一个字节的查找为0的字节内存单元。

liangfei44 发表于 2013-9-4 19:52:52

哈哈,不仅第一个字符为0会出问题,如果的值为1,又会发生什么情况呢,哇哈哈,loop ,cx为0,直接执行后面代码了!

??? 发表于 2013-9-4 20:47:40

那意思是书上是错的喽,呵呵呵!:titter:

??? 发表于 2013-9-4 22:32:00

是我想多了,空格处填inc cx就ok了,书上没有错!:sweat:
页: [1]
查看完整版本: 关于检测点9.3