Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
Abbiamo assemblato e provato la Fiido Nomads Pro, evoluzione del modello da trekking già presente nella gamma, che migliora in tutto, soprattutto grazie al motore centrale, fluido e potente. Ottima app, costruzione solida e prezzo ok completano il quadro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-05-2004, 16:32   #1
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
[Asm] Int10: dov'è l'errore?

Sto provando ad usare una modalità VGA nel mio kernel, ma usando questo codice Assembler:
Codice:
	__setmode:
	push	%ebp
	mov	(%esp),%ebp
		xorb	%ah,%ah
		movb	4(%ebp),%al				/* selected video mode */
		int	$0x10
	pop	%ebp
	ret
il computer mi si riavvia (o bochs si ferma, ovviamente...).

Dov'è l'errore?
__________________

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 28-06-2004, 20:20   #2
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
risolto?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 21:47   #3
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Re: [Asm] Int10: dov'è l'errore?

Quote:
Originariamente inviato da DanieleC88
Sto provando ad usare una modalità VGA nel mio kernel, ma usando questo codice Assembler:
Codice:
	__setmode:
	push	%ebp
	mov	(%esp),%ebp
		xorb	%ah,%ah
		movb	4(%ebp),%al				/* selected video mode */
		int	$0x10
	pop	%ebp
	ret
il computer mi si riavvia (o bochs si ferma, ovviamente...).

Dov'è l'errore?

Mmm vediamo. Una domanda , ma stai tentando di usare la C calling convention??

allora questo :

mov (%esp),%ebp

deve diventare :
mov %esp,%ebp

Altrimenti sposti in EBP il valore puntato da ESP , e non l'indirizzo contenuto in ESP .

Usando :

movb 4(%ebp),%al

Ti non ti stai muovendo 4 byte in basso nello stack come credi , ma invece ti stai muovendo in una locazione a caso nella memoria puntata dal valore contenuto nello stack top nel momento in cui hai fatto :

mov (%esp),%ebp

.

Poi vedi di essere sicuro che in AL finisca proprio il valore riferito al video mode che desideri (quello devi controllarlo tu , dato che qua hai postato solo una piccola porzione di codice ) .

Una domanda .


Che assemblatore usi? GAS ? La sintassi AT&T è un po' sgradevole da vedere

Ciao e in bocca al lupo!
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 08:14   #4
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Re: [Asm] Int10: dov'è l'errore?


Ultima modifica di repne scasb : 03-02-2005 alle 15:55.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 08:22   #5
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947

Ultima modifica di repne scasb : 03-02-2005 alle 15:55.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 11:37   #6
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Sto programmando in C++, con tutte le limitazioni del caso, e compilo in assembly con GAS (as).

Cmq, ho capito che era veramente il fatto di lavorare in modalità protetta.. dannazione, scrivere un OS è difficile...

Esiste un modo per passare alla modalità reale quando voglio io? È conveniente passare continuamente da una modalità all'altra?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 29-06-2004 alle 11:52.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 11:38   #7
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
int386(0x10,&regs,&regs);
Eh... fidati, mi piacerebbe, ma credo che GCC non me lo permetta...
__________________

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 29-06-2004, 11:41   #8
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
mi ripeto :

prova a mettere

mov %esp,%ebp

al posto di :

mov (%esp),%ebp


Per quanto riguarda il problema del Protected Mode dato che tu stai facendo un kernel dubito che il tuo kernel sia già pronto per settare il Protected Mode , e credo anzi che funzioni ancora il Real Mode (che è la modalità base all' avvio del sistema) , per questo non ci dovrebbero essere particolari problemi (comunque potrei sbagliarmi)

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 11:47   #9
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da DanieleC88
Sto programmando in C++, con tutte le limitazioni del caso, e compilo in assembly con GAS (as).

Per Luc@s: ehm, volevo dire 4(%esp), non (%esp)...

Cmq, ho capito che era veramente il fatto di lavorare in modalità protetta.. dannazione, scrivere un OS è difficile...

Esiste un modo per passare alla modalità reale quando voglio io? È conveniente passare continuamente da una modalità all'altra?

La modalità protetta è una modalità particolare , che deve essere setuppata all'avvio dal kernel del sistema operativo.

All' avvio il sistema parte in modalità reale , la modalità reale prevede al massimo un accesso diretto a 1 MB di memoria al massimo tramite indirizzi da 20bit divisi in 2 da 16 bit , ossia SEGMENTO e OFFSET . La modalità protetta del 386 d'altronde permette un accesso fino a 4GB di memoria tramite indirizzi a 32bit , ma necessita , appunto, che il sistema operativo prepari la modalità protetta prima che i programmi siano in grado di utilizzarla .

E' appunto per via di questa preparazione (che credo il tuo kernel ancora non implementi) che presumo che il tuo kernel giri ancora in modalità reale .

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 11:58   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da AnonimoVeneziano
mi ripeto :

prova a mettere

mov %esp,%ebp

al posto di :

mov (%esp),%ebp


Per quanto riguarda il problema del Protected Mode dato che tu stai facendo un kernel dubito che il tuo kernel sia già pronto per settare il Protected Mode , e credo anzi che funzioni ancora il Real Mode (che è la modalità base all' avvio del sistema) , per questo non ci dovrebbero essere particolari problemi (comunque potrei sbagliarmi)

Ciao
Infatti ti sbagli, il bootloader l'ho copiato e perciò è abbastanza buono: fa tutto lui, abilitazione dell'A20 e PMode. Per questo sto provando a tradurlo in GAS togliendo quello che non mi serve... (nel pmode ci voglio entrare solo *dopo* l'avvio, io...)

Per quanto riguarda quella linea, se noti l'ho già cancellata dal messaggio, visto che avevo sbagliato a scrivere, volevo dire che ora accedo direttamente ad %esp senza nessun altro mov.

P.S.: prima mi sembra tu abbia detto che lo stile AT&T è brutto. Forse si, ma è molto più preciso di quello Intel, a mio parere.
__________________

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 29-06-2004, 12:02   #11
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da AnonimoVeneziano
La modalità protetta è una modalità particolare , che deve essere setuppata all'avvio dal kernel del sistema operativo.

All' avvio il sistema parte in modalità reale , la modalità reale prevede al massimo un accesso diretto a 1 MB di memoria al massimo tramite indirizzi da 20bit divisi in 2 da 16 bit , ossia SEGMENTO e OFFSET . La modalità protetta del 386 d'altronde permette un accesso fino a 4GB di memoria tramite indirizzi a 32bit , ma necessita , appunto, che il sistema operativo prepari la modalità protetta prima che i programmi siano in grado di utilizzarla .

E' appunto per via di questa preparazione (che credo il tuo kernel ancora non implementi) che presumo che il tuo kernel giri ancora in modalità reale .

Ciao
Come ho già detto ad AnonimoVeneziano, fa tutto il bootloader, quindi sono già in protected mode.
Dannazione, mi sta venendo il mal di testa...

AVVISO: visto che le informazioni che vi sto dando sono un po' vaghe, se volete potete controllare il bootloader dalla discussione "Un kernel in C++". Presto, infatti, inserirò il codice completo del mio sistema. Naturalmente la parte cruciale è il bootloader, quindi il resto non sarà necessario controllarlo.
__________________

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 29-06-2004, 12:03   #12
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ah, pensavo avevi scritto tu tutto , quindi pensavo che la modalità protetta non la implementassi .


La sintassi AT&T sinceramente non la vedo + precisa , quella INTEL a mio parere è + pulita , comunque sono gusti
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 12:17   #13
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947

Ultima modifica di repne scasb : 03-02-2005 alle 15:53.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 12:28   #14
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Hmm, meglio evitare, allora.

a vedere dal tuo nome e dalla tua firma, credo che tu ne capisca di assembler, no?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 29-06-2004 alle 12:30.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 12:35   #15
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da AnonimoVeneziano
comunque sono gusti
Giusto, i gusti so' gusti. Io sono uno GNU dalla testa ai piedi (ma non nel senso che sono un grosso animale peloso con zoccoli e corna). L'unica cosa che uso che non sia GNU è VIM. EMacs è troppo difficile da usare! Apri un file: C-x f. Salva un file: C-x s Chiudi un file: C-x c. È meglio usare semplicemente ":e", ":w" e ":q".

Scusate l'OT.
__________________

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 29-06-2004, 14:56   #16
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
have a look there
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 15:26   #17
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da DanieleC88
Giusto, i gusti so' gusti. Io sono uno GNU dalla testa ai piedi (ma non nel senso che sono un grosso animale peloso con zoccoli e corna). L'unica cosa che uso che non sia GNU è VIM. EMacs è troppo difficile da usare! Apri un file: C-x f. Salva un file: C-x s Chiudi un file: C-x c. È meglio usare semplicemente ":e", ":w" e ":q".

Scusate l'OT.
IHMO GAS non è un assemblatore adatto per fare programmi direttamente in assembly . NASM è la risposta a questa esigenza , gira su molte piattaforme diverse , ha un controllo degli errori ottimo e supporta parecchi formati di output differenti .

GAS è stato progettato per assemblare l'assembly prodotto dai compilatori, perciò usato in concomitanza con GCC è ottimo (il tuo caso) ma va poco bene per creare progetti completamente in assembly , gira solo sotto UNIX , supporta solo OBJ come output e ha un controllo degli errori abbastanza infimo e criptico (si presume che un compilatore scriva assembly in maniera corretta, quindi perciò non c'è bisogno di un controllo degli errori specifico )

Questo è quello che penso

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 30-06-2004, 22:10   #18
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Bel link, Luc@s, sicuramente più chiaro di Ralph Brown... Thanks!

AnonimoVeneziano: ho detto che preferisco GAS, ma è solo perchè quel che faccio io è molto limitato e GAS mi permette di farlo senza problemi. Certamente non disprezzo NASM (fino a poco tempo fa usavo solo quello, fai un po' tu), soprattutto visto che è veramente NetWide come dici tu: c'è dappertutto! E la sintassi Intel è supportata da parecchi compilatori, quindi a volte basta qualche ritocco. Ripeto: non dico che sia inferiore, anzi, ma in questo momento preferisco GAS.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 30-06-2004 alle 22:15.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
MSI PRO MAX: QD-OLED ultrawide per lavorare, creare e giocare MSI PRO MAX: QD-OLED ultrawide per lavorare, cre...
Ninja CRISPi a 99,99€ su Amazon: la frig...
Amazon supera il milione di robot nei ma...
Microsoft ufficializza Xbox Labs, il nuo...
Perché prendo sul serio il paper ...
Apple Watch SE 3 a 219€ su Amazon: displ...
GTA VI potrebbe arrivare su PC molto pri...
Windows 10, il Patch Tuesday di ottobre ...
Arm condannata a pagare a Qualcomm... 2 ...
tado° in offerta su Amazon: valvole ...
Windows 11, disponibili gli aggiornament...
HUAWEI MatePad Pro 12 e WATCH 6 arrivano...
Patch Tuesday con l'IA: Microsoft chiude...
Mini PC con 32GB di RAM e Ryzen 7 e 1TB ...
Le tue app personali fatte con l'IA hann...
ASML non riesce a stare dietro agli ordi...
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: 09:51.


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