Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ASM Mnemonics auflösen (https://www.delphipraxis.net/57490-asm-mnemonics-aufloesen.html)

faux 22. Nov 2005 06:12


ASM Mnemonics auflösen
 
Hallo!

Wenn man in ASM zb JMP schreibt, so wandelt der Assembler das dann in einen (2-Bit langen?) Hex-Code um.
Beispielsweise EB.
Dieser Code ist ja nicht immer EB. Meine Fragen wäre jetzt, 1. wieso ist das nicht immer EB (ich denke mal, dass das mit Aufwärts/Abwäerts-Sprung zu tun hat) und 2. wo kann ich diese Codes nachlesen? Also wenn ich jetzt MOV AH... habe, woher weiß ich, dass der Code dafür B4 lautet?

Grüße
Faux

Muetze1 22. Nov 2005 07:41

Re: ASM Mnemonics auflösen
 
Geh doch einfach zu Intel und AMD und lad dir deren Dokumentationen runter. Dort ist die komplette Kodierung der Befehle aufgelistet und beschrieben. Ansonsten kannst du dir auch die Kurzform mit allen Befehlen aus der opcodes.lst/.txt in der Ralf Brown's Interrupt List rausholen.

Flocke 22. Nov 2005 07:50

Re: ASM Mnemonics auflösen
 
Intel: http://developer.intel.com/design/pentium/manuals/
AMD: http://www.amd.com/us-en/Processors/...9_1102,00.html

Zu deinen Fragen:

$EB ist ein short jump und wird benutzt wenn der Zielbereich zwischen -128 und +127 Bytes entfernt liegt. $E9 ist ein near jump und benutzt ein volles 32-Bit Displacement.

Für mov gibt es ziemlich viele Opcodes, allerdings gibt's für fast jede Instruktion mehr als einen. Die meisten nutzen eine Mod-Reg-R/M-Adressierung. $B4 ist eine Ausnahme: die Codes $B0 bis $B7 bedeuten "mov reg8,imm8", wobei reg8 aus [AL,CL,DL,BL,AH,CH,DH,BH] kommt (daher +0 bis +7).

Allerdings wäre es müßig, dies alles auswendig zu wissen - dafür gibt's inline-Assembler und Disassembler.

perle 22. Nov 2005 09:12

Re: ASM Mnemonics auflösen
 
Hier ist auch entsprechender Delphicode um die das umwandeln zu lassen.

http://forum.madshi.net/viewtopic.php?t=50

faux 22. Nov 2005 17:01

Re: ASM Mnemonics auflösen
 
Danke für die Antworten, werd mir mal alles durchsehen. ;)

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz