c55x 指令opcode码解析问题
例如下面这条指令。AMAR Smem, XAdst
Opcode码: 1110 1100 AAAA AAAI XDDD 1110
汇编指令:
AMAR *(#00160h),XSP
Opcode码: ec314e000160
其中中间两个字节314e有点理解不了,是代表XSP这个寄存器吗?
也就是AAAA AAAI XDDD 1110 这32bit 都代表什么? 希望大家可以帮我解答下。 网上找的你看看能不能帮上你
机器码,字节数和控制器有关系,如8位MCU的话,机器码就是8位,如果是十六位的话,就是十六位。例如ATMEGA168V,是16位,CALL 指令机器码是:1001010K,KKKK111K,KKKKKKKK,KKKKKKKK.其中K表示调用的起始地址。其余为指令码。再例如,ADD Rd,Rr;机器码是000011rd,ddddrrrr.其中r表示源操作数地址,d表示目操作数地址。高位在前,地位在后。当然,你可以在编译环境下,编辑代码,编译后,查看生成的HEX文件或者BIN文件。 Opcode码: ec314e000160
里的AAAA AAAI为0x31即0011 0001表示 *(#k23)类型的见解寻址。
XDDD为0x4,即0100表示操作数为XSP。
ec314e里的那个e是固定的,没有特别的意义,仅用于构造AMAR Smem, XAdst这条指令而已.
可以下载spru374g.pdf文档,查看里面关于AAAA AAAI和XDDD字段的定义。
另外AAAA AAAI XDDD 1110只有16位,不是32位。
页:
[1]