Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106

    Assembler

    Ciao a tutti ,ho dei dubbi sul risultato di questo esercizio ,in cui devo dire qual é l'output finale di 0xF2

    codice:
    .GLOBAL _main
    .EQU n, 30
    # Sezione dati
    vett: .FILL n,1
    # Sezione codice
    inbyte: IN 0x2A, AL
               RET
    outbyte: OUT AL, 0xF2
                RET
    _main: MOV $n, CL
              MOV $vett, EDI
              CALL inbyte
          k : MOV AL,(EDI)
               ADD $50, AL
               JC k1
               INC EDI
               DEC CL
               JNZ k
         k1:  MOV CL, AL
               CALL outbyte
               JMP fine
       fine:  RET
    Essendoci JC,come faccio ad essere sicuro che quella somma insieme ad un valore dato in input non mi generi mai il flag??
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da Gianni91
    Assembler
    Per favore, usa titoli più significativi per le discussioni, che includano il linguaggio e una descrizione rappresentativa del problema. Qui ho corretto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106

    Re: Moderazione

    Originariamente inviato da alka
    Per favore, usa titoli più significativi per le discussioni, che includano il linguaggio e una descrizione rappresentativa del problema. Qui ho corretto io.
    scusa me ne sono accorto dopo...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Un attimo ... mi sembra che il vettore sia fatto da 30 valori uguali ad 1 e che la somma venga fatta tra tutti gli elementi e il valore $50 ... quindi il risultato dovrà essere

    $6E

    e il Carry non viene mai coinvolto.

    Almeno a prima vista ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106
    spero ci sia qualche errore,non riesco a capire..

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Gianni91
    spero ci sia qualche errore,non riesco a capire..
    Ho corretto la mia risposta ... rileggila ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106
    Per quello che ho capito io,
    il primo elemento del vettore viene inizializzato al valore in input,al quale viene sommato 50,
    per quanto riguarda le altre celle al viene incrementato sempre di 50 e poi inserito in nel vettore ..
    quindi
    vett[0]=input;
    vett[1]=50;
    vett[2]=100;
    ecc...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Gianni91
    Per quello che ho capito io,
    il primo elemento del vettore viene inizializzato al valore in input,al quale viene sommato 50,
    per quanto riguarda le altre celle al viene incrementato sempre di 50 e poi inserito in nel vettore ..
    quindi
    vett[0]=input;
    vett[1]=50;
    vett[2]=100;
    ecc...
    No ... guardandolo meglio c'è una continua somma dell'elemento del vettore con il valore $50 ma non viene "totalizzato" dato che viene sempre aggiornato il registro AL all'inizio del ciclo ... Insomma è un ciclo in cui per 30 volte viene sommato 1 + $50

    Quindi non ci sarà mai un JC e alla fine del ciclo CL varrà 0 e sarà inviato questo valore in uscita ...

    (è anche fuorviante il fatto che la sintassi di questo codice prevede source e destination in ordine opposto al consueto ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106
    l'output viene 0 allora,visto che CL viene decrementato fino alla fine del vettore??
    Scusa ma xchè u nn vettore di 30 component uguali a 1
    codice:
    vett: .FILL  30,1
    non significa 30 compnenti da 1 byte??
    credevo che le celle fossero tutte a 00000000...
    Poi non mi torna,cosa succede
    Il comando MOV inserisce in esi una copia di Al,quindi in Al rimane il valore dato in input al quale viene sommato 50..
    non vedo azioni di sovrascrittura ???

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    106
    Originariamente inviato da Gianni91
    non vedo azioni di sovrascrittura ???
    scusa cancella questa frase ...

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.