R4,高位在R3。用ARM汇编指令写出代码(参考下面的指令格式)。
MOVRd, operand2; Rd = operand2
MOVRd, Rn, ASR #n; Rd = Rn >> operand2 (算术右移)
MOVRd, Rn, LSL #n; Rd = Rn << operand2 (逻辑左移)
MOVRd, Rn, LSR #n; Rd = Rn >> operand2 (逻辑右移)
ADDRd, Rn, operand2; Rd = Rn + operand2
SUBRd, Rn, operand2; Rd = Rn - operand2
ANDRd, Rn, operand2; Rd = Rn & operand2
ORRRd, Rn, operand2; Rd = Rn | operand2
EORRd, Rn, operand2; Rd = Rn ^ operand2
19.下面的一小段代码从文件中读取了一个字节的数据,并从一个码本中查询对应的值。
1extern const void (*FuncTab)[](void);
2FILE* fp;
3unsigned int iFunc;
...
58iFunc = 0;
59fread(&iFunc, 1, 1, fp);
60FuncTab[iFunc]();
...
代码第58行对变量iFunc赋初值是必要的,否则运行会跑飞,为什么?
这段代码在PC上工作正常。当它被移植到某硬件平台上时,编链正确,但是运行时又跑飞了,试分析可能的原因。
20.列举三种以上您最熟悉的开发环境。
21.谈谈您的技术特长和成长历程。