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 30-05-2004, 17: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, 21: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, 22: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, 09: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 16:55.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 09:22   #5
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947

Ultima modifica di repne scasb : 03-02-2005 alle 16:55.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 12: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 12:52.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 12: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, 12: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, 12: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, 12: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, 13: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, 13: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, 13:17   #13
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947

Ultima modifica di repne scasb : 03-02-2005 alle 16:53.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 13: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 13:30.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2004, 13: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, 15: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, 16: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, 23: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 23:15.
DanieleC88 è 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 ...
Incat inizia i test dell'incredibile tra...
LG Sound Suite: al CES il sistema audio ...
Avengers Doomsday, il primo trailer &egr...
La crisi delle memorie non farà sconti a...
Il trailer più atteso dell'anno &...
I gamer vogliono i monitor OLED: sopratt...
Samsung alza l’asticella dei televisori ...
Energie rinnovabili 2025: quasi 42% del ...
Le auto elettriche volano in tutta Europ...
Nuovo look per la finestra Esegui su Win...
Rad Power Bikes è in bancarotta: ...
Cronos: The New Dawn diventa più ...
Riot Games alza lasticella dell'anti-che...
Netflix dice addio a 111 titoli original...
Samsung prepara un foldable più 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:10.


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