TITLE Add 2 Numbers Program INCLUDE Irvine16.inc .data entNum1 BYTE 0ah,0ah,0dh,"Enter 1st number (1-7): " entNum2 BYTE 0ah,0ah,0dh,"Enter 2nd number (1-7): " sumStr BYTE 0ah,0ah,0dh,"Sum in hex = " num1 BYTE ? num2 BYTE ? .code main PROC mov ax,@data mov ds,ax again: number1: mov ah,40h ;prompt user for 1st number mov bx,1 ; mov cx,SIZEOF entNum1 ; mov dx,OFFSET entNum1 ; int 21h ; mov ah,1 ;read 1st number from standard input int 21h ; mov num1,al ; sub num1,30h ;prepare number for bound check cmp num1,0h ;bound check for 1st number jg L1 ; jmp number1 ; L1: ; cmp num1,8h ; jl number2 ; jmp number1 ; number2: mov ah,40h ;prompt user for 2nd number mov bx,1 ; mov cx,SIZEOF entNum2 ; mov dx,OFFSET entNum2 ; int 21h ; mov ah,1 ;read 2nd number from standard input int 21h ; mov num2,al ; sub num2,30h ;prepare number for bound check cmp num2,0h ;bound check for 2nd number jg L2 ; jmp number2 ; L2: ; cmp num2,8h ; jl addNumbers ; jmp number2 ; addNumbers: mov ah,40h ;prints message mov bx,1 ; mov cx,SIZEOF sumStr ; mov dx,OFFSET sumStr ; int 21h ; mov al,num1 ;prepare number for printing add al,num2 ; add al,30h ; cmp al,39h ; jbe over ; add al,7h ; over: ;print hex sum mov ah,6 ; mov dl,al ; int 21h ; loop again exit main ENDP END main
|