[ASM] Afficher un variable dw

Afficher un variable dw [ASM] - ASM - Programmation

Marsh Posté le 24-04-2003 à 17:33:10    

Dans le cadre d'un projet assembleur, j'ai besoin de lire des chiffres au clavier de les traiter et de réafficher le résultat ... j'ai réussi à récupérer ces chiffres, à les traiter mais je suis incapable de refaire la conversion Hexa > Ascii pour les réafficher ... ces nombres sont stockés dans des variables de type dw ...
Est ce que quelqu'un peu m'aider ? je suis en Masm 6

Reply

Marsh Posté le 24-04-2003 à 17:33:10   

Reply

Marsh Posté le 24-04-2003 à 17:48:56    

comment as-tu fait la conversion ASCII -> entier ? :D

Reply

Marsh Posté le 25-04-2003 à 02:02:00    

si c'est pour un affichage d'entier en décimal, je dirais:
tu divises ton entier succesivement par 10, tu recupères le reste à chaque étape et tu le convertis en char ( r+=48 ); tu t'arretes quand le dividende est nul; ensuite tu inverse la string obtenue pour l'affichage

Reply

Marsh Posté le 25-04-2003 à 14:33:50    

BJOne a écrit :

comment as-tu fait la conversion ASCII -> entier ? :D


En algo ce que je fais :
 
nombre:=0;
repeter
lireclavier
si 48<touche<57 alors
    chiffre:=touche-48;
    nombre:=nombre*10+chiffre;
tant que touche<>13

Reply

Marsh Posté le 25-04-2003 à 15:04:19    

Je balance mon code ...

Code :
  1. calc segment
  2. Assume cs:calc,ds:calc,es:calc
  3. org 100h
  4. deb:
  5.     cmp operat,0
  6.     jne nombre2
  7.     mov ah,01h
  8.     int 21h
  9.     cmp al,13
  10.     je quitter
  11.     call lire_nb1
  12.     jmp deb
  13. nombre2:
  14.     mov dx,offset bidon
  15.     mov ah,09
  16.     int 21h
  17. quitter:
  18.     mov ah,4Ch
  19.     int 21h
  20. lire_nb1 proc near
  21.     cmp al,48
  22.     jb aut
  23.     cmp al,57
  24.     ja aut
  25.     sub al,48
  26.     push ax
  27.     mov ax,10h
  28.     mov bx,nb1
  29.     mul bx
  30.     pop ax
  31.     add bx,ax
  32.     mov nb1,bx
  33.     jmp fin
  34. aut:
  35.     cmp al,42
  36.     je operate
  37.     cmp al,43
  38.     je operate
  39.     cmp al,45
  40.     je operate
  41.     cmp al,47
  42.     je operate
  43.     jmp fin
  44. operate:
  45.     mov operat,al
  46.     jmp fin
  47. fin:
  48.     ret
  49. lire_nb1 endp
  50. bidon db "ceci est un message comme quoi ?a marche$"
  51. nb1 dw 0
  52. nb2 dw 0
  53. operat db 0
  54. calc ends
  55. end deb


 
J'ai besoin de créer une mini calculatrice 4 opérations ...
Mais j'aimerais déjà voir si mes calculs pour creer le premier nombre sont juste ou pas ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed