Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Assembly 8086] Errore solo un byte immediato

    Ciao raga, mi sapreste correggere questa parte di codice in Assembly:
    codice:
    DSEG    SEGMENT 'DATA'
    OP1    DB 110110b
    OP2    DB 1110b
    APP    DW ?
    CONTA  DB 10000b
    DSEG    ENDS
    
    .
    .
    
            MOV AH, 00000000b 		;DA NON TOCCARE
            MOV CH, 00000000b 		;DA NON TOCCARE
            MOV BX, 0000000000000010b       ;DA NON TOCCARE
            MOV AL, OP1
            MOV CL, OP2
    INIZIO:
             TEST BX, CX
             JZ  LABEL1
             JNZ LABEL2 
    LABEL1:  
             SUB CONTA, 1
             SHR BX, 1
             CMP CONTA, 10000b
             JL  INIZIO
             JMP FINE
             
    LABEL2:  MOV APP, AX
             MOV DL, CONTA
             SHL APP, DL     ; mi da qui errore
    l'errore e': parametri errati: SHL APP, DL. Solo un byte immediato o CL possono essere usati come secondo parametro

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Il messaggio d'errore mi sembra chiaro ... puoi usare CL come registro ... se puoi utilizzarlo allora devi scrivere

    codice:
            MOV CL, CONTA
            SHL APP, CL
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    sisi hai ragione avevo gia risolto, ma mi sono dimenticato di postarlo qui

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 © 2024 vBulletin Solutions, Inc. All rights reserved.