
gctom
|
ben voila mon début de programme (fais sous masm) je tiens juste a préciser que je suis le méga newbie en asm et que je ne comprend quasiment rien :
----------------------------------------------------------------
cseg segment 'code' assume cs:cseg, ds:cseg, es:cseg org 100h
main: ;affichage du 1er message ;------------------------ mov bx,0001h lea dx,message1 mov cx,l_message1 mov ah,40h int 21h
;saisie du 1er nombre ;-------------------- lea dx, N1 mov ah,0ah int 21h ;affichage du 2e message ;----------------------- mov bx,0001h lea dx,message2 mov cx,l_message2 mov ah,40h int 21h
;saisie du 2e nombre ;------------------- lea dx, N2 mov ah,0ah int 21h
;conversion en decimal etendu des chiffres des 2 nombres ;------------------------------------------------------- mov ax, 0000111100001111b and word ptr N1+2,ax and word ptr N1+4,ax and word ptr N2+2,ax and word ptr N2+4,ax
;affichage du menu ;----------------- mov bx,0001h lea dx,messagemenu mov cx,l_messagemenu mov ah,40h int 21h mov bx,0001h lea dx,choix1 mov cx,l_choix1 mov ah,40h int 21h mov bx,0001h lea dx,choix2 mov cx,l_choix2 mov ah,40h int 21h
;saisie de la valeur : ;---------------------
lea dx,choix mov ah,0ah int 21h
i_f: cmp choix,1 je addition jne multiplication
;addition de N1 et N2 ;-------------------- addition: mov al, byte ptr N1+5 add al, byte ptr N2+5 aaa mov Res1+6,al mov al, byte ptr N1+4 adc al, byte ptr N2+4 aaa mov Res1+5,al mov al, byte ptr N1+3 adc al, byte ptr N2+3 aaa mov Res1+4,al mov al, byte ptr N1+2 adc al, byte ptr N2+2 aaa mov Res1+3,al mov al, 0 adc al, 0 mov Res1+2, al mov dl,0ah int 21h je convers
;conversion du resultat pour l'affichage ;---------------------------------------
convers: mov al, 00110000b or byte ptr Res1+6,al or byte ptr Res1+5,al or byte ptr Res1+4,al or byte ptr Res1+3,al or byte ptr Res1+2,al mov dl,0ah int 21h je resultat resultat: ;affichage du 3e message ;----------------------- mov bx,0001h lea dx,message3 mov cx,l_message3 mov ah,40h int 21h
;affichage du resultat de l'addition ;----------------------------------- lea dx, Res1+2 mov cx,5 mov ah,40h int 21h je fin
;affichage du 4e message ;----------------------- mov bx,0001h lea dx,message4 mov cx,l_message4 mov ah,40h int 21h
;multiplication de N1 et N2 ;-------------------------- multiplication:
;affichage du resultat de la multiplication ;------------------------------------------
;fin de programme ;---------------- fin: mov ah,4ch int 21h
;------------------------------------------- ; declaration des messages ;------------------------------------------- messagemenu db "faites votre choix :", 0dh, 0ah l_messagemenu equ $-messagemenu
choix1 db "1-addition (par d,faut):", 0dh, 0ah l_choix1 equ $-choix1
choix2 db "2-multiplication", 0dh, 0ah l_choix2 equ $-choix2
message1 db "Saisir le 1er nombres (Maximum 4 chiffres):", 0dh, 0ah l_message1 equ $-message1
message2 db 0dh, 0ah, "Saisir le 2e nombres (Maximum 4 chiffres):", 0dh, 0ah l_message2 equ $-message2
message3 db 0dh, 0ah, "Le resultat de l'addition est:", 0dh, 0ah l_message3 equ $-message3
message4 db 0dh, 0ah, "Le resultat de la multiplication est:", 0dh, 0ah l_message4 equ $-message4
;------------------------------------------- ; declaration des variables ;-------------------------------------------
N1 db 5,?,5 dup(?) N2 db 5,?,5 dup(?) Res1 db 6,?,6 dup(?) choix db 2,1,?
cseg ends
end main
---------------------------------
voila si vous pouvez m'aider ca serait génial parce que la je galère bcp trop. merci
|