Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Dal richiamo di Enrico Letta alla necessità di completare il mercato unico entro il 2028 alla visione di Nokia sul ruolo dell’IA e delle reti intelligenti, il Nokia Innovation Day 2025 ha intrecciato geopolitica e tecnologia, mostrando a Vimercate come la ricerca italiana contribuisca alle sfide globali delle telecomunicazioni
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
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


Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Energia in Italia ad agosto: consumi in ...
SpaceX guarda ai primi voli orbitali del...
Il prototipo del razzo spaziale riutiliz...
Blue Origin mostra uno spettacolare vide...
Roscosmos: la capsula Bion-M2 è r...
ASUS sperimenta GPU senza connettori di ...
La Cina conquisterà lo spazio ent...
Samsung ha un nuovo entry level: debutta...
Caos nei cieli europei: attacco informat...
Volkswagen ferma la produzione di ID.Buz...
Super sconti del weekend Amazon: 5 novit...
Dreame non si ferma più: tra le n...
Samsung Galaxy Buds3 FE a meno di 95€ su...
Praticamente regalate: 135€ per le Squie...
Si rinnovano i coupon nascosti di settem...
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: 07:33.


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