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 28-06-2007, 18:41   #1
Abdujaparov
Senior Member
 
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
Aiuto programma assembler

Salve a tutti sto provando a scrivere un programma assembler x86 che prendendo una stringa del tipo "6 444 1 7 444 2 222 33" (tasti battuti sulla tastiera del telefonino) la trasforma in testo ("mi piaci" in questo esempio), tutto in assembler solo che non mi funziona niente e comincio ad avere errori sin dall'inizio del programma.

Codice:
.model small
.stack
.data
tastiera db ' ', '&', '&', '&'
         db 'a', 'b', 'c', '&'
         db 'd', 'e', 'f', '&'
         db 'g', 'h', 'i', '&'
         db 'j', 'k', 'l', '&'
         db 'm', 'n', 'o', '&'
         db 'p', 'q', 'r', 's'
         db 't', 'u', 'v', 'x'
         db 'w', 'x', 'y', 'z'
risultato db 15 dup(?)
ingresso db "6 444 1 7 444 2 222 33"
.code
.startup
xor si,si
lea ax, tastiera; tastiera
lea bx, ingresso; ingresso
lea dx, risultato; stringa finale
mov cx, 8 ; numero caratteri
dec cx    ;decremento il numero di rilevazioni
push ax
push bx
push dx
push cx
call messaggio
add sp,8 ; perchè sto inserendo 4 parametri
jmp fine

messaggio proc
push bp
mov bp, sp
sub sp, 2
xor dx, dx
mov cx, [bp+4] ; numero caratteri
mov bx, [bp+6] ; risultato
mov si, [bp+8] ; ingresso
mov di, [bp+10]; tastiera  
xor ax, ax; azzero ax
ciclo: mov dl, [si]; sposto il carattere in dl
cmp dl, ' ' ;confronto dl con lo spazio
jne continua ; se non è spazio vado a continua
aggiungi: sub al, 30h ;altrimenti continuo trasformando il carattere in numero decimale
dec al; decremento per trovare la riga
add ah, al
mov [bp-2], word ptr 0
add [bp-2], ah
add [bp-2], di
xor ax, ax
mov al, [bp-2];seleziono il carattere dalla riga
mov [bx], al
add [bx], word ptr 1; avanzo nella stringa risultato
xor ax, ax; azzero ax
dec cx ; decremento cx
jmp ciclo
continua: cmp cx,1
jne normale
cmp al, dl
jne aggiungi
normale: mov al, dl ;in continua metto dl in al
inc ah; incremento ah
add [si], word ptr 1
loop ciclo
mov [bx], byte ptr 0
add sp, 2
pop bp
ret
messaggio endp

fine: lea dx, risultato
mov ah, 09h
int 21h
.exit
end
In pratica ho definito una matrice in cui ogni riga corrisponde ad un tasto del telefono (1, 2, 3, 4, 5 ,6, 7, 8, 9) e da tante colonne quante sono le lettere associate al tasto. Se un tasto ha associati meno caratteri metto una & nella matrice. Cmq questo non è un problema.
Io conosco la stringa in ingresso, conosco la dimensione della stringa in uscita 8 e non la dimensione della stringa di ingresso.
Io ho provato a scrivere la procedura come si può vedere dal codice incollato (devo necessariamente utilizzare una procedura) ma ho dei problemi non indifferenti, prima di tutto quando metto il valore 8 nel registro CX, proprio all'inizio del programma, non so perchè mi spunta il valore E008 anche avendo prima azzerato CX, com'è possibile?
Quando prendo il valore dalla procedura mi spuntano valori che non c'entrano niente con il valore che dovrebber ricevere la procedura (cioè 7).
Poi sempre nella procedura, sembra che mi venga preso correttamente l'offset della stringa di ingresso solo che c'è un problema con la:
cmp dl, ' '
jne salta
in pratica questo confronto risulta sempre diverso e non capisco il perchè.
Qualcuno può aiutarmi a capire i vari errori perchè non riesco a capirci più nulla.
Grazie a tutti, ciao ciao.
Abdujaparov è 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 ...
Tutti gli sconti Apple su Amazon: tornan...
Altro che entry-level: due smartwatch Am...
Roscosmos ha posticipato (ancora) il lan...
Isar Aerospace si prepara al secondo lan...
Tory Bruno è entrato in Blue Orig...
Fujifilm lancia la cartuccia per archivi...
Dreame H15 Mix: la soluzione 7-in-1 per ...
AirPods Pro 3 in forte sconto su Amazon:...
36 offerte Amazon, molte appena partite:...
2 caricatori multipli eccezionali: da 28...
OLED e 360 Hz a un prezzo senza preceden...
Roborock Q10 S5+ a un prezzo molto conve...
Upgrade PC a prezzo ridotto: le migliori...
Sono i 6 smartphone migliori su Amazon: ...
Google Pixel 9a a 361€, mai così ...
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: 11:23.


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