奥普瓯江 发表于 2018-7-9 20:50:03

检测点9.3

补全编程,利用loop指令,实现在内存2000h段中查找第一个值为0的字节,找到后,将它的偏移地址储存在dx中
assume cs:code
code segment
start: mov ax, 2000h
      mov ds, ax
      mov bx, 0
s:   mov cl,
      mov ch, 0
      add cx, 1h
      inc bx
      loop s
ok:   dec bx
      mov dx, bx
      mov ax, 4c00h
      int 21h
code ends
end start
      

god圣锋 发表于 2018-8-1 15:10:25

mov ch,0下面不应该是jcxz ok吗?

奥普瓯江 发表于 2018-8-2 17:53:30

本帖最后由 奥普瓯江 于 2018-8-2 17:54 编辑

god圣锋 发表于 2018-8-1 15:10
mov ch,0下面不应该是jcxz ok吗?

如果是jcxz ok是不对的,因为loop的运转方式是先cx减去1然后在判断是否位移,这样的话如果2000:0000中存入的是1的话,那loop判断将会失效,或者检测中的某一个内存中存放的是1的话也会使得loop指令失效

god圣锋 发表于 2018-8-8 14:53:38

奥普瓯江 发表于 2018-8-2 17:53
如果是jcxz ok是不对的,因为loop的运转方式是先cx减去1然后在判断是否位移,这样的话如果2000:0000中 ...

嗯,仔细想了想,你说的对啊,确实不能jcxz
页: [1]
查看完整版本: 检测点9.3