80386 instruktionen DIV, ekvalient formel?

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

80386 instruktionen DIV, ekvalient formel?

Inlägg av blueint »

Om en instruktion "div %bx" exekveras av en i386 processor. Är det ekvalient med:

EAX = int( EAX / EBX )
EDX = EAX % EBX

Dvs EAX lika med heltalsdelen av divisionen och EDX lika med decimaldelen. Men då den senare är med heltal så uttrycks den i modulo istället.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: 80386 instruktionen DIV, ekvalient formel?

Inlägg av sodjan »

BX är väl 16 bit så det bör vara DX/AX som är inblandade, inte EAX/EDX.
Det borde bli :
AX = DX:AX / BX
DX = DX:AX % BX

http://download.intel.com/design/intarc ... 319101.pdf
Sid 3-148.

Men igentligen så vat jag inte alls, jag vet inte ett smack om
den arkiekturen... :-)
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: 80386 instruktionen DIV, ekvalient formel?

Inlägg av blueint »

"div %ebx" skulle det vara förstås.

Tja.. x86 arkitekturen är tragisk. Och något man vill undvika :dead:
(nödvändligt ont)
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: 80386 instruktionen DIV, ekvalient formel?

Inlägg av sodjan »

Blir det inte då :

EAX = int(EAX:EDX / EBX)
EDX = EAX:EDX % EBX

Eller så läste jag helt galet... :-)
Skriv svar