[寄存器] c55x 指令opcode码解析问题

[复制链接]
1757|2
 楼主| jc83278 发表于 2015-1-28 11:20 | 显示全部楼层 |阅读模式
例如下面这条指令。
AMAR Smem, XAdst

Opcode码: 1110 1100 AAAA AAAI XDDD 1110
汇编指令:
AMAR *(#00160h),XSP

Opcode码: ec314e000160
其中中间两个字节314e有点理解不了,是代表XSP这个寄存器吗?
也就是AAAA AAAI XDDD 1110 这32bit 都代表什么? 希望大家可以帮我解答下。
zhangmangui 发表于 2015-1-29 22:36 | 显示全部楼层
网上找的  你看看能不能帮上你

机器码,字节数和控制器有关系,如8位MCU的话,机器码就是8位,如果是十六位的话,就是十六位。例如ATMEGA168V,是16位,CALL 指令机器码是:1001010K,KKKK111K,KKKKKKKK,KKKKKKKK.其中K表示调用的起始地址。其余为指令码。再例如,ADD Rd,Rr;机器码是000011rd,ddddrrrr.其中r表示源操作数地址,d表示目操作数地址。高位在前,地位在后。当然,你可以在编译环境下,编辑代码,编译后,查看生成的HEX文件或者BIN文件。
aresc 发表于 2015-1-30 07:55 | 显示全部楼层
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位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部