Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Dopo due settimane trascorse al volante della Dacia Spring 2026 possiamo raccontarvi tutto, dalle novità di motore e batteria, fino ai consumi in tutti le situazioni, compresa l'autonomia reale ad alta velocità
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre
Abbiamo messo alla prova la nuova AORUS GeForce RTX 5080 INFINITY WOOD 16G, una delle interpretazioni più particolari della GPU NVIDIA Blackwell. Prestazioni, frequenze operative, temperature, consumi e margini di overclock sono stati confrontati con altre RTX 5080 custom e con la Founders Edition. Il design in legno è solo uno degli elementi distintivi di una scheda che punta a ritagliarsi uno spazio nella fascia più alta del mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-06-2007, 17: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


Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla Hyundai Ioniq 9: dopo due settimane di test non ...
LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e Dual Mode LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e...
Gli sviluppatori demordono: le pubblicit...
Sai cosa pensano davvero i modelli di Op...
Domanda elettrica record a luglio: consu...
Google Search sbaglia i tramonti mentre ...
DeepSeek V4 Pro 0813 rilasciato: la beta...
Un braccio meccanico motorizzato trasfor...
SignalTrace: il sistema di Leonardo che ...
Meta rimuove 756.000 account under 16 in...
Twitch addestrerà l'IA generativa di Ama...
MOVA P50 Pro Ultra crolla a 449€ su Amaz...
Il trucco preferito dagli hacker per rub...
Sedie gaming ed ergonomiche SIHOO in off...
Microrobot nel terreno: un magnete li ri...
Uno studio smonta il mito dell'IA verde ...
Claude in Chrome diventa una sessione Co...
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:39.


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