Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1523 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

assembleur 16bit en mode reel ou comment coder un bootsector perso

n°1450889
bjone
Insert booze to continue
Posté le 02-10-2006 à 16:31:15  profilanswer
 

Reprise du message précédent :
normalement tu devrais pouvoir y arriver:
 
http://cui.unige.ch/DI/cours/1840/ [...] pcall.html
 

mood
Publicité
Posté le 02-10-2006 à 16:31:15  profilanswer
 

n°1450916
sociopath_​epitech
dont ask me why
Posté le 02-10-2006 à 17:04:16  profilanswer
 

oui j'ai deja pecher quellques info sur cette page. j'y ai compris deux trois choses...
mais je viens de comprendre que ce co***rd de MASM ne voulais pas produire de .COM sur plusieur
segment... (un peu autiste non? :s )  
merci beaucoup Bjone , c'est sympa de t'interresser a mon probleme.
je vais essayer de lui donner directement les op-code du saut que je veus fair.
cad:
EA00000050   (je viens de verifier)
c'est un peu brutal et moche comme methode mais au moins je verrais si sa fonctionne.


Message édité par sociopath_epitech le 02-10-2006 à 17:46:41
n°1450947
bjone
Insert booze to continue
Posté le 02-10-2006 à 17:37:13  profilanswer
 

arg, d'ailleurs je sais pas comment ils ont fait pour 4DOS, le .com fait 230Ko :D
 
ceci dit, via registre ça passe pas ?

n°1450955
sociopath_​epitech
dont ask me why
Posté le 02-10-2006 à 17:45:35  profilanswer
 

c'est a dire  
jmp  far es : di       avec (expl) es=5000h et di=0000h    ???
je vais tester comme ca...


Message édité par sociopath_epitech le 02-10-2006 à 17:45:53
n°1450959
bjone
Insert booze to continue
Posté le 02-10-2006 à 17:49:43  profilanswer
 

ouais un truc dans ce goût

n°1451204
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 09:56:29  profilanswer
 

bon... avec un jump brutal facon
 
db 0eah
dd 050h
 
ca fonctionne... mais je trouve ca un peu sale comme methode...
maintenant je vais tester avec les registres de segment.

n°1451264
Mackila
Posté le 03-10-2006 à 10:57:02  profilanswer
 

T'as si peu de ressources que ca que t'es obligé de tout te taper à la mimine ?

n°1451356
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 12:10:52  profilanswer
 

bin faut croire que oui... mais faut bien ce dir qu'il y'a deux mois encore je ne connaissais pas une bribe d'ASM... et je me retrouve a devoir recoder un secteur de demarrage...
faut bien que jeunesse ce fasse....
si tu a une autre solution ,je me ferais un plaisir d'apprendre encore plein de chose. je suis la pour ca,
donc stp a l'avenir, si tu voulais bien eviter les remarque desobligeante... j'en serais ravis
merci :)

n°1451384
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-10-2006 à 12:44:46  profilanswer
 

sociopath_epitech a écrit :


si tu a une autre solution ,je me ferais un plaisir d'apprendre encore plein de chose. je suis la pour ca,
donc stp a l'avenir, si tu voulais bien eviter les remarque desobligeante... j'en serais ravis
merci :)


en quoi a t'il été désobligeant ? :heink:


Message édité par Harkonnen le 03-10-2006 à 12:44:53

---------------
J'ai un string dans l'array (Paris Hilton)
n°1451385
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 12:45:39  profilanswer
 

Mackila a écrit :

T'as si peu de ressources que ca [...] ?


mood
Publicité
Posté le 03-10-2006 à 12:45:39  profilanswer
 

n°1451386
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 12:46:20  profilanswer
 

m'enfin... passons.

n°1451389
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-10-2006 à 12:53:11  profilanswer
 

il parlait de ressources système, matérielles.... je connais Mackila, il t'aurait jamais dit ça :sarcastic:


---------------
J'ai un string dans l'array (Paris Hilton)
n°1451395
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 13:05:01  profilanswer
 

ok... autant pour moi desole :) j'ai mal interpreter ton message...


Message édité par sociopath_epitech le 03-10-2006 à 15:32:34
n°1451400
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 13:12:44  profilanswer
 

je ne dispose que de MASM 6.11, nasm et de turboasm (de speedware,,, pas borland)
a savoir qu'au final tout doit etre assemblable avec des logiciel certifie (donc pas libre  :kaola:  )  
je me sert d'une machine virtuelle sous linux debian (bochs pour ceux qui connaissent) pour les test rapide
et je dispose d'une maquette pour les testes a balles reel.
 
maquette:
cpu type intel 266Mhz (si ma memoire est bonne) (le vrai systeme sera a 500Mhz)
une compact-flash de 128 en fat16 en guise de disque ide
512Mo de ram DDIM


Message édité par sociopath_epitech le 03-10-2006 à 13:15:29
n°1451517
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 15:31:59  profilanswer
 

je vais maintenant m'interesser au .COM qui sera charger par le sectuer de demarrage
(ca me fera une petite pause!)
je me suis pencher sur la zone PSP.... mais kezako!
il y a un appel a une interruption DOS (aie) et la copie de 3 vecteur d'interruption (DOS aussi!)
2bytes pour le segment d'envirronement (kekeC !!!)
le nombre de caractere de la de com suivi de ladite ligne de com.
MAIS il comporte aussi deux zone de 16bytes nommer 'FCB1' et 'FCB2'
et c'est la que ma comprehension s'arrete....
quelqu'un saurais m'en dire plus?

n°1451600
bjone
Insert booze to continue
Posté le 03-10-2006 à 16:55:47  profilanswer
 

bin la zone d'environnement, ça doit être les variables d'environnement :D
 

n°1451602
bjone
Insert booze to continue
Posté le 03-10-2006 à 16:56:29  profilanswer
 

les FCB, fait un coup de google, c'est lié au fichiers ouverts, apriori c'est ptet obsolète (datant du DOS 1), à vérifier...

n°1451607
sociopath_​epitech
dont ask me why
Posté le 03-10-2006 à 16:57:59  profilanswer
 

bjone a écrit :

bin la zone d'environnement, ça doit être les variables d'environnement :D


 oui efectivement je viens de voir ca...

n°1451939
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 10:15:28  profilanswer
 

je viens de trouver deux page sur le PSP...
et c'est pas vraiment la meme chose.... c'est bizzard...
wiki dit un truc et je trouve des info differantes sur un autre site
http://en.wikipedia.org/wiki/Program_Segment_Prefix
http://cui.unige.ch/DI/cours/1840/tips/asm/psp.html

n°1452087
bjone
Insert booze to continue
Posté le 04-10-2006 à 13:56:19  profilanswer
 

apriori Wikipedia est plus à jour. (il décrit des infos qui sont marqués comme réservés dans l'autre)

n°1452275
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 16:31:53  profilanswer
 

http://webster.cs.ucr.edu/AoA/DOS/ [...] ADING8-103
ici je pense que les infos peuvent etre fiable
 
je vais me lancer dans le developpement du loader.com qui sera lancer par le bootsecteur et qui lancera le .EXE... je le ferais bien en langage C...
je me demadais, comment etre sur que le compilateur ne me fourerra pas des apelles au interruptions DOS sans me prevenir.... j'ais essayer avec visual c++... et c'est pas gagner.....
il me fait des .COM avec a peu pres 2Ko de merde (avec des interruptions DOS biensur) avent de commencer a executer mon code....
genre il verifie la version de MS-DOS....
dois-je utiliser un autre logiciel? aurais-je oublier une option de compilatiom?

n°1452295
bjone
Insert booze to continue
Posté le 04-10-2006 à 16:46:11  profilanswer
 

quel Visual C++ ?
parceque je sais même pas si avec le 6, tu encore peux faire des binaires DOS.
 
ensuite tout le runtime C ou C++ se basera sur les api Win32 ou les API Dos.
 
donc je pense que c'est mort.
 
tu peux toujours faire un stub en asm compatible avec ton "contexte os" et ensuite appeller le main() d'un fichier C. mais toutes les fonctions I/O et allocation mémoire seront incompatibles avec ton contexte.
donc a toi de faire comme tu peux pour te refaire une bibliothèque standard se contentant du bios :D


Message édité par bjone le 04-10-2006 à 16:47:25
n°1452304
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 16:59:11  profilanswer
 

qu'est ce que tu me conseillerai pour fair un binaire tout nu? :s

n°1452324
bjone
Insert booze to continue
Posté le 04-10-2006 à 17:13:12  profilanswer
 

tu veux vraiment faire ton .com en C ? :D

n°1452360
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 17:53:07  profilanswer
 

vu que je vois pas vraiment les solutions qui s'offre a moi...
oui....

n°1452377
Mackila
Posté le 04-10-2006 à 18:18:02  profilanswer
 

Heu attends la faut pas pousser...
Avec les ressources (matérielles, c'est bien ce que je disais) dont tu dispose, tu peux largement (mais VRAIMENT largement, quoi...) poser un linux, ou même des windows XP dégraissés (vendus par microsoft) ou encore du CE (quand on a les moyens).
D'une part tu te feras beaucoup moins chier, d'autre part tu disposeras directement de beaucoup de choses (matériels avec les drivers, environnements de développement, débuggers, système de fichiers, réseau, toussa...).
Si tu as du matériel spécifique, écrire un driver linux n'est pas très difficile, comparé au boulot dans lequel tu te lance...


Message édité par Mackila le 04-10-2006 à 18:19:18
n°1452384
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 18:42:41  profilanswer
 

c'est vrai que ces solution serais bien pratique, je dois le reconaitre.
ce qu'il faut savoir c'est que le-dit programme doit ce lancer (extrement) rapidement.
pour le moment sur la maquette, il ce lance en 15 seconde... c'est deja pas mal. mais
si on arive a supprimer le chargement du dos, on pourrais gagner encore environ 5 secondes.
le must serais moins de 10 secondes.
c'est pour de l'equipement embarquer

n°1452385
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 18:43:39  profilanswer
 

(me**e... a une seconde pres, je fesais le post a 18:42:42) lol                                                desole.

n°1452388
bjone
Insert booze to continue
Posté le 04-10-2006 à 18:47:48  profilanswer
 

memtest se lance en 3 secondes, c'est du noyau linux...
 
je croyais que c'était plus un projet perso :D

n°1452389
Mackila
Posté le 04-10-2006 à 18:48:17  profilanswer
 

Bah c'est clair qu'un linux, pour la rapidité de démarrage, tu peux déja laisser tomber la solution. Les windows c'est presque pareil (linux ca reste quand même pire, mais bon les deux sont hors spécifications pour toi).
MS-DOS n'est pas tres long à lancer, quand même. Par contre j'ai testé il y a peu la FreeDOS 1.0, et j'ai été très surpris par la rapidité de démarrage. De plus elle est livrée avec tout un tas d'outils. La pluspart des binaires prévus pour MS-DOS fonctionnent sous FreeDOS 1.0 (Turbo Pascal 7.0 fonctionne correctement, par exemple). Essaie...
Par curiosité, quel type d'application nécessite que le démarrage soit fait en quelques secondes, même au prix des fonctionnalités offertes par un OS ?
 
edit : memtest c'est du linux ? Il me semblait que c'était écrit directement à-la-sociopath_epitech justement pour minimiser le plus possible l'empreinte mémoire du truc, pour pouvoir tester le plus possible de RAM...

Message cité 1 fois
Message édité par Mackila le 04-10-2006 à 18:49:49
n°1452392
bjone
Insert booze to continue
Posté le 04-10-2006 à 18:55:24  profilanswer
 

il me semble qu'il y a un bout de vieux kernel pour gérer les mappings mémoire.


Message édité par bjone le 04-10-2006 à 18:55:29
n°1452670
sociopath_​epitech
dont ask me why
Posté le 05-10-2006 à 10:59:17  profilanswer
 

Mackila a écrit :

Par curiosité, quel type d'application nécessite que le démarrage soit fait en quelques secondes, même au prix des fonctionnalités offertes par un OS ?


 
c'est un ecran de controlle pour un proto d'helico. c'est tout joli y'a plein de petit cadran numerique... puis dans la continuite... on pourra fair encore plein d'autre truc sur cette plateforme... ce pourquoi je ne souhaite pas utiliser de solution "toute faite"(excuser l'expression), c'est tout simplement pour pouvoir en etre le proprietaire... puis le type qui va demarrer son helico n'a pas besion d'OS, il veut juste que ca marche..
(point de vu bassement pecunier... desole... mais je ne suis qu'en stage alors je fais s'qu'on me dit)

Message cité 1 fois
Message édité par sociopath_epitech le 05-10-2006 à 11:00:51
n°1452749
Mackila
Posté le 05-10-2006 à 13:37:01  profilanswer
 

L'utilisateur lambda d'un PC non plus, il n'a pas besoin d'OS. C'est juste les logiciels dont il a besoin, qui eux ont besoin de certains services (fournis par l'OS). L'utilisateur, il veut juste que ca marche.
T'as essayé le FreeDOS (licence BSD me semble, t'as sources, t'en fais [presques] ce que tu veux) pour voir si ton appli DOS fonctionnait dessus ?
De plus en quoi ca gène de passer quelques dizaines de secondes à démarrer un simulateur ? Ton controlleur de cadrans, tu le redémarre pas pendant les simulations, non ?
 
edit : et pour l'aspect pépéttes, FreeDOS c'est pas cher (genre gratuit).


Message édité par Mackila le 05-10-2006 à 13:37:43
n°1452886
sociopath_​epitech
dont ask me why
Posté le 05-10-2006 à 16:35:14  profilanswer
 

excuse moi je me suis mal exprimer, pour l'aspcet pecunier de la chose...
il sera vendu plu cher si il est developper par nos soins, de plus tout notre travail vas etre passer au crible par un commite de certification et (d'apres l'experience de mon maitre de stage) c'est tres difficile de certifier quelque chose qui ce base sur des logiciel libre, que ce soit pour le devellopement ou pour le produit fini.
mais il ne tournera pas dans un simulateur mais dans un vrai helico

n°1453334
sociopath_​epitech
dont ask me why
Posté le 06-10-2006 à 13:00:28  profilanswer
 

je me suis procurer borland 4.52 (c'est pas la derniere version je sais mais bon...)
j'aimerais savoir comment est il possible de generer des .COM...
quelqu'un aurrais une idee? :)
 
je me perd un peu dans toutes ces options de projets...

n°1453379
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-10-2006 à 14:07:03  profilanswer
 

pour générer un com, faut déjà que les données et le code soient dans le même segment
ensuite, regarde les options de ton compilo... moi toutes ces seizebiteries ça me saoule méchamment


---------------
J'ai un string dans l'array (Paris Hilton)
n°1453383
sociopath_​epitech
dont ask me why
Posté le 06-10-2006 à 14:14:19  profilanswer
 

oui mais c'est justement ces options de compilo qui me pose probleme...
y'en a telement! c'est le bordel...
 
tout ce que je sais c'est qu'avec la suite borland(c) il faut y aller a la ligne de commande
tlink /t *.obj
un truc de ce gout
 
mais a ce niveau la tlink me pond une erreur genre que mon point d'entre et mauvais


Message édité par sociopath_epitech le 06-10-2006 à 14:15:40
n°1473778
Olivier51
Posté le 11-11-2006 à 01:23:30  profilanswer
 

Ton stage, il dure combien de temps ?
L'écran de controle, il est compliqué ou pas ? Il faut seulement allumer des LED ou bien c'est un LCD couleur, etc ?
Ensuite, renseigne toi sur la carte peut-etre qu'il n'y a pas besoin de reprogrammer un MBR, tu n'as peut-etre qu'à copier ton binaire sous un certain nom sur la carte mémoire et de booter direct, il va ensuite exécuter ton binaire.
L'utilitaire 'dd' sous linux pourrait peut-etre te simplifier la tache pour écrire ton binaire au bonne emplacement sur la carte mémoire.
 
Désolé, j'ai lu en diagonale le sujet, j'ai peut-etre sauté des infos.

n°1473780
bjone
Insert booze to continue
Posté le 11-11-2006 à 01:29:13  profilanswer
 

sociopath_epitech a écrit :

c'est un ecran de controlle pour un proto d'helico. c'est tout joli y'a plein de petit cadran numerique... puis dans la continuite... on pourra fair encore plein d'autre truc sur cette plateforme... ce pourquoi je ne souhaite pas utiliser de solution "toute faite"(excuser l'expression), c'est tout simplement pour pouvoir en etre le proprietaire... puis le type qui va demarrer son helico n'a pas besion d'OS, il veut juste que ca marche..
(point de vu bassement pecunier... desole... mais je ne suis qu'en stage alors je fais s'qu'on me dit)


 
j'avais pas vu.
 
tu demanderas alors si le cahier des charges, le pilote d'hélico doit de préférence mourrir dans son lit :D

n°1478301
sociopath_​epitech
dont ask me why
Posté le 20-11-2006 à 11:08:54  profilanswer
 

hehe...! je leur ai demander...
 
mais ils n'ont pas rigoles autant que moi ............... lol   ;-)

n°1478316
sociopath_​epitech
dont ask me why
Posté le 20-11-2006 à 11:22:58  profilanswer
 

Olivier51 a écrit :

Ton stage, il dure combien de temps ?
L'écran de controle, il est compliqué ou pas ? Il faut seulement allumer des LED ou bien c'est un LCD couleur, etc ?
Ensuite, renseigne toi sur la carte peut-etre qu'il n'y a pas besoin de reprogrammer un MBR, tu n'as peut-etre qu'à copier ton binaire sous un certain nom sur la carte mémoire et de booter direct, il va ensuite exécuter ton binaire.
L'utilitaire 'dd' sous linux pourrait peut-etre te simplifier la tache pour écrire ton binaire au bonne emplacement sur la carte mémoire.
 
Désolé, j'ai lu en diagonale le sujet, j'ai peut-etre sauté des infos.


 
 
je suis en stage pendant 5 mois,,, il ce termine fin decembre,  
 
merci mais t'inquiete pas.... dd je commence a le connaitre...  ;-)
nan ce qu'il me faudrais en realiter c'est un compileur C qui me permetrais de generer un .COM pur....  
j'entend par la, qui ne comporterais que MON code sans tout un preambule qui fais des millions d'apels au DOS.
je n'ais pas eut a toucher au MBR, en revanche je me suis refais un bootsector capable de lancer un programme type .COM.
maintenant je dois fair un programme (.COM! surpris? ;-) ) qui sera capable de lancer un .EXE...
j'ai la methode pour lancer un .EXE... mais le programme .EXE que je dois lancer est bourrer d' INT 21h (fonction cle a mollete de DOS) dans sons preambule...
preambule cree par le compileur, ensuite il ne l'utilise plus.
je me suis donc aranger pour detourner cette interuption,,,,   mais sans aucun resultat.
si quelqu'un peut me renseigner sur ce genre de compileur, meme payant!, (au point ou j'en suis!)


---------------
tout est binaire dans la vie... tout est noir ou blanc... je suis le 1, tu est le 0.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3

Aller à :
Ajouter une réponse
 

Sujets relatifs
Xlib : affichage d'image en mode 24 bits erronéNewsletter sur un site perso
VB ou C# mode graph Pour attaquer une Base MySQL ?Creer un forum sur sa page perso
[Fermé] Site perso / gallery2[LISP] Emacs major mode
Outils de profiling en tps reel et gratuitsscanf et lecture de réel
heure en temps reelPetit challenge perso avec Visual basic express ?
Plus de sujets relatifs à : assembleur 16bit en mode reel ou comment coder un bootsector perso


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR