Tips på bra assembler-beskrivning/handbok för x86-Processorer?

Permalänk

Tips på bra assembler-beskrivning/handbok för x86-Processorer?

Hej.

Vi har en kurs där vi bland annat ska programmera x86-assembler. Men vi har ingen riktig bok och vi letar nu efter bra sidor med tydliga beskrivningar på hur alla instruktioner funkar och så.

Då tänkte jag om kanske någon här vet någon bra sida eller så
Så någon här som har några tips på bra sidor med x86 assembler?

Visa signatur

PC: Windows 10 Pro x64 | ASUS Z270 ROG MAXIMUS IX CODE | Intel i7 7700K 4.2 GHz | Crucial 2x8GB@2400MHz | ASUS GeForce GTX 1070 8GB DUAL OC | Samsung 960 EVO 500GB | WD Red 2TB | Corsair TX650M 650W | Deepcool Tesseract ATX

Permalänk
Hedersmedlem

http://www.intel.com/content/www/us/en/processors/architectur...
Volym 2 går igenom alla instruktioner och hur de fungerar.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk

Ojoj, vilken mastodont PDF på 4000 sidor ^^!
Jo men den kan nog bli användbar! Hittade lite om olika saker faktiskt!

Någon som har andra bra tips på liknande också? <:

[liten fråga nr 1:] Någon som vet hur instruktionerna adc och mul funkar med carry och registret EDX? För när man t ex gör MUL EBX så läggs saker hela resultatet i både EAX(lägre bitarna) och EDX(högre bitarna). Dvs som ett 64-bitars tal. Men då tycker jag att EDX funkar som ett carry-register i någon mening. Vad används isåfall carry-flaggan till om EDX fungerar som carry? Eller hur ska vi resonera??

Visa signatur

PC: Windows 10 Pro x64 | ASUS Z270 ROG MAXIMUS IX CODE | Intel i7 7700K 4.2 GHz | Crucial 2x8GB@2400MHz | ASUS GeForce GTX 1070 8GB DUAL OC | Samsung 960 EVO 500GB | WD Red 2TB | Corsair TX650M 650W | Deepcool Tesseract ATX

Permalänk
Medlem

Intel manualen säger detta om MUL:

The OF and CF flags are set to 0 if the upper half of the result is 0; otherwise, they
are set to 1. The SF, ZF, AF, and PF flags are undefined.

Så CF sätts ifall EDX inte är noll dvs när 32 bitar inte räcker till för att representera talet.

ADC lägger bara ihop 2 tal + CF ifall den är satt.

EDIT: Vad carry flaggan används till är upp till dig att bestämma sedan ifall du vill testa efter den eller så. Beror på vad du håller på med helt enkelt.

Visa signatur

Teeworlds - För dig som gillar gulliga saker med stora vapen.