x rox...........
TEST ebx,000010000000001b
je over
in ebx che c'è???
MUL ebx ;moltiplica il contenuto di eax per ebx e salva il risultato in edx:eax
Spero di averti chiarito le idee..............
questo sopra è un taglia e incolla da un mio prg, per far solo capire all'amico del post che deve usare l'istruzione test per verificare lo stato dei flag (per quello che serve a me va benissimo, non c'è nessun errore......hehheh!!)
Per questo motivo in asm normalmente non si posta codice, ognuno deve studiarsi da solo il problema e fare da solo la propria routine che gli serve
L'importante è che il nostro amico sa che deve usare l'istruzione test
L'istruzione TEST risulta molto utile quando noi vogliamo controllare lo stato di uno o più bit all'interno di un registro o una locazione di memoria
Esempi:
TEST eax,1 ;controlla il primo bit (ovvero quello meno significativo) di eax
JZ nonsettato ;salta all'etichetta "nonsettato" se quel bit è azzerato (ma ognuno può fare quello che + gli aggrada)
TEST al,0000100b ;controlla il terzultimo bit di al
JNZ settato ;salta se è uguale ad 1 ma ognuno può fare quello che + gli aggrada)
in effetti sarebbe meglio mettere ........jcc (poi fai come ti pare)
.....mai l discorso sui jcc(salti condizionali esula dalla domanda del nostro amico.......), per i salti condizionali useremo un'altro post attinente
-----------------
----------------------
code:--------------------------------------------------------------------------------
pushfd ; salva eflags sullo stack
pop eax ; preleva eflags dallo stack e lo memorizza in eax
-------------------------------------
......non ti confondere le idee akiross.............
Assolutamente no , non serve passare per lo stack
il registro di flag viene controllato sempre dopo un'operazione....
questo è l'importante........
comunque......
Quando la CPU incontra il codice macchina di PUSHFD, sottrae 4 byte a ESP e copia il contenuto a 32 bit del registro EFLAGS nella locazione di memoria SS:ESP
....... ma rox è conosciuto per confondere le idee
ciao