我已经拆解的ARM代码主要用于上下文,因为我在更概念的层面上感到困惑。我得到了8位的寄存器文件
R0: 0001 1101
R1: 0000 0111
R2: 0000 0000
R3: 0000 0000
R4: 0000 0000
R5: 0000 0000
R6: 0000 0000
R7: 0001 0000
我的问题是如何通过以下代码运行上述值?我主要关注的是如何使用三个R值,R1,R2,R3(目的地)。我如何应用R4等值?
我的猜测是,上面的2个四位值取代了下面代码表中的2个值,但是任何建议或建议都会受到赞赏。
This is a the format of instructions i'm given
bits |15:14 |13:10 |9|8:6 |5:3 |2:0
field |unused |opcode |w|src1 |src2 |dst
Table I am given is on the left, my disassembly is on the right after -->
Addr|Code
0x00|07 FF --> 0000 0111 1111 1111 --> opcode 0001,dst 111 subtract R1, R2, R3
0x02|06 08 --> 0000 1101 0000 1000 --> opcode 0011,dst 000 shift R1 left 1 bit
0x04|28 08 --> 0010 1000 0000 1000 --> opcode 1010,dst 000 R1 is true R2 False or vice versa
0x06|38 02 --> 0011 1000 0000 0010 --> opcode 1110,dst 010 Jump to addr
0x08|02 47 --> 0000 0010 0100 0111 --> opcode 0000,dst 111 Add R1,R2,R3
0x0A|3C 00 --> 0011 1100 0000 0000 --> opcode 111,dst 000 Halt