Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-02-2010, 19:46   #1
annam90
Junior Member
 
Iscritto dal: Feb 2010
Messaggi: 15
[Assembler] sostituire le occorrenze in una stringa

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:
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.
annam90 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2010, 20:05   #2
annam90
Junior Member
 
Iscritto dal: Feb 2010
Messaggi: 15
se qualcuno sa come aiutarmi, è urgente =(
annam90 è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 13:12   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Così fai una sola sostituzione.

ciclo_sost: cmp dl, vetst[si]
je sost2
inc si
loop ciclo_sost
sost2: mov vetst[si], bl

La sostituzione deve avvenire all'interno del loop.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 14:57   #4
annam90
Junior Member
 
Iscritto dal: Feb 2010
Messaggi: 15
ho provato..ho messo sost2 sotto a je sost2 e non mi fa il ciclo stampa2
poi l'ho messo sotto ad inc si e mi stampa "p sto"..
annam90 è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 15:06   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo, hai azzerato bl:

mov bl, newc
mov cx, 5
mov ax, 0
mov si, 0
mov dx, 0
mov bx, 0

Inoltre non basta spostare quella linea devi anche ragionare su quando devi fare la sostituzione e quando non devi.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 15:59   #6
annam90
Junior Member
 
Iscritto dal: Feb 2010
Messaggi: 15
io ho pensato che dovesse far ela sostituzione una volta verificato che i due elementi sono uguali..però poi dovrebbe esserci qualcosa che riporta al ciclo
annam90 è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 16:01   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da annam90 Guarda i messaggi
io ho pensato che dovesse far ela sostituzione una volta verificato che i due elementi sono uguali..però poi dovrebbe esserci qualcosa che riporta al ciclo
Oppure "non fare la sostituzione quando i due elementi non sono uguali"
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 16:03   #8
annam90
Junior Member
 
Iscritto dal: Feb 2010
Messaggi: 15
ho provato a sostituirew con questo..

ciclo_sost: cmp dl, vetst[si]
jne non_sost2
mov vetst[si], bl
non_sost2:
inc si
loop ciclo_sost


ma non và comunque..
annam90 è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 16:07   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mi fai vedere com'è ora il codice completo ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2010, 16:24   #10
annam90
Junior Member
 
Iscritto dal: Feb 2010
Messaggi: 15
Ho risolto! Avevo inizializzato anche bx a 0, e quindi non metteva newc! grazie dell'aiuto ^^


Codice:
; multi-segment executable file template.

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 si, 0
             mov ax, 0
             
ciclo_sost: cmp dl, vetst[si]
              jne non_sost2
              mov vetst[si], bl
              non_sost2:inc si
              loop ciclo_sost 
              
              
    mov dl,13
   mov ah, 2
   int 21h 
   mov dl,10
   mov ah, 2
   int 21h
   
    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.
annam90 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Puoi giocare ad Halo in Minecraft? Sì, s...
WhatsApp: in fase di test l'introduzione...
XPeng G9 MY26 segna il record europeo pe...
Apple corregge due gravi vulnerabilit&ag...
DC Comics batte al cinema Marvel per la ...
L'iPhone più sottile di sempre scende di...
Saros di Housemarque punta ad offrire un...
La statale cinese FAW entra in Leapmotor...
Rinnova il PC spendendo meno: super offe...
Windows 11: Microsoft riduce l'uso di RA...
I 4 smartphone più venduti su Ama...
Samsung SDI testa una batteria silicon-c...
Volete un robot senza compromessi? DREAM...
CATL conferma un uso massiccio di batter...
Ripartono le offerte DJI: Neo torna a 14...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v