Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [ASM]Domanda

  1. #1

    [ASM]Domanda

    Vediamo se ho capito..........in asm Setto i registri e poi richiamo l'int giusta......o sbaglio??
    cioe per esempio
    codice:
    ; ---=[ 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?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    mi sa che ho detto un inesattezza.
    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)...

    Per il resto ho ragione o canno tutto?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    52
    nn conosco la chiamta all'int
    cmq si disolito in ah come hai detto ci va il tipo di servizio desiderato.
    Solo una cosa in asm per indicare un valore esadecimale nn si usa h (diversamente dall'Ox del C)????

  4. #4
    Originariamente inviato da DaUlisse
    nn conosco la chiamta all'int
    cmq si disolito in ah come hai detto ci va il tipo di servizio desiderato.
    Solo una cosa in asm per indicare un valore esadecimale nn si usa h (diversamente dall'Ox del C)????
    si puo usare sia 0Fh sia 0xFF
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  5. #5
    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?
    sì in un certo senso sì, i registri da settare fungono da argomenti accettati. Anche un int ha i suoi parametri di "entrata" ma pure di "uscita", in pratica i valori di ritorno:
    in questo caso:

    codice:
    Return: CF set on error
    	    if AH = 11h (corrected ECC error), AL = burst length
    	CF clear if successful
    	AH = status (see #0142)
    	AL = number of sectors transferred (only valid if CF set for some BIOSes)
    
    Copied from Ralf Brown's Interrupt List



    Solo una cosa in asm per indicare un valore esadecimale nn si usa h (diversamente dall'Ox del C)????
    già.. perché usi "0x"?

    edit: scusa ora ho letto.
    ma con qualsiasi assemblatore puoi fare in entrambi i modi?


  6. #6
    Originariamente inviato da SnakePlissken
    [saibal]
    ma con qualsiasi assemblatore puoi fare in entrambi i modi?

    [/saibal]
    nasm lo accetta
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.