8051微控制器的反汇编指令集

问题描述 投票:0回答:2

我对于8051微控制器具有以下十六进制操作码序列

785679107A247BFD7C347D407E51745568F869F96AFA6BFB6CFC6DFD6EFE

我发现此仓库将十六进制转换为指令序列https://github.com/anarcheuz/8051-disassembler

利用我能够获得以下组装说明

x00000000:      37 38        MOV 38 (R0,#immed)
0x00000002:     35           ANL A,@R0
0x00000004:     37 39        MOV 39 (R1,#immed)
0x00000006:     31 30 37     JBC 3037 (bit,offset)
0x00000008:     37 41        MOV 41 (R2,#immed)
0x0000000a:     32 34        ADD 34 (A,#immed)
0x0000000c:     37 42        MOV 42 (R3,#immed)
0x0000000e:     46           MOV R5,A
0x00000010:     37 43        MOV 43 (R4,#immed)
0x00000012:     33 34        ADDC 34 (A,#immed)
0x00000014:     37 44        MOV 44 (R5,#immed)
0x00000016:     34 30        JC 30 (offset)
0x00000018:     37 45        MOV 45 (R6,#immed)
0x0000001a:     35 31        ACALL 31 (addr11)
0x0000001c:     37 34        MOV 34 (A,#immed)
0x0000001e:     35 35        ANL 35 (A,direct)
0x00000020:     36           XRL A,R0
0x00000022:     46           MOV R0,A
0x00000024:     36           XRL A,R1
0x00000026:     46           MOV R1,A
0x00000028:     36           XRL A,R2
0x0000002a:     46           MOV R2,A
0x0000002c:     36           XRL A,R3
0x0000002e:     46           MOV R3,A
0x00000030:     36           XRL A,R4
0x00000032:     46           MOV R4,A
0x00000034:     36           XRL A,R5
0x00000036:     46           MOV R5,A
0x00000038:     36           XRL A,R6
0x0000003a:     46           MOV R6,A

在Wikipedia上有一个解释,该操作的含义是https://en.wikipedia.org/wiki/Intel_MCS-51,但是由于我在难以理解之前从未与汇编或微控制器一起工作过。

有人知道工作流程是什么,不同寄存器的值到底是什么?

assembly reverse-engineering microcontroller disassembly 8051
2个回答
1
投票

这看起来像是反汇编ASCII字符的字符串,而不是它们表示的二进制值!请注意,中间列(机器代码)全为0x30..46,即'0''F'的ASCII码。

例如您反汇编的前2个字节为37 38,这是'7''8'的ASCII码,但是您想要的是单个78字节。

您需要先将其转储为二进制格式,然后再将其提供给反汇编程序。


0
投票

更容易/更快地手工完成,只需查看8051指令集参考即可。

78 56  mov r0,#0x56
79 10  mov r1,#0x10
7A 24  mov r2,#0x24
7B FD  mov r3,#0xFD
7C 34  mov r4,#0x34
7D 40  mov r5,#0x40
7E 51  mov r6,#0x51
74 55  A,#0x55
68     XRL A,R0

您可以再花5分钟完成其余的步骤。

© www.soinside.com 2019 - 2024. All rights reserved.