Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : asm 16 bits vers asm 32 bits [ Archives / Forum general 80xxx ] (trinitacs)

jeudi 26 décembre 2002 à 18:30:11 | asm 16 bits vers asm 32 bits

trinitacs

Pouvez me traduire cet asm 16 bits en asm 32 bits:
asm
{
MOV AX, variable
int 0x10
}

C'est pour activer le mode VGA.

merci

vendredi 27 décembre 2002 à 12:38:35 | Re : asm 16 bits vers asm 32 bits

gblade


que veux-tu traduires ??
en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
en ASM 32bits ça donnerait

mov eax,dword ptr [nom_de_la_var]
int 10h

de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
voilà je sais aps si ça t'as servi m'enfin

-------------------------------
Réponse au message :
-------------------------------

> Pouvez me traduire cet asm 16 bits en asm 32 bits:
> asm
> {
> MOV AX, variable
> int 0x10
> }
>
> C'est pour activer le mode VGA.
>
> merci

vendredi 27 décembre 2002 à 13:18:26 | Re : asm 16 bits vers asm 32 bits

trinitacs

J'avais déjà essayé avec le registre extend. C'est mon compilo C++ 32 bits qui est pas content quand je le compile. Par contre avec Turbo C++ de Borland ça marche très bien.



-------------------------------
Réponse au message :
-------------------------------

>
> que veux-tu traduires ??
> en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
> en ASM 32bits ça donnerait
>
> mov eax,dword ptr [nom_de_la_var]
> int 10h
>
> de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
> voilà je sais aps si ça t'as servi m'enfin
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Pouvez me traduire cet asm 16 bits en asm 32 bits:
> > asm
> > {
> > MOV AX, variable
> > int 0x10
> > }
> >
> > C'est pour activer le mode VGA.
> >
> > merci
>

dimanche 29 décembre 2002 à 19:40:38 | Re : asm 16 bits vers asm 32 bits

Nemesis

Le problème vient peut être que ton compilateur a besoin d'une option pour lui dire que c'est du 32 bits (surtout si il est vieux). Le problème peut venir aussi du fait que tu utilise l'instruction "int 0x10" qui est une interruption (si tu avais oublié), et que ton programme est censé fonctionner en mode protégé (type win32)... Si tu veux utiliser le mode VGA sous win32, tu peux utiliser les fonctions directX, mais demande à quelqu'un d'autre parceque moi j'y connais rien...

Nemesis



-------------------------------
Réponse au message :
-------------------------------

> J'avais déjà essayé avec le registre extend. C'est mon compilo C++ 32 bits qui est pas content quand je le compile. Par contre avec Turbo C++ de Borland ça marche très bien.
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > que veux-tu traduires ??
> > en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
> > en ASM 32bits ça donnerait
> >
> > mov eax,dword ptr [nom_de_la_var]
> > int 10h
> >
> > de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
> > voilà je sais aps si ça t'as servi m'enfin
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Pouvez me traduire cet asm 16 bits en asm 32 bits:
> > > asm
> > > {
> > > MOV AX, variable
> > > int 0x10
> > > }
> > >
> > > C'est pour activer le mode VGA.
> > >
> > > merci
> >
>

dimanche 29 décembre 2002 à 19:40:47 | Re : asm 16 bits vers asm 32 bits

Nemesis

Le problème vient peut être que ton compilateur a besoin d'une option pour lui dire que c'est du 32 bits (surtout si il est vieux). Le problème peut venir aussi du fait que tu utilise l'instruction "int 0x10" qui est une interruption (si tu avais oublié), et que ton programme est censé fonctionner en mode protégé (type win32)... Si tu veux utiliser le mode VGA sous win32, tu peux utiliser les fonctions directX, mais demande à quelqu'un d'autre parceque moi j'y connais rien...

Nemesis



-------------------------------
Réponse au message :
-------------------------------

> J'avais déjà essayé avec le registre extend. C'est mon compilo C++ 32 bits qui est pas content quand je le compile. Par contre avec Turbo C++ de Borland ça marche très bien.
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > que veux-tu traduires ??
> > en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
> > en ASM 32bits ça donnerait
> >
> > mov eax,dword ptr [nom_de_la_var]
> > int 10h
> >
> > de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
> > voilà je sais aps si ça t'as servi m'enfin
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Pouvez me traduire cet asm 16 bits en asm 32 bits:
> > > asm
> > > {
> > > MOV AX, variable
> > > int 0x10
> > > }
> > >
> > > C'est pour activer le mode VGA.
> > >
> > > merci
> >
>

dimanche 29 décembre 2002 à 23:48:43 | Re : asm 16 bits vers asm 32 bits

trinitacs

DirectX? Bha non ça ne me tente, je préfère la SDL ou Allegro et même OpenGl.
Mon compilateur n'est pas vieux c'est gcc mais je ne sais opas quelle version : je crois que c'est celle qui est juste en-dessous de la 3.
C'est quoi exactement mode protégé?



-------------------------------
Réponse au message :
-------------------------------

> Le problème vient peut être que ton compilateur a besoin d'une option pour lui dire que c'est du 32 bits (surtout si il est vieux). Le problème peut venir aussi du fait que tu utilise l'instruction "int 0x10" qui est une interruption (si tu avais oublié), et que ton programme est censé fonctionner en mode protégé (type win32)... Si tu veux utiliser le mode VGA sous win32, tu peux utiliser les fonctions directX, mais demande à quelqu'un d'autre parceque moi j'y connais rien...
>
> Nemesis
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'avais déjà essayé avec le registre extend. C'est mon compilo C++ 32 bits qui est pas content quand je le compile. Par contre avec Turbo C++ de Borland ça marche très bien.
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > > que veux-tu traduires ??
> > > en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
> > > en ASM 32bits ça donnerait
> > >
> > > mov eax,dword ptr [nom_de_la_var]
> > > int 10h
> > >
> > > de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
> > > voilà je sais aps si ça t'as servi m'enfin
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Pouvez me traduire cet asm 16 bits en asm 32 bits:
> > > > asm
> > > > {
> > > > MOV AX, variable
> > > > int 0x10
> > > > }
> > > >
> > > > C'est pour activer le mode VGA.
> > > >
> > > > merci
> > >
> >
>

lundi 30 décembre 2002 à 09:32:08 | Re : asm 16 bits vers asm 32 bits

gblade


Pourtant, DirectX est, des 2 APIs (avec OpenGL), celle qui peut se rapprocher le plus du VGA avec écriture directe sur les surfaces par exemple.
Mais pourquoi ne veux-tu pas utiliser DirectX ? Question de portabilité ?

Pour le PMODE bah le processeur possède 2 modes de traitement des programmes
- le premier que tlm connait, le mode réel
- le second est le mode protégé, "natif" de l'ordinateur
Dans ce mode il n'y a plus d'interruptions du DOS ou du BIOS, tout est géré pour un seul programme, l'OS ou l'exécutable, aussi bien les interruptions (via la IDT), les tâches (via les TSS) ce qui va donner le multitâche, ou encore de la mémoire (le paging et la segmentation, la mémoire virtuelle...).
Les opérandes peuvent être, selon le segment, de 16 ou 32 bits (choix du programmeur).
Et chose la plus importante, un programme peut indexer jusqu'à 4Go de mémoire (RAM/ROM + mem virtuelle) et même plus sur les modèles plus récents mais je me souviens plus combien précisément.

-------------------------------
Réponse au message :
-------------------------------

> DirectX? Bha non ça ne me tente, je préfère la SDL ou Allegro et même OpenGl.
> Mon compilateur n'est pas vieux c'est gcc mais je ne sais opas quelle version : je crois que c'est celle qui est juste en-dessous de la 3.
> C'est quoi exactement mode protégé?
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Le problème vient peut être que ton compilateur a besoin d'une option pour lui dire que c'est du 32 bits (surtout si il est vieux). Le problème peut venir aussi du fait que tu utilise l'instruction "int 0x10" qui est une interruption (si tu avais oublié), et que ton programme est censé fonctionner en mode protégé (type win32)... Si tu veux utiliser le mode VGA sous win32, tu peux utiliser les fonctions directX, mais demande à quelqu'un d'autre parceque moi j'y connais rien...
> >
> > Nemesis
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > J'avais déjà essayé avec le registre extend. C'est mon compilo C++ 32 bits qui est pas content quand je le compile. Par contre avec Turbo C++ de Borland ça marche très bien.
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > que veux-tu traduires ??
> > > > en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
> > > > en ASM 32bits ça donnerait
> > > >
> > > > mov eax,dword ptr [nom_de_la_var]
> > > > int 10h
> > > >
> > > > de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
> > > > voilà je sais aps si ça t'as servi m'enfin
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Pouvez me traduire cet asm 16 bits en asm 32 bits:
> > > > > asm
> > > > > {
> > > > > MOV AX, variable
> > > > > int 0x10
> > > > > }
> > > > >
> > > > > C'est pour activer le mode VGA.
> > > > >
> > > > > merci
> > > >
> > >
> >
>

lundi 30 décembre 2002 à 11:58:20 | Re : asm 16 bits vers asm 32 bits

Nemesis

Le mode protégé permet de faire fonctionner plusieurs programmes en même temps. Le système d'exploitation empèche (normalement) à ton programme d'accèder à la mémoire des autres programmes. De plus, en mode protégé, les interruptions ne sont pas disponibles: tu dois utiliser les API.


Nemesis



-------------------------------
Réponse au message :
-------------------------------

> DirectX? Bha non ça ne me tente, je préfère la SDL ou Allegro et même OpenGl.
> Mon compilateur n'est pas vieux c'est gcc mais je ne sais opas quelle version : je crois que c'est celle qui est juste en-dessous de la 3.
> C'est quoi exactement mode protégé?
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Le problème vient peut être que ton compilateur a besoin d'une option pour lui dire que c'est du 32 bits (surtout si il est vieux). Le problème peut venir aussi du fait que tu utilise l'instruction "int 0x10" qui est une interruption (si tu avais oublié), et que ton programme est censé fonctionner en mode protégé (type win32)... Si tu veux utiliser le mode VGA sous win32, tu peux utiliser les fonctions directX, mais demande à quelqu'un d'autre parceque moi j'y connais rien...
> >
> > Nemesis
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > J'avais déjà essayé avec le registre extend. C'est mon compilo C++ 32 bits qui est pas content quand je le compile. Par contre avec Turbo C++ de Borland ça marche très bien.
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > que veux-tu traduires ??
> > > > en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
> > > > en ASM 32bits ça donnerait
> > > >
> > > > mov eax,dword ptr [nom_de_la_var]
> > > > int 10h
> > > >
> > > > de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
> > > > voilà je sais aps si ça t'as servi m'enfin
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Pouvez me traduire cet asm 16 bits en asm 32 bits:
> > > > > asm
> > > > > {
> > > > > MOV AX, variable
> > > > > int 0x10
> > > > > }
> > > > >
> > > > > C'est pour activer le mode VGA.
> > > > >
> > > > > merci
> > > >
> > >
> >
>

lundi 30 décembre 2002 à 19:10:16 | Re : asm 16 bits vers asm 32 bits

trinitacs

Oui la portabilité est la grande raison. Et la deuxième c'est le SDK de 100 Mo. Je trouve que c'est beaucoup trop quand tu compares avec la SDl ou OpenGl (ce n'est pas une question de téléchargement). Et puis le DirectX ça m'a jamais tenté.


-------------------------------
Réponse au message :
-------------------------------

>
> Pourtant, DirectX est, des 2 APIs (avec OpenGL), celle qui peut se rapprocher le plus du VGA avec écriture directe sur les surfaces par exemple.
> Mais pourquoi ne veux-tu pas utiliser DirectX ? Question de portabilité ?
>
> Pour le PMODE bah le processeur possède 2 modes de traitement des programmes
> - le premier que tlm connait, le mode réel
> - le second est le mode protégé, "natif" de l'ordinateur
> Dans ce mode il n'y a plus d'interruptions du DOS ou du BIOS, tout est géré pour un seul programme, l'OS ou l'exécutable, aussi bien les interruptions (via la IDT), les tâches (via les TSS) ce qui va donner le multitâche, ou encore de la mémoire (le paging et la segmentation, la mémoire virtuelle...).
> Les opérandes peuvent être, selon le segment, de 16 ou 32 bits (choix du programmeur).
> Et chose la plus importante, un programme peut indexer jusqu'à 4Go de mémoire (RAM/ROM + mem virtuelle) et même plus sur les modèles plus récents mais je me souviens plus combien précisément.
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > DirectX? Bha non ça ne me tente, je préfère la SDL ou Allegro et même OpenGl.
> > Mon compilateur n'est pas vieux c'est gcc mais je ne sais opas quelle version : je crois que c'est celle qui est juste en-dessous de la 3.
> > C'est quoi exactement mode protégé?
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Le problème vient peut être que ton compilateur a besoin d'une option pour lui dire que c'est du 32 bits (surtout si il est vieux). Le problème peut venir aussi du fait que tu utilise l'instruction "int 0x10" qui est une interruption (si tu avais oublié), et que ton programme est censé fonctionner en mode protégé (type win32)... Si tu veux utiliser le mode VGA sous win32, tu peux utiliser les fonctions directX, mais demande à quelqu'un d'autre parceque moi j'y connais rien...
> > >
> > > Nemesis
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > J'avais déjà essayé avec le registre extend. C'est mon compilo C++ 32 bits qui est pas content quand je le compile. Par contre avec Turbo C++ de Borland ça marche très bien.
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > >
> > > > > que veux-tu traduires ??
> > > > > en 32bits on utilise le registre EAX à la place du registre AX mais c'est tout ce que je peux dire sur ce morceau de code
> > > > > en ASM 32bits ça donnerait
> > > > >
> > > > > mov eax,dword ptr [nom_de_la_var]
> > > > > int 10h
> > > > >
> > > > > de ttefacon, il faut savoir que mov ax,const et mov eax,const génère le même code binaire, simplement, dans un environnement 32bits, cela sera interprété mov eax,const et dans un env 16bits cela sera compris comme mov ax,const par contre, si tu assembles ton code avec un assembleur en mode 32bits et que t'écris mov ax,const l'assembleur rajouteras automatiquement le préfixe d'opérande 66h devant tes instructions
> > > > > voilà je sais aps si ça t'as servi m'enfin
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Pouvez me traduire cet asm 16 bits en asm 32 bits:
> > > > > > asm
> > > > > > {
> > > > > > MOV AX, variable
> > > > > > int 0x10
> > > > > > }
> > > > > >
> > > > > > C'est pour activer le mode VGA.
> > > > > >
> > > > > > merci
> > > > >
> > > >
> > >
> >
>



Cette discussion est classé dans : asm, bits


Répondre à ce message

Sujets en rapport avec ce message

Aide nombre en asm 8086 16 bits [ par Maureka ] je suis debutant en asm intel 16 bits.j'ai un projet à réaliser et cela consiste à faire un programme qui affiche la liste des nombres premiers compri Référence ASM 16 bits [ par bizzard4 ] BonjourJ'aimerais savoir si c'est possible d'avoir une référence 16 bits avec les codes hex des instructions.Par exemple NOP => 00 (je crois )ADD => 4 Que peux t-on faire avec l'assembleur que l'on ne peux pas faire avec d'autres langages [ par Nixeus ] Bonjour à tous,Je sors de BTS Info, et suis développeur de logiciel depuis plus d'un ans dans une société. Ayant obtenu mon BTS l'an dernier, je n'ai Compileur ASM [ par fabiin ] SalutQuel compileur ASM me conseillez-vous ???Merci @+Fabs Besoin de conseils en livre sur l'asm! [ par BlackWizzard ] je voudrais m'acheter un livre sur l'asm sans trop de blabla et pas trop cher...qqun a qqchose a me conseiller? virgule flotante en asm [ par webfish ] Bonjour, Je fais de l'assembleur depuis pas longtemps, et j'aimerais savoir comment on fait des calculs avec des nombres à virgule flotante... asm [ par damien174 ] bonjour je viens de commencer a faire de l ASM sur PC, car je connais tres bien sur 68HC11.Avez vous des cours et un logiciel pour assembler et compil ASM pour 68hc11 [ par Sphaxs ] SphaxsSalut tout le monde,J'ai fait une plaque de test pour utiliser un 68hc11 mais je n'arrive pas à le programmer (pb de logiciel???), si quelqu'un passage de paramétres entre VCpp et ASM [ par orchis ] bjr a tous,j'ai ecris un programme en VCpp dont un module est en assembleur, mais je ne sais faire passer des paramétres entre les deux !! pourriez vo Routine asm dans gcc [ par Juke ] quelqu'un connait t'il un txt en francais qui explik comment incorporer de l'asm dans du c++ avec gcc ou dev-c++ ?


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,170 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.