Probleme de simulation de 8086 sur ISIS PROTEUS [Résolu]

Messages postés
5
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
22 mars 2011
- - Dernière réponse : AZERGUI2
Messages postés
5
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
22 mars 2011
- 11 mars 2011 à 20:37
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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Dernière intervention
14 février 2014
3
Merci
[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.

@++

Merci cs_patatalo 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Dernière intervention
14 février 2014
0
Merci
salut,

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

@++
Commenter la réponse de cs_patatalo
Messages postés
142
Date d'inscription
mercredi 5 avril 2006
Dernière intervention
29 janvier 2016
0
Merci
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.
Commenter la réponse de Guilou34
Messages postés
5
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
22 mars 2011
0
Merci
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 .
Commenter la réponse de AZERGUI2
Messages postés
142
Date d'inscription
mercredi 5 avril 2006
Dernière intervention
29 janvier 2016
0
Merci
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
Commenter la réponse de Guilou34
Messages postés
5
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
22 mars 2011
0
Merci
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
Commenter la réponse de AZERGUI2
Messages postés
5
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
22 mars 2011
0
Merci
Merci le probleme est résolu :-)))))))))))))))))
Commenter la réponse de AZERGUI2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.