2016-02-26 1 views
0

Bonjour J'essaye d'écrire un programme soustrayant trois entiers, (x-y-z) que l'utilisateur entre, puis affiche à l'écran. Je crois que je suis sur la bonne voie, mais je suis perdu sur l'endroit où aller ensuite. Je suis un débutant à l'assemblée. C'est l'Assemblée irvine32. Je vous remercie!Programme d'assemblage pour soustraire trois entiers de l'entrée utilisateur (x-y-z)

TITLE Programming Assignment 1 (main.asm) 

INCLUDE Irvine32.inc 
.data 
myMessage1 BYTE "Please input integer x: ",0dh,0ah,0 
myMessage2 BYTE "Please input integer y: ",0dh,0ah,0 
myMessage3 BYTE "Please input integer z: ",0dh,0ah,0 
inputNum1 DWORD ? 
inputNum2 DWORD ? 
inputNum3 DWORD ? 

.code 
main PROC 
    call Clrscr 

    mov edx,offset myMessage1 
    call WriteString 
    call ReadInt 
    mov inputNum1,eax 


    mov edx,offset myMessage2 
    call WriteString 
    call ReadInt 
    mov inputNum2,ebx 

    mov edx,offset myMessage3 
    call WriteString 
    call ReadInt 
    mov inputNum3,ecx 

    sub eax, ebx 
    sub ebx, ecx 




    exit 
    main ENDP 

    END main 

Répondre

4

ReadInt renvoie le nombre dans eax. En tant que tel, vous devriez écrire cela dans vos variables. Pour effectuer l'arithmétique, vous devez ensuite utiliser ces variables. Tels que:

mov edx,offset myMessage1 
    call WriteString 
    call ReadInt 
    mov inputNum1,eax 

    mov edx,offset myMessage2 
    call WriteString 
    call ReadInt 
    mov inputNum2,eax 

    mov edx,offset myMessage3 
    call WriteString 
    call ReadInt 
    mov inputNum3,eax 

    mov eax, inputNum1 
    sub eax, inputNum2 
    sub eax, inputNum3 

    call WriteInt 

PS: apprendre à utiliser un débogueur et lire la documentation.

+0

J'aime particulièrement le PS. –