Ich versuche, einfachen Assembler-Code zu entschlüsseln, aber ich bin nicht sehr erfahren in der Sprache. Wenn ich den folgenden Codeblock in Haupt:Wie zu bestimmen, was in der Adresse ist Assembly ruft
push %ebp
8048a45: 89 e5 mov %esp,%ebp
8048a47: 53 push %ebx
8048a48: 83 e4 f0 and $0xfffffff0,%esp
8048a4b: 83 ec 10 sub $0x10,%esp
8048a4e: 8b 45 08 mov 0x8(%ebp),%eax
8048a51: 8b 5d 0c mov 0xc(%ebp),%ebx
8048a54: 83 f8 01 cmp $0x1,%eax
8048a57: 75 0c jne 8048a65 <main+0x21>
8048a59: a1 c4 d7 04 08 mov 0x804d7c4,%eax ??
8048a5e: a3 f0 d7 04 08 mov %eax,0x804d7f0 ??
8048a63: eb 74 jmp 8048ad9 <main+0x95>
8048a65: 83 f8 02 cmp $0x2,%eax
8048a68: 75 49 jne 8048ab3 <main+0x6f>
8048a6a: c7 44 24 04 e8 a2 04 movl $0x804a2e8,0x4(%esp)
Auf Linien 8048a59 und 048a5e, wo ich die Fragezeichen gesetzt haben, ich nehme an, es versucht, was zu setzen, ist in Adresse 0x804d7f0 zu dem, was in ist Adresse 0x804d7c4, aber woher weiß ich, was genau in diesen Adressen ist?
Sie nicht, wenn Sie nicht wissen, was das Programm ist und was es tut. – Hannu
Wenn Sie den Linker dazu bringen können, eine Map-Datei auszuspucken, sollten Sie eine Liste aller absoluten Adressen für Ihre Variablen erhalten. – Lundin