PDA

Visualizza la versione completa : [Assembly 8086] Errore solo un byte immediato


Salvatore_91
22-12-2008, 11:44
Ciao raga, mi sapreste correggere questa parte di codice in Assembly:


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

oregon
22-12-2008, 12:08
Il messaggio d'errore mi sembra chiaro ... puoi usare CL come registro ... se puoi utilizzarlo allora devi scrivere



MOV CL, CONTA
SHL APP, CL

Salvatore_91
22-12-2008, 12:38
sisi hai ragione avevo gia risolto, ma mi sono dimenticato di postarlo qui

Loading