小剑剑 发表于 2016-7-26 18:11:35

第五章实验4

assume cs:code

code segment

        mov ax,0
        mov ds,ax
        mov bx,0
        mov cx,3fh
      s:mov ,bx
        inc bx
        loop s
        mov ax,4c00h
        int 21h

code ends
end

代码如上用debug执行出现问题到bx=3是执行不下去

1366627538 发表于 2016-7-28 10:46:19

       第一:你的目标地址写错了 不是 0:0 ,应该是 0:200,0:0 的位置是写中断的跳转地址的。

       第二:为什么到bx等于3就执行不下去了呢,那是因为你的目标地址越界了,目标地址是有4个字节构成,你前两个字节填写的是0 1,这是目标地址的偏移地址,等你在写第三个字节,那是短地址的高位,你在那里边写了 2 那么你的 总地址最低就是 200:01 也就是 20001 ,中断机制 的目标地址 没有这么大 所以 就会出错喽 !!!!
   

小剑剑 发表于 2016-7-28 18:38:45

1366627538 发表于 2016-7-28 10:46
第一:你的目标地址写错了 不是 0:0 ,应该是 0:200,0:0 的位置是写中断的跳转地址的。

      ...

嗯,地址是写错了
改过来也可以了
assume cs:code


code segment


      mov ax,20
      mov ds,ax

      mov bx,0

      mov cx,3fh

      s:mov ,bx

      inc bx

      loop s

      mov ax,4c00h

      int 21h


code ends

end

但是第二点不是很懂,
但是bx等于3时执行不下去还不是很明白
还没有学到中断机制,
目前在第八章!!
谢谢大神啦!!!!{:9_228:}
页: [1]
查看完整版本: 第五章实验4