begin process at 2010 02 09 20:57:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Forum general 80xxx

 > 

asm 16 bits vers asm 32 bits


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

asm 16 bits vers asm 32 bits

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ée 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 traduire un code .asm [ par wa7ch3000 ] Bonjour, SVP est ce que vous pouvez m'aiderb; je veut faire un interpreteur qui traduit un code assembleur en langage machine  < question sur le language asm [ par dyroj ] bonjour,j'ai qulque question sur l'asm :-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).-pourquoi se code.hex vers code.asm [ par aartisste ] Bonjour,J'ai l'executable d'un code assembleur (PIC18F) écrit avec mplab 8 j'ai perdu le code source comment(soit avec mon programmateur ICprog(SEEIT) Comment creer un fichier .asm dans Micorsoft Visual Studio 2005 porf. [ par yamlal ] Bonjour tout le monde,j'ai uene petite question à vous poser! Est-il possible de créer un fichier .asm et verifier des erreurs des codes dans le logic [ASM] Allocation de memoire [ par Ilsundal ] Bonjour a tous,je viens de recoder strcmp(char *, char *) en ASM, mais je me suis rendu compte que si les param sont en dur ou si c'est issu de chaine programme asm"protection" [ par sirini ] bonjourje voulais ke vous m aider à realiser un programme en assembleur sur le pic 16F84 pour proteger une application sous VB.net ?Merci votre repons Copy de Fichier vers . [ par vincent2795 ] Bonjour, j' ai beau chercher je ne trouve rien de très concret sur le net, avérais dire l' asm se perd un peut....je recherche comment faire pour cher


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales