DISPLAY MACRO MSG LEA DX,MSG MOV AH,09H INT 21H ENDM CLEAR_REG MACRO XOR BX,BX XOR DX,DX XOR CX,CX XOR AX,AX ENDM INPUT MACRO CLEAR_REG MOV AX,NUM1 MOV BX,NUM2 ENDM OUTPUT MACRO NUM CLEAR_REG MOV AX,NUM CALL DISP ENDM .MODEL SMALL .STACK .DATA MSG1 DB 0AH,0DH,"ENTER THE FIRST NUMBER:$" MSG2 DB 0AH,0DH,"ENTER THE SECOND NUMBER:$" MSG3 DB 0AH,0DH,"SUM:$" MSG4 DB 0AH,0DH,"DIFFERENCE:$" MSG5 DB 0AH,0DH,"PRODUCT:$" MSG6 DB 0AH,0DH,"QUOTIENT:$" MSG7 DB 0AH,0DH,"REMAINDER:$" NUM1 DW ? NUM2 DW ? TEMP DW 0 SUM DW 0 DIFF DW 0 PRD1 DW 0 QUO DW 0 REM DW 0 .CODE START: MOV AX,@DATA MOV DS,AX DISPLAY MSG1 CALL READ MOV NUM1,AX DISPLAY MSG2 CALL READ MOV NUM2,AX INPUT ADD AX,BX MOV SUM,AX INPUT SUB AX,BX MOV DIFF,AX INPUT MUL BX MOV PRD1,AX INPUT DIV BX MOV QUO,AX MOV REM,DX DISPLAY MSG3 OUTPUT SUM DISPLAY MSG4 OUTPUT DIFF DISPLAY MSG5 OUTPUT PRD1 DISPLAY MSG6 OUTPUT QUO DISPLAY MSG7 OUTPUT REM .EXIT READ PROC MOV AX,00 MOV CX,04H L1: MOV DL,10 MUL DX MOV TEMP,AX MOV AH,01H INT 21H SUB AL,30H MOV AH,00 MOV BX,TEMP ADD AX,BX LOOP L1 RET READ ENDP DISP PROC MOV BX,10 MOV CX,00H L2: MOV DX,00H INC CX DIV BX PUSH DX CMP AX,00H JNE L2 L3: POP DX ADD DL,30H MOV AH,02H INT 21H LOOP L3 RET DISP ENDP END START