Accueil > Forum > > > > nasm,nasm,nasm
nasm,nasm,nasm
mardi 28 mars 2006 à 18:00:42 |
nasm,nasm,nasm

qsdfgh
|
voula je veux faire une fonction en asm avec nasm (vous
l'auriez deviné ) qui affiche une chaine de caracteres a partie d'une
fonction qui affiche un registre :
SECTION .data
; variables du programme
x: TIMES N dd 0
y: TIMES N dd 0
z: TIMES N*4 dd 0
bonjour_ db 'bonjour',0 ; le zero indique la fin
SECTION .text
main:
Mov bx,bonjour
call cout_msg
cout_msg:
Mov eax,[bx]
PUSHA
PUSH EAX
CALL afficherUns32 ;affiche eax
POP EAX
POPA
inc bx
cmp [bx],word 0
jne cout_msg
ret
|
|
mercredi 29 mars 2006 à 08:45:00 |
Re : nasm,nasm,nasm

Nasman
|
Bonjour qsdfgh,
Ta question n'est pas très claire, veux tu savoir quoi mettre dans la fonction afficherUns32 ou bien la fonction afficherUns32 existe déjà et tu veux l'utiliser pour afficher une chaine de caractères ?
Je pense également que le code que tu as mis comporte quelques coquilles comme:
bonjour_ db 'bonjour',0 ; le zero indique la fin (je suppose que c'est bonjour: db ...)
Pourquoi utilises-tu le registre 16 bits bx.
Enfin je ne sais pas ce qu'il y a dans la routine afficherUns32, affiche-t-elle un ou plusieurs caractères à la fois (pour les 4 octets de eax) ? Dans ce cas l'incrémentation de 1 de bx décale la lecture de ta chaine de 1 caractère seulement. Tu aurais dans ce cas:
bonjonjonjoujouroururr
A+
|
|
jeudi 30 mars 2006 à 08:48:32 |
Re : nasm,nasm,nasm

qsdfgh
|
cette fonction affiche le code ascii qui est dans eax
je ne sais pas comment elle fonctionnne et je veux l'utiliser pour
afficher une chaine de caracterese enmetant l'addresse de cette chaine dans bx ou ebx , mais nasm me dit q'il y a une faute
|
|
jeudi 30 mars 2006 à 09:58:00 |
Re : nasm,nasm,nasm

Nasman
|
Réponse acceptée !
Bonjour qsdfgh,
Voici une routine qui convertit un octet mis dans al en deux caractères mis dans ax
hexascii: ;convertit la valeur mise dans al en 2 octets al et ah (al=poids fort, ah=poids faible)
aam 16 ;décompose en deux octets ah (division par 16) et al (reste division) ;peut être remplacé par mov ah,al et shr al,4 si pb (MASM) cmp al,0x9 ;vérifie si numérique jna num1 ;si <=9 add al,"A"-"0"-10 ;sinon ajoute 7 num1 xchg ah,al ;lit les 4 bits de poids fort cmp al,0x9 jna num2 add al,"A"-"0"-10 num2 add ax,"00" ;rajoute "0"-0 à chacun des octets ret
Si tu veux utiliser ta routine afficherUns32, il faut que tu ne mette qu'un octet dans eax. Il faut utiliser l'instruction movzx eax,byte[bx] qui va copier un octet dans eax (en faut dans al et mettre ah et les autres bits du registre à 0)
Si la routine afficherUns32 travaille avec 4 octets (ceux de eax) alors il te faut incrémenter bx de 4. Une question : dans ce dernier cas que se passera-t-il si le nombre de caractères de ta chaine n'est pas un multiple de 4.
Enfin - et le plus grave - la fonction afficherUns32 doit convertir une valeur hexa comprise entre 00 et FF (pour un octet) en deux caractères, ceci nécessite les opérations suivantes : - division par 16 pour extraire le nibble haut (bits de 4 à 7) et le nibble bas (bit de 0 à 3) - pour un résultat compris entre 0 et 9 il faut rajouter 30h pour obtenir les codes ascii compris entre 30h ("0") et 39h ("9") - pour un résultat compris entre A et F il faut rajouter 37h pour obtenir les codes ascii compris entre 41h ("A") et 46h ("F") ou rajouter 57h pour les minuscules
- sortir la chaine de caractères obtenue
Dans le cas de la sortie d'une chaine déjà toute faite, ta chaine bonjour, ta routine n'est pas du tout adaptée. Sous Windows, utilise plutôt l'API MessageBox qui t'affichera directement ta chaine
A+
|
|
Cette discussion est classée dans : affiche, bx, nasm, times, eax
Répondre à ce message
Sujets en rapport avec ce message
diffrerence entre (e)ax et ax , (e)bx et bx, ... [ par dyroj ]
bonjour a tous,je suis en periode d'aprentissage du language assembleur et j'ai une petite quetion consernant le e (extented) devant le nom d'un regis
assemblage des instruction [ par yacine000 ]
il y a quelqun qui sait résourdre ceexercicel'assemblage des instruction suivantesMOV AX, 200MOV BX , AXMOV SI,BXMOV(SI),BXMOV(0200),BX
en quel langage est ecrit ce programme [ par jedilu ]
bonjouren quel language est ecrit ce programme car j'ai un probleme pour le lancermerci00629DE5 AE SCAS BYTE PTR ES:[EDI]00629DE6 9E
pb avec JMP [ par kaka83185 ]
salut tous le monde,je reste comme d'habitude,débutant en assembleur,je travaille avec emu8086,et j'essaye de faire un programme qui fait les branchem
Recherche de fichier recursif [ par maximus4 ]
Bonjour, j'ai la procédure suivante pour la recherche récursive, le résultat est stocké dans un fichier texte. [code=autre]invoke CreateFile,offset fi
[NASM avec RadASM] Erreur lors du Link : "File not found: test.res" [ par orax ]
Bonjour, j'essaie de débuter la programmation en assembleur, pour cela j'ai installé RadASM et NASM. Le problème est que quand je crée un nouveau proj
assembleur [ par calamsro ]
j'ai commencé à étudier le langage machine l'assembleur que j'utilise est nasm mais manifestement la plupart des sources asm proposées sont faites pou
Affichage décroissant et alphabétique de 2 listes(Nom_Prénom et Note) [ par m_didi9 ]
[code=autre]Data SEGMENT Mess1 DB 10,13, 'Entrez la liste des Noms :' DB 10, 13, '$' Mess2 DB 'Entrez la liste des Notes :' DB 10, 13, '$' Mess3
un code en assembleur [ par tatouna ]
salut à tous, je suis débutante en asm donc j'ai un problème et je souhaite que vous m'aidiez j'ai une chaine de caractère (une date) et je veut la p
NASM WIN32 & ouverture de fenêtre [ par dogloop ]
Bonsoir à tous, utilisant NASM.exe j'aimerai voir la gueule qu'a un bout de code qui se contente juste d'ouvrir une fenêtre Windows sans aucune opti
Livres en rapport
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|