本帖最后由 justdomyself 于 2014-5-26 19:52 编辑
#define MEM_W(x) ((WORD) *((WORD *)(x)) )
typedef struct
{
WORD ID; // Message Identifier
BYTE LEN; // Data length (0-8)
BYTE RTR;
BYTE BUF[8]; // Data buffer
} CAN_MSG;
CAN_MSG msg,*pmsg;
msg.BUF[0]=0X20;
msg.BUF[1]=0X05;
msg.BUF[2]=0X60;
msg.BUF[3]=0X00;
pmsg=&msg;
WORD tmp=MEM_W(&pmsg->BUF[1]);
为何tmp的值是5 而不是0x6005
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
tmp=MEM_W(&pmsg->BUF[1]);
[0xe3a00005] mov r0,#5
[0xe19050b4] ldrh r5,[r0,r4]
tmp=MEM_W(&msg.BUF[1]);
[0xe3a00005] mov r0,#5
[0xe19050bd] ldrh r5,[r0,r13]
为啥反汇编就成了ldrh 半字读取 ,奇怪
一周热门 更多>