0

如果我有:

0000 3304    alpha:    dc.w    5,16,4,-2

我的指示是:sub.w alpha+2,D0

我的阿尔法是在0000 33004还是在00 05 00 01 00 04 FE

4

1 回答 1

3

dc.w a = 定义常量字,其中 a 是要定义的值

sb.w a,b = 减字,其中 a 是源,b 是目标

操作说明

0000 3304    alpha:    dc.w    5,16,4,-2

相当于:

0000 3304    alpha:    dc.w   05
             alpha:    dc.w   16
             alpha:    dc.w   04
             alpha:    dc.w  -02

再细分一下,第一条指令是从地址0000 3304开始,定义值5然后定义值16,然后定义值4等等。由于这些值中的每一个都被指示为一个字,因此每当定义一个新值时,您必须将该值的地址增加十六进制 2 以获得两个字节/一个字的长度。

常量全部定义后,以下值将存在于以下地址

0000 3304 ->  0x05
0000 3306 ->  0x10       
0000 3308 ->  0x04
0000 330A ->  0xFE

指令sub.w alpha+2,D0的意思是从 alpha (地址0000 3304)开始移动 2 个字节,然后从数据寄存器中的值中减去该地址处的值D0

所以,

alpha+2= 地址0000 33006

其值为0x10

无论数据寄存器中的值是什么,都要从中D0减去。0x10

于 2013-04-25T05:43:52.530 回答