AGB  ·  Datenschutz  ·  Impressum  







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

[ASM] Dividieren von Ganzzahlen

Ein Thema von Balu der Bär · begonnen am 3. Okt 2006 · letzter Beitrag vom 3. Okt 2006
Antwort Antwort
Seite 2 von 2     12   
Dax
(Gast)

n/a Beiträge
 
#11

Re: [ASM] Dividieren von Ganzzahlen

  Alt 3. Okt 2006, 21:32
Örm, falsch.

x86 Instruction Set Reference
CWD/CDQ—Convert Word to Doubleword/Convert Doubleword
to Quadword

Description

Doubles the size of the operand in register AX or EAX (depending on the operand size) by
means of sign extension and stores the result in registers DX:AX or EDX:EAX, respectively.
The CWD instruction copies the sign (bit 15) of the value in the AX register into every bit position
in the DX register (see Figure 7-6 in the IA-32 Intel Architecture Software Developer’s
Manual, Volume 1). The CDQ instruction copies the sign (bit 31) of the value in the EAX
register into every bit position in the EDX register.
The CWD instruction can be used to produce a doubleword dividend from a word before a word
division, and the CDQ instruction can be used to produce a quadword dividend from a doubleword
before doubleword division.
The CWD and CDQ mnemonics reference the same opcode. The CWD instruction is intended
for use when the operand-size attribute is 16 and the CDQ instruction for when the operand-size
attribute is 32. Some assemblers may force the operand size to 16 when CWD is used and to 32
when CDQ is used. Others may treat these mnemonics as synonyms (CWD/CDQ) and use the
current setting of the operand-size attribute to determine the size of values to be converted,
regardless of the mnemonic used.


Sprich: es füllt EDX mit Sign(EAX).

@Balu: Intel x86 Instruction Set Reference - Google mal danach
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: [ASM] Dividieren von Ganzzahlen

  Alt 3. Okt 2006, 21:34
Habe ich das nicht gesagt?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#13

Re: [ASM] Dividieren von Ganzzahlen

  Alt 3. Okt 2006, 21:44
Zitat von Dax:
Örm, falsch.
Öhm, nö. Und deine gepostete Doku sagt dies sogar aus. 3_of_8 hat es zwar in Kurzform geschrieben aber vollkommen richtig.

/EDIT: Mitten im POST ein Discon... *grml*
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.064 Beiträge
 
Delphi XE2 Professional
 
#14

Re: [ASM] Dividieren von Ganzzahlen

  Alt 3. Okt 2006, 21:47
Zitat von Dax:
Örm, falsch..
FALSCH. Was 3_of_8 schrieb ist völlig korrekt.


Zitat von Dax:
Sprich: es füllt EDX mit Sign(EAX)...
FALSCH.
Würde CDQ EDX mit Sign(EAX) füllen, dann wäre EDX, je nach Interpretation von "Sign(EAX)", entweder $80000000 oder $00000001 oder $00000000

Richtig ist, daß CDQ Bit 31 aus EAX in jedes Bit von EDX kopiert also ist EDX dann entweder $FFFFFFFF oder $00000000, also exakt so, wie 3_of_8 es schrieb.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#15

Re: [ASM] Dividieren von Ganzzahlen

  Alt 3. Okt 2006, 21:56
Ach verdammt, ich hab statt edx da oben eax gelesen Und beim schreiben nich gedacht Ich meinte, das Sign(EAX) in jedes Bit geschrieben wird, nicht ins ganze Register...

*jetzt besser die klappe hält*
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:14 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