.:HoMe:.     .:CrackMe:.     .:My ProGGie:.     .:BuGs & ExpLoiTs:.     .:TOoLs:.     .:VaRiE:.
File compilato + sorgente qui: Calcolatrice16.zip
 
;Calcolatrice v1.1 by NoRpiUs	
;Ora si possono usare numeri a 16 bit ... quindi il risultato massimo puo'
;essere 65535 :)

.model small
.stack

.data
impox db "Scelta non possibile $"
msg0 db "Calcolatrice v1.1 by NoRpiUs $"
msg1 db "1) Addizione $"
msg2 db "2) Sottrazione $"
msg3 db "3) Moltiplicazione $"
msg4 db "4) Divisione $"
msg5 db "5) Uscire $"
msg6 db "Scegli cosa vuoi fare: $"
scrivi1 db "Inserisci il primo numero: $"
scrivi2 db "Inserisci il secondo numero: $"
ris db "Il risultato e': $"
restoz db "Il resto e': $"
ciao db "Programma terminato $"

.data?
scelta db ?
numero1 dw 0
numero2 dw 0
cifra dw ?
risultato dw ?
resto dw ?
cont db 0

.code
acapo macro
		mov ah, 2
		mov dl, 13
		int 21h

		mov ah, 2
		mov dl, 10
		int 21h
endm
inizio:
		mov ax, @data
		mov ds, ax

		acapo

		mov ah, 2
		mov dl, 9
		int 21h

		mov ah, 2
		mov dl, 9
		int 21h

		mov ah, 2
		mov dl, 9
		int 21h

		lea dx, msg0
		mov ah, 9
		int 21h

		acapo

		lea dx, msg1
		mov ah, 9
		int 21h

		acapo

		lea dx, msg2
		mov ah, 9
		int 21h

		acapo

		lea dx, msg3
		mov ah, 9
		int 21h

		acapo

		lea dx, msg4
		mov ah, 9
		int 21h

		acapo

		lea dx, msg5
		mov ah, 9
		int 21h

		acapo
		acapo

start:		lea dx, msg6
		mov ah, 9
		int 21h

		mov ah, 1
		int 21h

		mov scelta, al
		sub scelta, 30h
		
		cmp scelta, 1
		je uno
		cmp scelta, 2
		je due
		cmp scelta, 3
		je tre
		cmp scelta, 4
		je quattro
		cmp scelta, 5
		je cinque

		acapo

		lea dx, impox
		mov ah, 9
		int 21h

		acapo

		jmp start

uno:		call addizione
		jmp start

due:		call sottrazione
		jmp start

tre:		call moltiplicazione
		jmp start

quattro:	call divisione
		jmp start

cinque:		call uscita

addizione proc	
		acapo

		lea dx, scrivi1
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo:		cmp al, 13
		je fineciclo

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero1
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero1, ax

		mov ah, 1
		int 21h

		jmp ciclo

fineciclo:	acapo

		lea dx, scrivi2
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo1:		cmp al, 13
		je fineciclo1

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero2
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero2, ax

		mov ah, 1
		int 21h

		jmp ciclo1

fineciclo1:	acapo

		mov ax, numero1
		add ax, numero2

		mov risultato, ax

		lea dx, ris
		mov ah, 9
		int 21h

ciclostampa:	xor dx, dx
		mov ax, risultato
		mov bx, 10
		div bx

		mov risultato, ax

		inc cont
		push dx

		cmp risultato, 0
		jne ciclostampa

		mov cl, cont

ciclopop:	mov ah, 2		
		pop dx
		add dl, 30h
		int 21h

		loop ciclopop		

		mov cont, 0
		mov numero1, 0	
		mov numero2, 0

		acapo

		ret
endp		

sottrazione proc	
		acapo

		lea dx, scrivi1
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo2:		cmp al, 13
		je fineciclo2

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero1
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero1, ax

		mov ah, 1
		int 21h

		jmp ciclo2

fineciclo2:	acapo

		lea dx, scrivi2
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo3:		cmp al, 13
		je fineciclo3

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero2
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero2, ax

		mov ah, 1
		int 21h

		jmp ciclo3

fineciclo3:	acapo

		mov ax, numero1
		sub ax, numero2

		mov risultato, ax

		lea dx, ris
		mov ah, 9
		int 21h

ciclostampa1:	xor dx, dx
		mov ax, risultato
		mov bx, 10
		div bx

		mov risultato, ax

		inc cont
		push dx

		cmp risultato, 0
		jne ciclostampa1

		mov cl, cont

ciclopop1:	mov ah, 2		
		pop dx
		add dl, 30h
		int 21h

		loop ciclopop1	

		mov cont, 0
		mov numero1, 0	
		mov numero2, 0

		acapo

		ret
endp	

moltiplicazione proc
		acapo

		lea dx, scrivi1
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo4:		cmp al, 13
		je fineciclo4

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero1
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero1, ax

		mov ah, 1
		int 21h

		jmp ciclo4

fineciclo4:	acapo

		lea dx, scrivi2
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo5:		cmp al, 13
		je fineciclo5

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero2
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero2, ax

		mov ah, 1
		int 21h

		jmp ciclo5

fineciclo5:	acapo

		mov ax, numero1
		mov bx, numero2
		mul bx

		mov risultato, ax

		lea dx, ris
		mov ah, 9
		int 21h

ciclostampa2:	xor dx, dx
		mov ax, risultato
		mov bx, 10
		div bx

		mov risultato, ax

		inc cont
		push dx

		cmp risultato, 0
		jne ciclostampa2

		mov cl, cont

ciclopop2:	mov ah, 2		
		pop dx
		add dl, 30h
		int 21h

		loop ciclopop2	

		mov cont, 0
		mov numero1, 0	
		mov numero2, 0

		acapo

		ret
endp	

divisione proc
		acapo

		lea dx, scrivi1
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo6:		cmp al, 13
		je fineciclo6

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero1
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero1, ax

		mov ah, 1
		int 21h

		jmp ciclo6

fineciclo6:	acapo

		lea dx, scrivi2
		mov ah, 9
		int 21h

		xor ah, ah
		mov ah, 1
		int 21h

ciclo7:		cmp al, 13
		je fineciclo7

		sub ax, 30h
		xor ah, ah
		mov cifra, ax

		mov ax, numero2
		mov bx, 10
		mul bx

		add ax, cifra
		mov numero2, ax

		mov ah, 1
		int 21h

		jmp ciclo7

fineciclo7:	acapo

		xor dx, dx
		mov ax, numero1
		mov bx, numero2
		div bx

		mov risultato, ax
		mov resto, dx

		lea dx, ris
		mov ah, 9
		int 21h

ciclostampa3:	xor dx, dx
		mov ax, risultato
		mov bx, 10
		div bx

		mov risultato, ax

		inc cont
		push dx

		cmp risultato, 0
		jne ciclostampa3

		mov cl, cont

ciclopop3:	mov ah, 2		
		pop dx
		add dl, 30h
		int 21h

		loop ciclopop3	

		mov cont, 0
		mov numero1, 0	
		mov numero2, 0

		acapo

		lea dx, restoz
		mov ah, 9	
		int 21h

ciclostampa4:	xor dx, dx
		mov ax, resto
		mov bx, 10
		div bx

		mov resto, ax

		inc cont
		push dx

		cmp resto, 0
		jne ciclostampa4

		mov cl, cont

ciclopop4:	mov ah, 2		
		pop dx
		add dl, 30h
		int 21h

		loop ciclopop4	

		mov cont, 0
		mov numero1, 0	
		mov numero2, 0

		acapo
		
		ret
endp	

uscita proc
		acapo
		
		lea dx, ciao
		mov ah, 9
		int 21h		

		acapo

		mov ah, 4ch
		int 21h

		ret
endp

end inizio
		
Sito ottimizzato per:
Browser: I.E.
Risoluzione: 1024 x 768
.:ReVeRsiNg:.     .:CoNTaCt Me:.     .:LiNks:.     .:ThaNksTo:.     .:FuCkTo:.