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
Je comprend pas [ par DeepxThroat ]
Salut a tous !j ai decidé de me mettre l asm depuis peu (nivo 0 pr l instant) , g telechargé nasm et nasm ide , et g essayé de compiler des trucs tout
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont RE : PIC 16F84RE : PIC 16F84 par belounis
Cliquez pour lire la suite par belounis RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|