Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
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


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Addio ricariche continue con le elettric...
Maxi sconto sul robot del futuro: roboro...
I 3 super TV OLED e QLED crollati su Ama...
Tre notebook fuori di testa in sconto: M...
Sconti iPhone su Amazon: oggi ci sono i ...
Google rende disponibile Gemini 3 Deep T...
I 3 super robot Dreame Aqua10 Roller tor...
Tornano in sconto le scope elettriche Ti...
IA nei videogiochi: anche SEGA la utiliz...
Apple in piena tempesta: anche il boss d...
Due GeForce GTX 580 in SLI: l'insospetta...
TSMC dà i numeri: dal processo N7...
La ricarica wireless dei Samsung Galaxy ...
Stop ai social per gli Under 16: l'Austr...
Google svela i videogiochi più ce...
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: 10:50.


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