AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ASM zu binärcode bzw funktionierender exe?

Ein Thema von Memnarch · begonnen am 28. Jul 2011 · letzter Beitrag vom 29. Jul 2011
 
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#13

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 00:46
Ja, opN steht für den N-ten Operanden. Ein Operand ist meistens entweder
  • ein Register (z.B. eAX, AL usw.)
  • eine direkt (=immediate) auf den OP-Code folgende Konstante im Code (imm8, imm16, imm32)
  • ein mod-R/M-Byte – eine auf konfuse Weise kodierte Kombination aus einem Register (r) und einer Adresse (m wie Memory) (in der Tabelle gekennzeichnet durch r/m8 , r16/32 , r/m16/32 etc.)
Die Sache mit dem mod-R/M-Byte zu verstehen, hat mich damals am meisten Zeit gekostet. Eine wirkliche Erklärung habe ich dazu nicht gefunden, aber immerhin diese Übersicht¹, und daraus habe ich es mir dann zusammengereimt. Oben steht das Ziel der Operation (immer Register), links die Quelle (Register, oder Adresse).

Wenn z.B. im Register EBX eine Speicher-Adresse steht, und du den an dieser Adresse stehenden Wert in das Register EAX kopieren willst (als Mnemonic: MOV EAX, [EBX] ²), so lautet der OP-Code dafür: 89 03 . Das erste Byte ist die Instruction MOV , das zweite Byte ist das mod-R/M-Byte für „EAX ← [EBX]“ (siehe Tabelle). MOV EAX, EBX (ohne eckige Klammern (!), also direkte Kopie des Register-Inhaltes) wäre hingegen 89 C3 .

¹ gerade jetzt sehe ich, dass das gleiche auch unten auf der anderen Seite steht...
² die eckigen Klammern sind bekanntlich der Dereferenzierungs-Operator, das Assembler-Äquivalent zu Wert^ in Delphi

Geändert von Namenloser (29. Jul 2011 um 17:23 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz