传说。 发表于 2014-4-28 18:39:37

问题7.2 用已学知识。 不用si di

本帖最后由 传说。 于 2014-4-28 21:33 编辑


这个源代码我编译不了。 哪里写错了。 用si 和di有什么用?

为之疯狂 发表于 2014-4-28 19:46:00

12行写错了,mov ,,这句话你没有指明是类型,cpu不知道是以字节为单位,还是以字为单位。
你可以改成 mov byte ptr , ,或者 mov Word ptr ,

si,和di 只是在对串操作的指令上有区别,其他的指令都是一样的,都是表示地址指针寄存器。

传说。 发表于 2014-4-28 21:06:04

为之疯狂 发表于 2014-4-28 19:46 static/image/common/back.gif
12行写错了,mov ,,这句话你没有指明是类型,cpu不知道是以字节为单位,还是以字为单位。
你可以改成 m ...

改了之后还是不行。我win7系统 ,用dosbox,masm编译老是This program cannot be run in DOS mode. 所以我都是直接拖进ml.exe。 也看不来哪里出错了。

为之疯狂 发表于 2014-4-28 21:14:44

传说。 发表于 2014-4-28 21:06 static/image/common/back.gif
改了之后还是不行。我win7系统 ,用dosbox,masm编译老是This program cannot be run in DOS mode. 所以我 ...

我说错了,存储器和存储器之间是不能相互传值的,你可以先把【bx+8】的内容先放到ax中,在mov 【bx】,ax

传说。 发表于 2014-4-28 21:32:55

为之疯狂 发表于 2014-4-28 21:14 static/image/common/back.gif
我说错了,存储器和存储器之间是不能相互传值的,你可以先把【bx+8】的内容先放到ax中,在mov 【bx】,ax

太感谢了O了
页: [1]
查看完整版本: 问题7.2 用已学知识。 不用si di