Kezdőoldal » Számítástechnika » Programozás » [x86 ASSEMBLY] Hogyan tudom...

[x86 ASSEMBLY] Hogyan tudom elérni az AL,8 bites regiszter alsó 4 bitjét?

Figyelt kérdés
Az úgy megvan, hogy az EAX regiszter alsó 16 bitje az AX, az AX felső 8 bitje az AH, és az alsó 8 az AL, de akkor az AL alsó 4 bitjét hogyan tudnám elérni? Egy decimális számot kell kiírjak hexadecimálisként, Assemblyben...

2017. nov. 4. 09:31
 1/5 anonim ***** válasza:

Direktben sehogy.

A legkisebb egység a Byte, ami adott 16 bites regiszter alsó vagy felső fele, ahogy írod is.

Bitmanipulációra van lehetőség, de csak byte szinten.

Or, xor, and, not, stb..

2017. nov. 4. 09:54
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Köszönöm a segítséget, így rájöttem, hogyan lehetne megoldani... Posztolom a megoldást, ha más is elakadna ebben... :-)


Elmentem az EAX eredeti tartalmát az EBX regiszterbe, és a verembe is:

XOR EBX, EBX

MOV EBX, EAX

PUSH EAX


Átmásolom az AL tartalmát az előzőlegesen lenullázott EDX-be:

XOR EDX, EDX

MOV DL, AL


Egy ÉS művelettel lenullázom a felső biteket (az alsó 4 bitnek, mivel 1-essel ÉS-elem, megmarad az eredeti értéke):


AND EDX, 00000000000000000000000000001111b


(Biztosra megyek az egész EDX-el...)


Átmásolom az EDX tartalmát (az eredeti AL alsó 4 bitje) az EAX-be:

MOV EAX, EDX


És ezzel már lehet dolgozni.


Amikor a következő 4 bit kell, akkor kiveszem a veremből EAX eredeti értékét, és jobbra shiftelem a biteket néggyel, majd megismétlem a fentebb leírt felső bitek törlését (közben EAX legelső értéke ott van az EBX-ben):

POP EAX

SHR EAX, 4


Ismétlés...

2017. nov. 4. 11:50
 3/5 anonim ***** válasza:
És mire jó ez?
2017. nov. 4. 15:01
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:
Decimális szám átalakítása hexadecimálissá kiíráshoz - tudom, semmi praktikai haszna nincs, csak egyetem első évében kezdő szinten tanuljuk az Assembly-t és meg kellett írni a konzolszintű írás-olvasás programokat...
2017. nov. 4. 17:26
 5/5 anonim ***** válasza:

"tudom, semmi praktikai haszna nincs"


Van annak haszna. Nem is kevés.

2017. nov. 4. 17:39
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!