AZERGUI2
Messages postés5Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention22 mars 2011
-
4 mars 2011 à 14:18
AZERGUI2
Messages postés5Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention22 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
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.
Guilou34
Messages postés142Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention29 janvier 20161 9 mars 2011 à 23:38
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.
AZERGUI2
Messages postés5Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention22 mars 2011 10 mars 2011 à 00:12
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 .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Guilou34
Messages postés142Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention29 janvier 20161 11 mars 2011 à 10:46
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
AZERGUI2
Messages postés5Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention22 mars 2011 11 mars 2011 à 20:03
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