Je programme une conversation entre 2 ordinateurs en utilisant le câble série, c'est la première fois que j'utilise l'assemblage. J'ai travaillé jusqu'ici sur l'interface sans problèmes, j'utilise NASM pour compiler le fichier .asm dans les fichiers .com, puis les exécuter.mon fichier .com n'ouvrira pas le port COM 1, assemblage
Maintenant, j'ai commencé à travailler avec le port série et j'ai écrit ce simple programme pour envoyer une chaîne caractère par caractère et vérifier en utilisant hyperterminal si elle est effectivement envoyée.
org 0x0100
mov ah, 0
mov al, 0xe3 ;port parameters
mov dx, 0 ;port numbe (COM 1)
int 0x14 ;initialize port
mov si, msg
mov cx, [length]
l: mov ah,0x1
lodsb ;loads next character
int 0x14 ;sends character
loop l
mov ax,0x4c00
int 0x21
msg: db 'hello world'
length: dw 11
Mais quand je lance le fichier .com je reçois ce msg: « le système ne peut pas ouvrir le port COM1 demandé par l'application ». J'ai lu que le faire fonctionner en compatibilité pourrait résoudre ce problème.
Alors, est-il possible d'exécuter un fichier .com en mode de compatibilité? Dois-je faire un fichier .exe pour fonctionner en mode de compatibilité? Si oui, je sais que vous devez générer un .obj avant le .exe mais nasm ne me laissera pas faire un .obj du code ci-dessus, je crois que le code a besoin d'un format différent comme une utilisation principale au lieu de l'org0x0100 mais ce n'est pas clair pour moi, comme je l'ai cherché mais tout le monde fait des choses différentes.
je vais essayer, merci – user2221424
en place? , Acceptez ? autre chose ? :) –
s'avère que ce "le système ne peut pas ouvrir le port com1 demandé par l'application" ne se produit que lorsque j'ai hyperterminal ouvert, je l'utilisais pour tester si les caractères étaient envoyés ou non. – user2221424