Come stampare una stringa

Stato
Discussione chiusa ad ulteriori risposte.

Black_Taz21

Utente Silver
4 Febbraio 2008
3
1
0
59
Avrei un problema piccolino vorrei stampare una stringa utilizzando l'int 21h
il codice è il seguente

mov ah,9
mov dx,"frase da stampare"
int 21h

vorrei sapere se questo è il codice giusto, poichè a me da il messaggio di errore value out of range,comunque se questo non è il codice giusto vorrei un aiutino.... un grazie in anticipo
 
Infatti il redistro dx è lungo 4 byte e siccome legge nella parte alta hai disposizione 2 byte, giusto il posto per un lettera, devi fare un loop usando uno dei registri indici (che ora non ricordo quali sono perchè è un bel po' che non programmo in asm) come indice di un vettore e incrementarlo nel loop (magari fai un loop con un etichetta un if e un jamp)
 
no comment....

nn funziona così l'assembly, ecco qui come dovresti fare (versione abbreviata va, nn ho voglia di scrivere tutto)

Codice:
.DATA
var db "la tua stringa",13,10,'$' ;il $ serve a specificare che è una stringa
.CODE
mov ax,SEG var
mov ds,ax
mov dx,OFFSET var
mov ah,09h
int 21h

devi usare il meccanismo SEG:OFFSET
 
Malex ha detto:
no comment....

nn funziona così l'assembly, ecco qui come dovresti fare (versione abbreviata va, nn ho voglia di scrivere tutto)

Codice:
.DATA
var db "la tua stringa",13,10,'$' ;il $ serve a specificare che è una stringa
.CODE
mov ax,SEG var
mov ds,ax
mov dx,OFFSET var
mov ah,09h
int 21h

devi usare il meccanismo SEG:OFFSET


questo codice può essere semplificato se ds è stato impostato in precedenza
 
r4z0r io non ho mai detto che io sono più bravo di te lo sai non è nel mio stile (non sono uno che va in giro dicendo guarda che so fare con il pc oppure io e il traino siamo troppo forti a programmare:) ) comunque il fatto dell' incrementare un ciclo lo ricordavo pure io....il fatto del SEG:OFFSET non lo ricordavo proprio il fatto del $ che serve a identificare una stringa anche grazie a tutti della mano
 
Whivel ha detto:
Malex ha detto:
no comment....

nn funziona così l'assembly, ecco qui come dovresti fare (versione abbreviata va, nn ho voglia di scrivere tutto)

Codice:
.DATA
var db "la tua stringa",13,10,'$' ;il $ serve a specificare che è una stringa
.CODE
mov ax,SEG var
mov ds,ax
mov dx,OFFSET var
mov ah,09h
int 21h

devi usare il meccanismo SEG:OFFSET


questo codice può essere semplificato se ds è stato impostato in precedenza


sì beh si può inserire un

A ; e definisci i dati...

ASSUME DS:SEG_A CS:SEG_A
 
Stato
Discussione chiusa ad ulteriori risposte.