;TryNum.asm

;This is an assembly language program.
;It was written by Myron Berg Of Dickinson State University
;for Assembly Language programming.  It demonstrates floating point and
;integer input and output.
;4/5/99

;It needs to be linked with the file Numbers.obj
;Also, it needs to have the following files in the current path (or change
; the paths below).

include  macros2.asm
include  number.asm


.model small
.stack 100h
.386
.387
.data

        cr              equ    10
        lf              equ    13

        message1        db      'enter a real number', cr, lf
                        db      '$'
        message2        db      ' divided by pi is '
                        db      '$'

        RealNum1        dd      ?
        RealNum2        dd      ?

        message3        db      'enter an integer number', cr, lf
                        db      '$'
        message4        db      ' divided by 7 is '
                        db      '$'
        message5        db      ' with a remainder of '
                        db      '$'

        firstInteger    dd      ?
        secondInteger  dd      ?
        thirdInteger    dd      ?



.code
       

begin:  .startup


        newline        2


        displaystring  Message1

        getFloat        RealNum1

      finit
        fld            RealNum1
        fldpi
        fdivp
        fstp            RealNum2

        displayFloat    RealNum1, 2
        displayString  message2
        displayFloat    RealNum2, 5

        newline        2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        displayString          message3

        getInteger      firstInteger
     
        Mov            eax, firstInteger
        cdq

        mov            ebx, 7
        idiv            ebx
        mov            secondInteger, eax
        mov            thirdInteger, edx
        newline

        displayInteger  FirstInteger

        displayString  message4
        displayInteger  secondInteger
        displayString  message5
        displayInteger  thirdInteger

        newline        2


        displayString  message1
        newline
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        getFloat        RealNum1

        finit
        fld            RealNum1
        fldpi
        fdivp
        fstp            RealNum2

        displayFloat    RealNum1, 2
        displayString  message2
        displayFloat    RealNum2, 2


        newline        2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        displayString          message3

        getInteger      firstInteger
     
        Mov            eax, firstInteger
        cdq

        mov            ebx, 7
        idiv            ebx
        mov            secondInteger, eax
        mov            thirdInteger, edx
        newline

        displayInteger  FirstInteger

        displayString  message4
        displayInteger  secondInteger
        displayString  message5
        displayInteger  thirdInteger

        newline        2


        .exit

end    begin