xor al,bl

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Antworten
asmNoob
Newbie
Beiträge: 4
Registriert: Montag 8. Januar 2007, 17:49

xor al,bl

Beitrag von asmNoob » Montag 8. Januar 2007, 17:53

Hi,

ich fange gerade an mich mich Assembler zu beschäftigen und bin dabei auf was gestoßen. Ich habe folgendes Programm geschrieben:

Code: Alles auswählen

.586P
.MODEL FLAT,STDCALL
includelib c:\masm32\lib\user32.lib
EXTERN	MessageBoxA@16:NEAR
; Data segment
_DATA SEGMENT
TEXT1 DB 'Hello World!',0
TEXT2 DB 'Message',0
_DATA ENDS
; Code segment
_TEXT SEGMENT 
START:
	PUSH OFFSET 0
	PUSH OFFSET TEXT2
	PUSH OFFSET TEXT1
	PUSH 0
	CALL MessageBoxA@16
	RETN
_TEXT ENDS
END START
Wenn ich mir die Opcodes anschaue, dann sehe ich nach dem RET ein xor al,bl. OllyDBG macht daraus ein DB 32 und dumpbin.exe macht daraus auch das xor al,bl; RETN.

Was hat es mit dem xor aufsich?

Gruß
Chris

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Beitrag von crack » Dienstag 9. Januar 2007, 21:35

XOR steht für Exklusiv Oder: Dabei werden beide Werte bitweise verknüpft, die Funktion XOR hat folgende Wahrheitswerte:



A B X

0 0 0

1 0 1

0 1 1

1 1 0
mit freundlichen grüssen,
with best regards,

crack

asmNoob
Newbie
Beiträge: 4
Registriert: Montag 8. Januar 2007, 17:49

Beitrag von asmNoob » Mittwoch 10. Januar 2007, 00:39

Was XOR ist weiß ich. Das Problem lag wo anders.
Ich habe 2 Programme geschrieben und in einem habe ich nach dem RET ein DB 50 gemacht und das war das Problem.
Jetzt ist aber das Problem das MASM32 auf dem DB 50 das xor al,bl macht

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Beitrag von crack » Mittwoch 10. Januar 2007, 00:44

es ist so: im Debug Modus werden Datenfelder nicht als solche erkannt, der Decompiler (oder Disassembler) interpretiert die Bytes in den Datenfeldern als Opcodes und Operanden. Für die Datenfelder anzuschauen benutzt man ein einfaches HexDump Programm oder den 'Dump Modus' des Debuggers.
mit freundlichen grüssen,
with best regards,

crack

asmNoob
Newbie
Beiträge: 4
Registriert: Montag 8. Januar 2007, 17:49

Beitrag von asmNoob » Donnerstag 11. Januar 2007, 11:17

ahh cool danke

Antworten