avevo questo esercizio da svolgere: stampare un vettore di stringhe, definito nei dati. sempre nei dati definire la variabile "ricercato", come una delle lettere che ci sono nella stringa. L'esercizio richiedeva poi di inserire un carattere da tastiera, e sostituire questo carattere in tutte le occorrenze di "ricercato"
ho provato a farlo varie volte, ma non riesco a scambiarlo, avrò sbagliato qualcosa nel ciclo sostituisci ma non riesco a capire cosa..questo è il codice:
codice:
data segment
vetst db 'p','o','s','t','o'
ricercato db 'o'
newc db ?
msg1 db "Inserisci carattere: $"
; add your data here!
pkey db "press any key...$"
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
mov ax, 0
mov cx, 5
mov si, 0
ciclo_stampa: mov dl, vetst[si]
mov ah, 2
int 21h
inc si
loop ciclo_stampa
mov dl,13
mov ah, 2
int 21h
mov dl,10
mov ah, 2
int 21h
lea dx, msg1
mov ah, 9
int 21h
mov ah, 1
int 21h
mov newc, al
mov dl, ricercato
mov bl, newc
mov cx, 5
mov ax, 0
mov si, 0
mov dx, 0
mov bx, 0
ciclo_sost: cmp dl, vetst[si]
je sost2
inc si
loop ciclo_sost
sost2: mov vetst[si], bl
mov ax, 0
mov cx, 5
mov si, 0
mov dx, 0
ciclo_stampa2: mov dl, vetst[si]
mov ah, 2
int 21h
inc si
loop ciclo_stampa2
; add your code here
lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key....
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start ; set entry point and stop the assembler.