Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einfache (?) Assemblerfragen (https://www.delphipraxis.net/17428-einfache-assemblerfragen.html)

Dannyboy 5. Mär 2004 13:14


Einfache (?) Assemblerfragen
 
Moin zusammen, ich habe hier einfach mal Quellcode aus verschiedenen Programmen eingefügt. Ich
eigne mir gerade X86 Assembler an und bin der Meinung, ich komme auch ganz gut klar. Dennoch tue
ich mich bei der Interpretation von anderen ASM-Programmen manchmal schwer. Es gibt einige
Begriffe, die ich nicht kenne und ich stelle dann einfach hier mal die Frage(n) zu den jeweiligen
Assemblerbegriffen:


Code:
MYSEG SEGMENT PARA
// MYSEG SEGMENT ist mir klar, aber was bedeutet das PARA an dieser Stelle?

...
 
MYSEG SEGMENT BYTE
// MYSEG SEGMENT ist mir klar, aber was bedeutet hier das BYTE?

...

STARTCODESEGMENT:
  Mov ax, es; get PSP Segment
// Häää, steht das PSP automatisch im Extrasegment, oder was?

...

Adc ax, bx
// den Befehl adc hab‘ ich noch nie gehört. Was macht der denn?

...

MYSTACK SEGMENT PARA STACK
//Was bedeutet PARA STACK und was wäre denn anders als nur MYSTACK SEGMENT?

Wäre sehr dankbar, wenn ihr mir hierbei helfen könntet. Habe auch schon in Assemblerbüchern
nachgeschlagen, aber irgendwie geben die das nicht her.

Christian Seehase 5. Mär 2004 19:00

Re: Einfache (?) Assemblerfragen
 
Moin Dannyboy,

ADC = Add With Carry
Die Registerinhalte werden addiert, und zusätzlich noch der Inhalt des Carry (Übertrags) Flags.
Ist dieses nicht gesetzt entspricht das Ergebnis dem von ADD

Dannyboy 8. Mär 2004 08:55

Re: Einfache (?) Assemblerfragen
 
@ Christian: Danke Chris, damit kann ich schon mal was anfangen.


@Rest:

Mir scheint, als seien das wohl doch keine einfachen ASM-Fragen, oder? :mrgreen:

Sollte ich vielleicht mal ein ASM-Forum aufsuchen und dort fragen, was meint ihr? :gruebel:

Christian Seehase 8. Mär 2004 19:25

Re: Einfache (?) Assemblerfragen
 
Moin Dannyboy,

PARA und BYTE geben an, an welcher Adressgrenze das Segment ausgerichtet werden soll.
PARA = Paragraph = 16 Byte Grenze = nächste durch 16 teilbare Adresse
BYTE = nächste Adresse, da ein Byte soweit nicht weiter teilbar ist.

Alle Segmente, die als STACK deklariert werden, werden vom Linker zusammengefasst, und der Stackpointer (SS:SP) beim Programmstart auf das Ende dieses Bereiches gesetzt.
Ein Stack wächst von höheren zu niedrigeren Adressen.

Dannyboy 9. Mär 2004 09:15

Re: Einfache (?) Assemblerfragen
 
Hallo Christian,
ich danke Dir für Deine Mühe und Deine Antwort,
denn ich weiss, dass man an diese Antworten
nicht so einfach ran kommt.
Ich denke, damit kann ich was anfangen.

Thanx :thuimb: :thuimb:

Christian Seehase 9. Mär 2004 18:51

Re: Einfache (?) Assemblerfragen
 
Moin Dannyboy,

bitte gerne.

Zitat:

Zitat von Dannyboy
denn ich weiss, dass man an diese Antworten
nicht so einfach ran kommt.

Mit einem gut sortierten Bücherregal geht's ;-)

Dannyboy 10. Mär 2004 10:01

Re: Einfache (?) Assemblerfragen
 
Zitat:

Zitat von Christian Seehase
Mit einem gut sortierten Bücherregal geht's ;-)


Ja, beim Studium werde ich mir sowieso mal das ein oder andere Buch mehr
kaufen müsssen. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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