Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [Assembly 8086] Tipo if then

    Raga ho un problema, avendo dichiarato nel DATA SEGMENT che la variabile (numero) e di 8 bit....
    codice:
    DSEG    SEGMENT 'DATA'
    
    numero DB 1011b
    
    DSEG    ENDS
    .
    .
    .
    
    MOV AL, numero  ;quindi avro  00001011
    ;come faccio a dire se il "I" (dove 'I' e' come un indice) bit di AL e' uguale a zero fai..;
    altrimenti fai...????
    Aiutatemi

  2. #2
    Fai una AND con una maschera di n bit, dove n è la grandezza della variabili di cui vuoi testare il bit, in cui il solo i-esimo bit è uguale a 1 mentre i restanti sono pari a 0. Se il risultato di tale operazione è uguale a 0 il bit i-esimo è 0, altrimenti è pari a 1. Saluti

  3. #3
    Scusa la mia ignoranza, ma e' da poco che sto imparando l'assembly. Mi potresti fare un esempio???

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' piu' pratico utilizzare la TEST

    codice:
    MOV AL, numero
    TEST AL, 00001000b ' testa il bit 3
    JNZ label1  ' salta se e' a 1
    ' continua se e' a 0
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Ma io dovrei fare un controllo su tutti i bit di AL. Credo che non mi puo servire la TEST

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Che vuol dire "su tutti i bit"? Perche' non ti dovrebbe servire la TEST (che e' fatta apposta, come dice il suo nome ...)?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Si si hai ragione, adesso ho capito come funziona.
    Io però devo cercare di generalizzare questo controllo su ogni bit di AL, come posso far cambiare...(questo???

    TEST AL, 10000000b

    in:

    TEST AL, 01000000b

    poi in:

    TEST AL, 00100000b


    ?????

  8. #8
    SHR ?

    codice:
    mask db 0x80 ;; 10000000
    
    test variabile, mask
    jxx label
    shr mask, 1

  9. #9
    ma su jxx mi da errore

  10. #10
    Originariamente inviato da Salvatore_91
    ma su jxx mi da errore
    Per jxx intendevo un jump generico

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.