Les Allergies
Alimentaires
Posez votre question Signaler

Des exercices sur l'assembleur (avec emu8086)

bcyoucef 1Messages postés 8 mai 2011Date d'inscription 15 mai 2011Dernière intervention - Dernière réponse le 22 avril 2012 à 19:09
Bonjour,
J'ai un exercice d'assembleur a faire mais je suis vraiment nul dans ce langage...
Voici l'énoncé :

Écrire un programme assembleur qui réalise la somme de deux nombres de 8 bits non signés et le résultats dans de deux cases mémoires .

Écrire un programme assembleur qui réalise la somme de deux nombres de 8 bits signés et le résultats dans de deux cases mémoires .

Écrire un programme assembleur qui réalise le Complément à 2 d'un mémoires de 32 bits

Écrire un programme assembleur qui réalise Le nombre de 1 dans nombre à 16 bits
Est-ce que quelqu'un aurait quelques pistes pour m'aider a réaliser ce programme ?
Merci d'avance :)
Lire la suite 

Des exercices sur l'assembleur (avec emu8086) »

10 réponses
Réponse
+3
moins plus
Bonjour,

Écrire un programme assembleur qui réalise la somme de deux nombres de 8 bits non signés et le résultats dans de deux cases mémoires .

deux cases mémoire?

Voici une soluce qui admet que les deux valeurs sont sur la pile de données

pop ax
pop bx
add ax,bx
push ax

le résultat est déposé sur la pile.
bcyoucef- 15 mai 2011 à 20:40
Merci Mpmp93
nabila - 2 févr. 2012 à 18:59
s il vs plai je suis débutante en assembleur vouc pouvez m aider en ça

Exo 2. Écrire un programme en assembleur 8086 qui calcule la somme de deux nombre A et B. Dans un premier temps, vous supposez que ces deux valeurs sont initialisées dans votre programme. Ensuite, vous devez les avoir via le clavier. Qu'elle est la limitation de votre programme ?


Exo 3. Écrire un programme en assembleur 8086 qui calcule le maximum de deux nombres A et B. Pour ces deux valeurs, procédez comme dans l'exercice 2.


Exo 4. Écrire un programme en assembleur 8086 qui introduit une chaîne de caractères via le clavier et l'affiche à l'envers.


Exo 5. Écrire un programme en assembleur 8086 qui introduit une chaîne de caractères via le clavier et affiche en résultat le nombre de voyelles qu'elle contient.
Ajouter un commentaire
Réponse
+1
moins plus
?????? ????? ????? ???? ???????
; ecrire un programme en assembleur 8086
;qui calcule la somme de deux nombre A et B.
; Dans un premier temps, vous supposez que ces
; deux valeurs sont initialisées dans votre
;programme
data segment
a db 10 ;a=10 db:sur un octet
b db 02 ;b=02 db:sur un octet
result dw ? ;reserve 2 octet pour le result

data ends



code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
; add your code here
et1:

mov ax, a
add ax,b
mov result,ax


;retour au DOS
fin :
mov ax, 4c00h
int 21h

code ends

end start
nicocorico- 3 avril 2012 à 01:06
Oui mais dans ce cas il faut penser à initialiser AH :
xor ah,ah
mov al,a
add ax,b

ou bien
movzx ax,a
add ax,b
Neo - 22 avril 2012 à 18:54
because ax is DW and a is DB . in assembre we can't do :
mov ax,a ;[ AX: { AH = 8bit and AL = 8bit }] = 16 bit ~~~DW
; a = 8bit ~~DB
we have to do :
mov ah,a ; ah = a = 8 BIT
ok boys
nicocorico- 22 avril 2012 à 19:09
Yes we're ok, that's great lesson!
But, AH is the highest byte, and AL the smallest.
=
xor ah,ah
mov al,a
Ajouter un commentaire
Ce document intitulé « des exercices sur l'assembleur (avec emu8086) » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?