AGB  ·  Datenschutz  ·  Impressum  







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

[ASM] Prefix 16/32 Bit -> 66h

Ein Thema von neolithos · begonnen am 25. Mai 2004 · letzter Beitrag vom 22. Jun 2004
Antwort Antwort
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#1

[ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 21:33
Einfaches Bsp:

inc eax
ergibt bei mir -> Hex: 66h 40h

bei Delphi aber nur 40h!
Wieso läßt Delphi das Präfix weg. Welches zwischen den 32 und 16 Bit inc unterscheidet.

denn inc ax
ist ja auch 40h

Wie läuft das nun mit dem Präfix-Byte?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 21:54
Moin Neolithos,

Zitat von neolithos:
denn inc ax
ist ja auch 40h
nein, inc ax ist 66h 40h, inc eax hingegen 40h
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 22:01
Warum macht es aber NASM genau anders herum?

Bei NASM ist

inc eax mit 66h
und
inc ax ohne 66h

Das verwirrt mich ein wenig!
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 22:05
Moin Neolithos,

gute Frage.
Gemäss Dokumentation von Intel (Instruction Set Reference - Order Number 245471-011) ist 66h ein Prefix für 16 Bit Befehle, wenn die CPU im 32 Bit Modus läuft.
Für viele Befehle ist dieser noch nicht einmal nötig, wenn der andere Operand schon festlegt, ob es sich um einen 16 oder 32 Bit Wert handelt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#5

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 22:17
Neue Erkenntnis:

Dieses Flag-Schaltet den aktuellen Modus um!

=> NASM -> 16 Bit Programme
=> Delphi -> 32 Bit Programme

Wie kann man jenes aber bestimmen?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 22:22
Moin Neolithos,

Zitat von neolithos:
Wie kann man jenes aber bestimmen?
in Delphi:
Wohl gar nicht, denn es handelt sich ja schliesslich um einen 32 Bit Compiler.

in NASM:
keine Ahnung.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 22:26
Es geht hier um eine theoretische Überlegung des Compiler-Bau's für ein eigenes OS.

Damit ist die Frage noch nicht beendet. Wie bestimmt man das nun?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#8

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 25. Mai 2004, 22:29
Juhu ich habs!

Das kann nur im Protection-Mode festgelegt werden. Und dort im Code-Segment-Descriptor.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Xenon

Registriert seit: 3. Jun 2004
4 Beiträge
 
#9

Re: [ASM] Prefix 16/32 Bit -> 66h

  Alt 22. Jun 2004, 20:09
sry das ich das Thema wiedererwecke, obwohl es schon 1 Monat her is, aber ich hab heute was gesucht, was mir sehr geholfen hat und da hab ich diesen Thread hier gefunden und will jetzt mal so gut sein und das für NASM beantworten:

Code:
[Bits 32]
weist NASM an 32 Bit Code zu erstellen.

Delphi-Quellcode:
var i: array [1..5] of integer;
    j: integer;
    p: ^integer;
begin
  p := @i[1];
  asm
        MOV ECX, 5
        @@l:
        MOV EBX, p
        MOV EAX, ECX //for j:=1 to 5 do
        DEC EAX // i[j] := j;
        IMUL EAX, 4
        ADD EBX, EAX
        MOV [EBX], ECX
        LOOP @@l
  end;
end;
hab ich übrigens durch die hilfe des forums geschafft =)
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:36 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