|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 384
|
[Assembly 8086] scrivere un byte in memoria invece di una word
Ciao a tutti ho il seguente problema:
ho un vettore in memoria che devo scansionare alla ricerca di occorrenze e, dove ne trovo, devo sovrascrivere la cella del vettore con un carattere. Il mio problema è proprio qui: facendo un dump della memoria mi sono accorto che oltre al carattere selezionato viene sovrascritto anche il successivo. L'istruzione incriminata è la seguente: Codice:
mov [BX+DI],'*' ;si marca la lettera Inoltre il fase di assemblaggio TASM mi restituisce proprio a questo rigo il seguente warning: Codice:
*Warning* occ.asm(134) Argument needs type override ![]() grazie per l'aiuto |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Se non ricordo male la sintassi TASM prevede questa possibilità:
mov [byte BX+DI],1 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 384
|
grazie per l'aiuto
credo però che la sintassi sia sbagliata, infatti oltre al warning di prima appare il seguente errore Codice:
**Error** occ.asm(134) Need right square bracket grazie ancora! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Solitamente si adotta la sintassi mov byte [registro], 1
Però mi sembrava di ricordare che il buon vecchio TASM richiedesse il byte all'interno delle parentesi quadre. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 384
|
trovata la sintassi corretta!!!
Codice:
mov byte ptr [BX+DI],'*' |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova anche con
movb [BX+DI],'*' |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 384
|
no mi spiace questa non funziona: secondo tasm è un'istruzione illegale
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: May 2003
Messaggi: 10
|
il mio assembly è di gran lunga arrugginito, ma sei sicuro che con quell'indirizzamento (sulla destinazione) sia possibile passare un immediato?
edit. sì, si può. mi ritiro in buon ordine
__________________
![]() ![]() ![]() Ultima modifica di gheg : 02-02-2008 alle 15:14. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:17.