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
[MIX10] RELEASE CANDIDATE DE SILVERLIGHT 4 ET RIA SERVICES[MIX10] RELEASE CANDIDATE DE SILVERLIGHT 4 ET RIA SERVICES par Audrey
C'est enfin officiel, grâce au MIX 2010, les Release Candidate de Silverlight 4 et de RIA Services sont sorties ! Pour les télécharger, voici les liens : Silverlight 4 RC : http://silverlight.net/getstarted/silverlight-4/ RIA Services RC : http://www.micr...
Cliquez pour lire la suite de l'article par Audrey [WINDOWSPHONE7] LECTEUR DE FLUX RSS[WINDOWSPHONE7] LECTEUR DE FLUX RSS par Vko
Parce que j'aime pas tester à moitié, je me suis amusé à développer un petit lecteur de flux RSS avec un look qui vous rappellera surement quelque chose :) La RC de Visual Studio est plutôt molle mais fonctionne correctement. L'émulateur est pas...
Cliquez pour lire la suite de l'article par Vko [WP7] L'éMULATEUR WINDOWS PHONE 7 EST MULTITâCHE[WP7] L'éMULATEUR WINDOWS PHONE 7 EST MULTITâCHE par KooKiz
Une question qui reste en suspend concernant Windows Phone 7 est de savoir si le système permettra à plusieurs applications de s'exécuter simultanément, ou si un système de mise en pause similaire à celui de l'iPhone sera adopté. Même si cela ne perm...
Cliquez pour lire la suite de l'article par KooKiz PRéSENTATION CLUB MOSS CE JOUR "LA NOUVELLE ARCHITECTURE DE SERVICES SHAREPOINT 2010".PRéSENTATION CLUB MOSS CE JOUR "LA NOUVELLE ARCHITECTURE DE SERVICES SHAREPOINT 2010". par Patrick Guimonet
Ca y est la sortie RTM de SharePoint 2010 est annoncée pour le 16 avril 2010 (annonce faite ce jour par Erol Giraudy lors de la réunion du club MOSS). Vous pourrez trouver ici les slides de ma présentation du jour dans le cadre du club MOSS : 201...
Cliquez pour lire la suite de l'article par Patrick Guimonet [WINDOWPHONE7] PREMIERS PAS[WINDOWPHONE7] PREMIERS PAS par Vko
Hop voici les premiers pas avec les outils de développement pour Windows Phone 7. Premier changement suite à l'installation des outils : les type de projets pour la plateforme Windows Phone 7. Les projets se découpent en deux groupes : Les projet...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|