PDA

View Full Version : [asm]Domanda


Luc@s
26-06-2004, 13:25
Vediamo se ho capito..........in asm Setto i registri e poi richiamo l'int giusta......o sbaglio??
cioe per esempio

; ---=[ Carica la Root ]=--- ;
mov ah, 0x02 ; Servizio 2 dell'interrupt 13h
mov al, 0x0E ; Settori da caricare
mov bx, 0x500 ; Dove caricare la ROOT
mov ch, 0 ; Traccia 0
mov cl, 2 ; Settore 2
mov dh, 1 ; Testina 1
mov dl, [bootdrv]; Drive
int 0x13

Imposto i vari argomenti e poi chiamo int 0x13 in pratica ah, al(ax) e ch, cl(cx) e dh, dl(dx) sono i parametri virtuali che int 0x13 necessita per funziare, giusto??
Cioe i registri fanno da argomenti(parlando in C) della funzione(int 0x13)............sbaglio?

cionci
26-06-2004, 14:10
Certo...č proprio cosė... Solitamente in ah si va a mettere il tipo di servizio desiderato (il tipo di servizio ottenuto da una chiamata ad interrupt č solitamente discriminato dal contenuto di ah)...
Anche se il modo di passare gli argomenti ad una funzione di un linguaggio di alto livello avviene in modo diverso...tramite lo stack...

Luc@s
26-06-2004, 15:58
quindi qualcosa da asm l'ho capita!!
Per i salti condizionati(if, else del C) come faccio??

Tnk

mmx[ngg]
26-06-2004, 16:05
Originariamente inviato da Luc@s
quindi qualcosa da asm l'ho capita!!
Per i salti condizionati(if, else del C) come faccio??

Tnk

Questo funziona


;if (Var == Var/Valore)
; Var++;
;else
; Var--;


:sofico:

Luc@s
26-06-2004, 16:07
Originariamente inviato da mmx[ngg]

:sofico:

:rolleyes:

AnonimoVeneziano
26-06-2004, 16:58
Per fare un If/Else devi usare una combinazioni di istruzioni Compare (CMP) e di Jump Condizionate (JXX)

Se ti interessa imparare l'ASM ti consiglio di leggerti (come sto facendo io) il libro "Assembly Language Step by Step with DOS and Linux" di Jeff Duntemann , che ti spiega a fondo il funzionamento dei calcolatori per introdurti al mondo dell' Assembly , e poi ti insegna il funzionamento dell' Assembly x86 e la programmazione nei 3 sistemi di memoria dell' X86 (Real Mode Flat/Segmented Model sotto DOS e Protected Mode Flat Model sotto Linux) .

Un libro che ha veramente tanto da insegnare e che consiglio

CIao