通过已翻译的代码运行寄存器值ARM组件拆解

时间:2017-10-05 16:14:03

标签: assembly arm conceptual

我已经拆解的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

0 个答案:

没有答案