Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-11-2010, 18:24   #1
Nagashi890
Junior Member
 
Iscritto dal: Nov 2010
Messaggi: 11
Esercizio Assembler

Salve a tutti. Sono nuovo di questo forum.
Ho un problema con un programmino che ho scritto:

Scrivere un programma che accetta due double da tastiera, più uno tra i seguenti caratteri: ‘+’, ‘-‘,
‘*’, ‘/’. Il programma esegue l’operazione specificata dal carattere sui due numeri e stampa il risultato,
se questo esiste ed è rappresentabile. Altrimenti legge il registro di stato e stampa un messaggio
di errore che rende conto del tipo di problema riscontrato.

Mia soluzione (incompleta nel senso che mi sono fermato al caso "se inserisco + fai la somma altrimenti termina il programma")

.GLOBAL _main
.DATA
A: .DOUBLE 1.0
B: .DOUBLE 1.0

risultato: .DOUBLE 1.0

.TEXT
_main: NOP
FINIT
redo: MOV $'A', %AL
CALL output
MOV $':', %AL
CALL output
LEA A, %EAX
CALL d_input
PUSH (%EAX)
FLDL (%ESP)
XOR %EAX, %EAX
MOV $'B', %AL
CALL output
MOV $':', %AL
CALL output
LEA B, %EAX
CALL d_input
PUSH (%EAX)
FLDL (%ESP)

MOV $'?', %AL
CALL output
CALL input
CALL output
CMP $'+', %AL
JE somma

JMP fine

somma: FADD %ST(1), %ST(0)
FSTPL risultato
LEA risultato, %EAX
CALL newline
CALL d_output
XOR %EAX, %EAX
CALL newline
JMP redo

fine: XOR %EAX, %EAX
RET
.INCLUDE "C:/GAS/utility"

(il sottoprogramma d_input chiede un double da tastiera e lo inserisce in memoria all'indirizzo contenuto in EAX).
Se inserisco A: 1.0 e B: 1.0 e poi il +, mi stampa 3.19318e-310
se inserisco un carattere diverso dal + mi dà un segmentation fault e stampa
"0x00000000 in ??"

Qualcuno sa indicarmi dove sbaglio?
Ho qualche dubbio su questa istruzione
PUSH (%EAX)
FLDL (%ESP)
ma altrimenti non saprei come caricare un double nella pila FPU.

Grazie in anticipo a chi mi aiuterà.
Nagashi890 è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2010, 19:22   #2
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8371
Interessante, avevo fatto una calcolatrice in assembler, gli scrivevi una stringa con le operazioni anche con le parentesi e i quadrati e le radici e la risolveva...mi spiace che ho perso tutto alla scorsa formattazione, pensavo di averle sulla pennina invece nisba.
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2010, 16:11   #3
Nagashi890
Junior Member
 
Iscritto dal: Nov 2010
Messaggi: 11
Problema risolto: per caricare un reale a doppia precisione in pila FPU bastava scrivere FLDL (%EAX).
Grazie comunque
Nagashi890 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Canon, un brevetto descrive un 70-200mm ...
La volante della polizia adesso... vola:...
SK hynix supera i 100.000 miliardi di wo...
Surface Laptop Ultra ha 1.344 zone di lo...
TOP 10 offerte Amazon in 2 minuti: 3 sup...
Mythos 5 ha creato identità false per fa...
Google DeepMind presenta Genie 4, il mod...
Beats Studio Pro a 179€ in 3 colori, sup...
Oracle affida agli agenti di IA l'implem...
CO2 atmosferica a livello record nel 202...
Un portatile per i militari, ma con un o...
Discord, i messaggi di oltre 63.000 serv...
Nascosto nei meandri di Amazon, questo p...
Motorola Moto Buds 2 a 39,90€: prezzo di...
Due schede Raspberry Pi mai annunciate n...
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:00.


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