begin process at 2012 05 25 12:20:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

probleme de simulation de 8086 sur ISIS PROTEUS


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

probleme de simulation de 8086 sur ISIS PROTEUS

vendredi 4 mars 2011 à 14:18:48 | probleme de simulation de 8086 sur ISIS PROTEUS

AZERGUI2

Bonjour,

j'ai généré le .exe du programme suivant par le MAMSM32 ,mais la simulation ça marche pas au niveau de ISIS PROTEUS !!! il s'agit de trois boutons poussoires 'PORT A une entrée ' et une LED dans la sortie 'PORT B' de kit8055 normalement la LED ne s'allume qu'après la détection de la combinaison 010 de l'entrées. ce que j'ai dans la simulation la LED est allumée tout le temps !!! l'adresse de base j'ai pris 200h .

.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc

include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib

include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

.data
porta equ 200h
portb equ 202h
portc equ 204h
controle equ 206h

.code
start:

mov dx,controle
mov al,90h
out dx,al
boucle:
mov dx,porta
in al,dx
and al, 00000111b
cmp al, 00000101b
jne faux
mov al,00000001b
jmp suite
faux:
mov al,00000000b
suite:
mov dx,portb
out dx,al
jmp boucle


end start


mercredi 9 mars 2011 à 08:37:42 | Re : probleme de simulation de 8086 sur ISIS PROTEUS

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

Ne pas mélanger la programmation 32 bits (mode protégé) et 16 bits (mode réel) et ça ira mieux.

@++
mercredi 9 mars 2011 à 23:38:46 | Re : probleme de simulation de 8086 sur ISIS PROTEUS

Guilou34

Il est possible que le problème trouve son origine dans une trop grande différence de vitesse entre le PC et le PIC : alors que celui-ci est en train d’exécuter l’ordre de sortir une valeur sur un port donné, le PC a déjà exécuté son in al,dx.

Il suffit donc d’ajouter un petit délai entre les deux commandes ou même, plus simplement, de répéter plusieurs fois in al,dx.
Amicalement.

jeudi 10 mars 2011 à 00:12:06 | Re : probleme de simulation de 8086 sur ISIS PROTEUS

AZERGUI2

j'ai essayé votre réponse , mais tjrs le probleme est le meme je suis vraiment découragé :( j'aimerai bien de m'envoyer un exemple de programme simulé sur ISIS pour je puisse s'avoir ce que je fais ... car je me suis perdu .
vendredi 11 mars 2011 à 10:46:53 | Re : probleme de simulation de 8086 sur ISIS PROTEUS

Guilou34

Salut
Le port 200h est absent sur les PC actuels, il était destiné autrefois au contrôle des manettes de jeu.
Actuellement c'est un port USB qui est utilisé et le seul moyen d'exécuter des commandes IN et OUT, c'est d’utiliser le port parallèle de l’imprimante.
Maintenant j’avoue n’être pas familier avec ISIS PROTEUS, je m’étais surtout penché sur ton programme. Mais l’intitulé de ton message « simulation d’un 8086 » et le message lui-même me laissent un peu perplexe.
Tu devrais être un peu plus clair.
Amicalement
vendredi 11 mars 2011 à 10:48:25 | Re : probleme de simulation de 8086 sur ISIS PROTEUS

patatalo

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
[ORG 0x100]
[BITS 16]

%define porta 0x200
%define portb 0x202
%define portc 0x204
%define controle 0x206

start:

mov dx,controle
mov al,90h
out dx,al
boucle:
mov dx,porta
in al,dx
and al, 00000111b
cmp al, 00000101b
jne faux
mov al,00000001b
jmp suite
faux:
mov al,00000000b
suite:
mov dx,portb
out dx,al
jmp boucle


Assembler avec "nasm -f bin monfichier.asm -o monbin.com"

Dans ton cas les mov dx,controle seront remplacés par 0x66,mov dx,contrôle afin de convertir en 16 bits mais ton emulateur 16 bits remplacera par mov edx,controle.

@++
vendredi 11 mars 2011 à 20:03:23 | Re : probleme de simulation de 8086 sur ISIS PROTEUS

AZERGUI2

Merci pour votre temps , c'est quoi ce (nasm -f bin monfichier.asm -o monbin.com) ? je crois que c'est une commande tu peut m'expliquer plus (j'utilise emu8086 mais il me donne des erreurs au niveau de compilation
vendredi 11 mars 2011 à 20:37:28 | Re : probleme de simulation de 8086 sur ISIS PROTEUS

AZERGUI2

Merci le probleme est résolu :-)))))))))))))))))


Cette discussion est classée dans : include, mov, al, masm32, dx


Répondre à ce message

Sujets en rapport avec ce message

Multiplication de deux nombres compris entre 0 et 99 en assembleur [ par petitspirou ] salut, j'ai un programme a faire mais je suis nul en assembleur, voici ce que j'ai fais mais ca ne fonctionne pas.Quelqun peut'il me le corriger et me Peut on comparer deux binaire avec cmp ? [ par MrNice ] Lo le forum me revoila ave cun new prob...donc en fait g une table de variable, je prends al=0 je fait un xlat et je compare ce resultat avec une entr Ennoncés à corriger svp :-) [ par did2604 ] Bonjour à tous,Mon professeur m'a demandé de convertir les énoncés (en langage C) suivants en assembleur, quelqu'un aurait-il la gentilesse de me les petit probleme de debutant [ par freekc ] j'essaie de faire un ptit prog que lorsque l'on rentre son nom prenom etc . Il y est un recapitulatif qui se mette en dessous ms lorsque que le recapi Recuperer le mode Video [ par FearBlue ] Slt a tous !!!!!!!Je souhaite recupérer le mode video g lus dans une doc ca :Cette fonction retourne le numéro de code du mode vidéo en cours et tient Charger un noyau [ par Stormy ] Je voudrais charger le deuxième segment d'une disquette pour lancer un noyau OS rudimentaire. Sur le premier segment, j'inscris donc le code de charge Simple addition [ par nostra ] Big totoJe n'arrive pas à afficher les valeurs A (=3) et B(=2) ainsi que le résultat de l'addition. Merci de trouver le ou les erreurs commises.;----- Addition pourtant simple [ par nostra ] Big totoJe n'arrive pas à afficher le résultat de l'addition malgré les remarques de Nemesis. Merci de trouver le ou les erreurs commises. ;---------- envoie d'un caractère par liaison série en asm/C [ par lordankou ] bon voila j'ai un programme en C qui appelle une procédure en assembleur et cette dernière doit retourner un caractère. j'ai donc écrit le programme s loader problème de code [ par TRAX44 ] salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 4,898 sec (3)

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