salve, ho tentato ri realizzare il mio primo programmino in assembly.
Il programma in questione DOVREBBE prendere 2 input e farne la somma, visualizzando anche alcuni messaggi.
Il codice che ho scritto è il seguente:
sicuramente si può fare meglio di così ma per iniziare poteva andare bene. Il punto è che una volta compilato questo è il risultato:
perché compaiono quei strani caratteri??? e perché alla fine visualizza di nuvo il messaggio secondo addendo?? (il 4 in mezzo ai caratteri strani è il primo input che gli ho dato...)
Il programma in questione DOVREBBE prendere 2 input e farne la somma, visualizzando anche alcuni messaggi.
Il codice che ho scritto è il seguente:
Codice:
;Programma per addizioni by Malex
SEG_A SEGMENT
ASSUME CS:SEG_A, DS:SEG_A
ORG 100h
Addizione PROC FAR
Inizio: jmp START
Message1 db "Ti verranno richiesti gli addendi",13,10,'$'
Message2 db "Primo Addendo ",13,10,'$'
Message3 db "Secondo Addendo ",13,10,'$'
separ db " ",13,10,'$'
num1 db 0
num2 db 0
sum db 0
START:
mov bx,OFFSET Message1
mov ah,09h
int 21h
mov bx,OFFSET Message2
mov bx,OFFSET separ
mov ah,09h
int 21h
mov ah,09h
int 21h
mov si,OFFSET num1
mov ah,01h
int 21h
cmp al,0Dh
je SecondoAddendo
SecondoAddendo:
cmp al,03h ;questa riga serve a settare il Flag a 0 per il confronto successivo
mov num1[si],al
mov di,si
mov bx,OFFSET separ
mov ah,09h
int 21h
mov dx,OFFSET Message3
mov ah,09h
int 21h
mov bx,OFFSET separ
mov ah,09h
int 21h
mov si,OFFSET num2
mov ah,01h
int 21h
cmp al,0Dh
je Somma
Somma:
mov num2[si],al
add si,di
mov bx,si
mov si,OFFSET sum
add si,bx
mov ah,09h
int 21h
Retn
Addizione endp
SEG_A ENDS
END Inizio
sicuramente si può fare meglio di così ma per iniziare poteva andare bene. Il punto è che una volta compilato questo è il risultato:
Codice:
C:\Documents and Settings\Alex\Desktop\assembly programms>add.com
³ââ€ÂÂÂı*ïN
¾ñ© =║ı*â•ÂÂ!s7=♥ t♣=☻ u,Þ+ © =║ı*â•ÂÂ!s =♥ t♣=☻ u§¥║*ââ€ÂÂÂı*╣♫ ¾ñ© =║ı*â•ÂÂ!Ù☺¨ââ€Âœâ™ WVQââ€ÂÂÂ, Ä♣3÷
¾ñY^_ââ€ÂÅ“QRVWï▲z"ï▬£"ï♫Ãâ€â€"ââ€Â¤Bâ–‘ â•ÂÂ!s☻Ù;ï°╣= u§G♫ì6â•š*â•£
0☼☺     ë☺;♦K5     þ♀º ¨Ó☺v☻Ù§ââ€Â¤?â•ÂÂ!s☻Ù
³ââ€ÂÂÂı*ïN
¾ñ© =║ı*â•ÂÂ!s7=♥ t♣=☻ u,Þ+ © =║ı*â•ÂÂ!s =♥ t♣=☻ u§¥║*ââ€ÂÂÂı*╣♫ ¾ñ© =║ı*â•ÂÂ!Ù☺¨ââ€Âœâ™ WVQââ€ÂÂÂ, Ä♣3÷
¾ñY^_ââ€ÂÅ“QRVWï▲z"ï▬£"ï♫Ãâ€â€"ââ€Â¤Bâ–‘ â•ÂÂ!s☻Ù;ï°╣= u§G♫ì6â•š*â•£
0☼☺     ë☺;♦K5     þ♀º ¨Ó☺v☻Ù§ââ€Â¤?â•ÂÂ!s☻Ù
³ââ€ÂÂÂı*ïN
¾ñ© =║ı*â•ÂÂ!s7=♥ t♣=☻ u,Þ+ © =║ı*â•ÂÂ!s =♥ t♣=☻ u§¥║*ââ€ÂÂÂı*╣♫ ¾ñ© =║ı*â•ÂÂ!Ù☺¨ââ€Âœâ™ WVQââ€ÂÂÂ, Ä♣3÷
¾ñY^_ââ€ÂÅ“QRVWï▲z"ï▬£"ï♫Ãâ€â€"ââ€Â¤Bâ–‘ â•ÂÂ!s☻Ù;ï°╣= u§G♫ì6â•š*â•£
0☼☺     ë☺;♦K5     þ♀º ¨Ó☺v☻Ù§ââ€Â¤?â•ÂÂ!s☻Ù
4 ³ââ€ÂÂÂı*ïN
¾ñ© =║ı*â•ÂÂ!s7=♥ t♣=☻ u,Þ+ © =║ı*â•ÂÂ!s =♥ t♣=☻ u§¥║*ââ€ÂÂÂı*╣♫ ¾ñ© =║ı*â•ÂÂ!Ù☺¨ââ€Âœâ™ WVQââ€ÂÂÂ, Ä♣3÷
¾ñY^_ââ€ÂÅ“QRVWï▲z"ï▬£"ï♫Ãâ€â€"ââ€Â¤Bâ–‘ â•ÂÂ!s☻Ù;ï°╣= u§G♫ì6â•š*â•£
0☼☺     ë☺;♦K5     þ♀º ¨Ó☺v☻Ù§ââ€Â¤?â•ÂÂ!s☻Ù
Secondo Addendo
Secondo Addendo
5 Secondo Addendo
C:\DOCUME~1\Alex\Desktop\ASSEMB~1>