- .model small ; cod 64K bytes
- .stack 100h
- .data
- prompt1 db 'Press + for addition, - for subtract, and Esc to quit program$'; # used as string terminator
- prompt2 db 'Enter number 1$'; # used as string terminator
- prompt3 db 'Enter number 2$'; # used as string terminator
- prompt4 db 'Wrong input, please enter +, - or ESC$'; # used as string terminator
- num1 db ?
- num2 db ?
- .code
- main proc
- mov ax,@data
- mov ds,ax
- gui:
- mov dx,offset prompt1
- mov ah,9
- int 21h
- call newline
- mov ah,1
- int 21h
- cmp al,27
- je quit
- cmp al,43
- je addition
- cmp al,45
- je substraction
- call newline
- mov dx,offset prompt4
- mov ah,9
- int 21h
- call newline
- jmp gui
- addition:
- call newline
- mov dx,offset prompt2 ; taking num1 input here
- mov ah,9
- int 21h
- call newline
- mov ah,1
- int 21h
- mov bl,al
- mov num1,bl
- call newline
- mov dx,offset prompt3 ; taking num2 input here
- mov ah,9
- int 21h
- call newline
- mov ah,1
- int 21h
- mov bl,al
- mov num2,bl
- ;; sum now
- call newline
- mov bh,num1
- add bh,num2
- mov dl,num1
- mov ah,2
- int 21h
- mov dl,'+'
- mov ah,2
- int 21h
- mov dl,num2
- mov ah,2
- int 21h
- mov dl,'='
- mov ah,2
- int 21h
- mov dl,bh
- mov ah,2
- int 21h
- call newline
- jmp gui
- substraction:
- call newline
- mov dx,offset prompt2 ; taking num1 input here
- mov ah,9
- int 21h
- call newline
- mov ah,1
- int 21h
- mov bl,al
- mov num1,bl
- call newline
- mov dx,offset prompt3 ; taking num2 input here
- mov ah,9
- int 21h
- call newline
- mov ah,1
- int 21h
- mov bl,al
- mov num2,bl
- ;; sum now
- call newline
- mov bh,num1
- sub bh,num2
- mov dl,num1
- mov ah,2
- int 21h
- mov dl,'-'
- mov ah,2
- int 21h
- mov dl,num2
- mov ah,2
- int 21h
- mov dl,'='
- mov ah,2
- int 21h
- mov dl,bh
- mov ah,2
- int 21h
- call newline
- jmp gui
- quit:
- mov ah,4ch
- int 21h
- main endp
- newline proc
- mov dl,10
- mov ah,2
- int 21h
- mov dl,13
- mov ah,2
- int 21h
- ret
- newline endp
- end main
Recent Pastes