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 07-04-2010, 12:20   #1
SkyNut
Senior Member
 
L'Avatar di SkyNut
 
Iscritto dal: Feb 2003
Città: Tunaland
Messaggi: 509
[Assembly] allocare variabile in registro

salve ragazzi!
Sto cercando di capire qualcosa di assembly... ma a volte non so da che parte girarmi... ho questo problema

Codice:
La variabile Conta è da allocare in un registro (niente area dati!).
Il valore di AH e AL è fornito dalla costante run-time @data, il cui valore va strascritto nel sorgente.
 
Conta = 0
mentre AH >= AL
    Conta ++
    AH = AH -10
ripeti
davvero non riesco a capire come diavolo si faccia....

domanda: cosa significa allocare una variabile in un registro? sarà una fesseria ma non trovo la risposta...

intanto ho scritto questo:

Codice:
.model small
.stack 100h
.data
conta db 0

.code
mov ax,@data
mov ds,ax
 
prog: 
cmp ah,al
jae continua

mov ax,4c00h
int 21h    
        
continua:
inc conta
sub ah,10
loop prog

end
ha senso secondo voi??

Scusate, so che è un esercizio infantile... ma non so più dove sbatter la testa..
SkyNut è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 12:27   #2
lupoxxx87
Senior Member
 
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
a me non sembra nemmeno assembly il tuo...per che architettura stai facendo l'esercizio ?
lupoxxx87 è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 12:39   #3
SkyNut
Senior Member
 
L'Avatar di SkyNut
 
Iscritto dal: Feb 2003
Città: Tunaland
Messaggi: 509
8086... se non è assembly che cos'è?
SkyNut è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 15:24   #4
lupoxxx87
Senior Member
 
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
siccome ogni architettura ha il proprio assembly, ed essendo il tuo molto diverso dall'assembly canonico, non mi sembrava assembly...


comunque manca una condizione per uscire dal loop...

personalmente sostituirei il loop con un salto condizionato, che è più efficiente
lupoxxx87 è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 17:12   #5
SkyNut
Senior Member
 
L'Avatar di SkyNut
 
Iscritto dal: Feb 2003
Città: Tunaland
Messaggi: 509
si si, il dubbio era mio... magari non si chiama assembly... è che sto aiutando un ragazzo a scuola lui mi ha detto che è assembly e io mi fido

ok poi mi guardo meglio il loop che non so usare...

sai mica dirmi cosa significa "La variabile Conta è da allocare in un registro"?

Grazie
SkyNut è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 17:27   #6
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da lupoxxx87 Guarda i messaggi
siccome ogni architettura ha il proprio assembly, ed essendo il tuo molto diverso dall'assembly canonico, non mi sembrava assembly...
cosa sarebbe l'assembly canonico?
a me il codice del primo post sembra perfettamente comprensibile come assembly x86.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 18:01   #7
lupoxxx87
Senior Member
 
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
a volte mi chiedo se sei iscritto solo per polemizzare con la gente o anche per dare una mano ogni tanto ?! O.o

comunque io con assembly intendo il MIPS, essendo quello che a livello universitario, almeno dove studio io e molti miei amici, è quello incluso nei corsi di studio.

l'x86 avendo avuto numerose evoluzioni, e continuando tuttora a cambiare, e avendo architettura di tipo CISC, non ho ancora trovato nessuno che la studi.

tornando al problema...
riguardo alla variabile conta, non sono sicuro di cosa possa voler dire la frase ma provo a darti una mia interpretazione.

l'assembly che conosco io pone le variabili unicamente nei registri, si vede che l'x86 permette di registrare variabili in registri non del processore; forse devi evitare questo..
lupoxxx87 è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 18:30   #8
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da lupoxxx87 Guarda i messaggi
a volte mi chiedo se sei iscritto solo per polemizzare con la gente o anche per dare una mano ogni tanto ?! O.o
se per "polemizzare" intendi "fornire critiche costruttive" e per "dare una mano" intendi "fornire risposte pressoché inutili, che non risolvono il problema specifico, piene di forse, di se, si ma...", allora é la prima, sono qui per polemizzare.



Quote:
comunque io con assembly intendo il MIPS, essendo quello che a livello universitario, almeno dove studio io e molti miei amici, è quello incluso nei corsi di studio.
ROTFL, non l'avevo mai sentito chiamare "assembly canonico"



Quote:
l'x86 avendo avuto numerose evoluzioni, e continuando tuttora a cambiare, e avendo architettura di tipo CISC, non ho ancora trovato nessuno che la studi.
capisco che un'architettura che debba stare sul mercato non possa essere un'architettura didattica, ma che c'entra la filosofia CISC? non va contro la didattica, anzi.
comunque in genere negli ITIS studiano x86.



Quote:
l'assembly che conosco io pone le variabili unicamente nei registri,
e la RAM a che serve?
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 23:15   #9
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Come assembly va bene, e' proprio assembly x86 (che e' anche quello insegnato nel mio corso di studi).
Il programma pero' e' errato:

1. Non hai utilizzato "Il valore di AH e AL è fornito dalla costante run-time @data"
Ovvero dovrebbe esserci una zona di memoria, una variabile, da cui caricare il valore nei registi AH e AL (AX)

2. Hai invece tenuto la variabile conta in memoria, mentre andava risolta a livello di registro come da indicazione (usa uno degli altri registri a disposizione che non sono utilizzati)

3. l'istruzione loop e' usata male, e serve per fare altro. Se devi semplicemente saltare, usa la jmp


Resta che e' un programma assolutamente inutile.
Mi spiego, non e' inutile di per se'. E' inutile il fatto che ti facciano calcolare il numero di iterazioni (il "conta") e poi non te lo facciano usare per niente.
Come se fosse normale far fare qualcosa che non serve poi a nulla.
Tantle' che i compilatori di alto livello ti avvisano (warning) che stai facendo qualcosa su una variabile, ma che non viene usata mai.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2010, 23:49   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da lupoxxx87 Guarda i messaggi
l'assembly che conosco io pone le variabili unicamente nei registri, si vede che l'x86 permette di registrare variabili in registri non del processore; forse devi evitare questo..
Nel MIPS, dici? No, nel MIPS ci sono un buon numero di registri temporanei da usare per conservare dati, ma ovunque ci sono le operazioni di load and store.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2010, 08:42   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
In effetti un processore senza qualche possibilità di eseguire load/store è leggermente poco utile.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2010, 10:18   #12
SkyNut
Senior Member
 
L'Avatar di SkyNut
 
Iscritto dal: Feb 2003
Città: Tunaland
Messaggi: 509
dai ragazzi non litigate! su su su!!

Quote:
Originariamente inviato da gugoXX Guarda i messaggi
1. Non hai utilizzato "Il valore di AH e AL è fornito dalla costante run-time @data"
Ovvero dovrebbe esserci una zona di memoria, una variabile, da cui caricare il valore nei registi AH e AL (AX)
ah ecco... quindi il semplice mov ax,@data non è quello che serve... se non chiedo troppo mi spiegheresti cosa significa quella richiesta? anche solo un istruzione esempio non voglio farti scrivere un poema...

Quote:
2. Hai invece tenuto la variabile conta in memoria, mentre andava risolta a livello di registro come da indicazione (usa uno degli altri registri a disposizione che non sono utilizzati)
questo lo so, è perchè non ho capito cosa significa allocare "Conta" in un registro... da quello che hai detto tu dovrei usare un "BL" come contatore e poi fare "mov conta,bl".. giusto?

Quote:
3. l'istruzione loop e' usata male, e serve per fare altro. Se devi semplicemente saltare, usa la jmp
si devo correggere!

Quote:
Resta che e' un programma assolutamente inutile.
Mi spiego, non e' inutile di per se'. E' inutile il fatto che ti facciano calcolare il numero di iterazioni (il "conta") e poi non te lo facciano usare per niente.
Come se fosse normale far fare qualcosa che non serve poi a nulla.
Tantle' che i compilatori di alto livello ti avvisano (warning) che stai facendo qualcosa su una variabile, ma che non viene usata mai.
concordo con te, ma dillo al prof di questo ragazzo... già danno questi esercizi quando nessuno sa che esistono ax bx cx e dx

Grazie mille Gugo, molto gentile
SkyNut è 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 ...
Un gruppo di ladri ha usato Google Maps ...
Apple non si fida di Samsung per la real...
Windows 11: un nuovo driver nativo mette...
Vi hanno regalato buoni Amazon? Intanto ...
Via acari, polvere e sporco da materassi...
Cuffie Beats in super offerta su Amazon,...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
DAZN lancia la sua offerta di Natale: My...
Gigabyte fa marcia indietro? Sparito il ...
Alcuni rivenditori giapponesi bloccano l...
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: 17:50.


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