发布网友 发布时间:2022-03-22 11:21
共3个回答
热心网友 时间:2022-03-22 12:51
这个简单~~~
DMOV 是双字移动指令。
指令格式为 [DMOV S0 D0] 意思就是说,把S0里面的值复制到D0里面。
上面的例子中只是把D0稍微做了一个整合而已。
就是说从M8000到M8015这区间的16个位组合成一个字来使用。
K4M8000就是M8000到M8015的意思,K1M8000的话就是M8000到M8003四个位。
按照以上规则把上面指令的意思读过来就是:把 0 (K0就是指十进制0)赋给 K4M8000.
简单来说就是把M8000到M8015这16个位全部置零用的。
希望对你有用。追问您好,DMOV是一个 双字 的传送数据指令,是不是要同时传送K0 和 K1 呢? 如果是的,那么K1也同时传送到M8000~M8015吗?
追答[DMOV S0 D0]
DMOV 是双字传送。
但是如果他的S0是具体数值的时候(即,操作数是立即数的时候),他只是把0转换成双字的零传送过去。
看看下面例子,可能你就明白了。
例如:[dmov k0 d100] 和 [mov k0 d100]
上面两个传送指令都是给d100赋0的。区别在于,前面指令执行之后d100 和 d101都变成0.而后面一条指令执行之后只有d100变0.
这个是传送立即数的时候的情况,这个时候DMOV 和MOV 是改变存储在目的位置的形式而已。而不是你想的那种。
再例如: [dmov d100 d200]
这种例子里面就是把 d101和d100 组成的双字 传送到 d200 和 d201组成的双字区域里面。
楼上贴图的兄弟给出来的答案已经非常明白了。他的解释非常标准
看出来区别了吗?
如果你有仿真软件的话,可以自己试试。
以上是个人见解,说不定指令语法里面有错误。
希望对你有用。
热心网友 时间:2022-03-22 14:09
k0=0,和K1一点关系都没有。我初中毕业都看懂了。
热心网友 时间:2022-03-22 15:43
将M8000~M8015全部清零。