|
Trouver une ressource
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)
Informations & options pour cette discussion
|
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
Trouve un compilateur ASM [ par david_paris ]
Bonjour,Je cherche un compilateur ASM, quelqu'un c'est ou je peux trouver un truc dans le genre...David
Shellcode >> asm [ par Stormy ]
Salut à tous,Comment puis-je obtenir un désassemblage en formule ASM à partir d'un shellcode rédigé en hexadécimal. Ce shellcode est contenu dans un b
Renfield.asm [ par Renfield ]
Bonjour a tous,bon nombre d'entre vous ne me connaissent surment pas...(je viens plutôt de VbFrance...)Je me (re)met a l'ASM !!j'ai téléchargé Masm32,
nombre aléatoire en asm 16f84 [ par sodhaine ]
Bonjour,Je suis un newbie-moyen en assembleur/électronique; j'essaie de faire un dé électronique en assembleur 16f84 (avec affichage sur écran LCD) e
compte a rebour et exit en asm [ par zerolol ]
Salut.Comment faire un compte a rebour dans une fenetre avec le decompt en visuel et fermeture auto du prog.merci pour vo explication.
nasm - mémoire read-only [ par Funto66 ]
Bonjour,je suis en train d'écrire des tutoriaux pour le site Coder-Studio (http://www.coder-studio.com/?page=tutoriaux) mais pour la création du tutor
Equivalent ASM de chaine[0] = 0 [ par AlexMAN ]
Bonjour, C'est simplement une ptite incertitude : pour l'ekivalent de chaine[0] = 0 en C: mov [chaine], 0 ou mov chaine, 0Ou bien c totatelment la mm
Fonction standard et asm inline [ par AlexMAN ]
Bonsoir, Voila, j'ai essayé a plusieurs reprises d'appeler une fonction une fonction standard tel que strcpy, strcmp, memset (n'est pas standard mais
[NASM] émulateur NES [ par sirozz ]
Bonjour à tous,Je me lance dans la programmation d'un émulateur de console NES en ASM avec NASM. J'avais déja fait un émulateur NES en VB il y a quelq
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|