Create an HLA Assembly language program that prompts for three integers from the user.  Create and call a function that returns in DX the value of the parameter in middle of the three.  In order to receive full credit, after returning back to the caller, your function should not change the value of any register other than DX.  Implement the function whose signature is: procedure middleFinder( value1 : int16; value2 : int16; value3 : int16 ); @nodisplay; @noframe;  Here are some example program dialogues to guide your efforts:

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter6: User-defined Functions
Section: Chapter Questions
Problem 31SA
icon
Related questions
Question

Create an HLA Assembly language program that prompts for three integers from the user.  Create and call a function that returns in DX the value of the parameter in middle of the three.  In order to receive full credit, after returning back to the caller, your function should not change the value of any register other than DX.  Implement the function whose signature is:

procedure middleFinder( value1 : int16; value2 : int16; value3 : int16 ); @nodisplay; @noframe; 

Here are some example program dialogues to guide your efforts:


Provide value1: 3
Provide value2: 8 
Provide value3: 1
The middle value is 3!


Provide value1: 18
Provide value2: 33
Provide value3: 120
The middle value is 33!


In an effort to help you focus on building an Assembly program, I’d like to offer you the following C statements which match the program specifications stated above. If you like, use them as the basis for building your Assembly program.

SAMPLE C CODE:
------------------------
int middleFinder( int a, int b, int c );

int main( )
{
  int value1, value2, value3, result;
  printf( "Provide value1: " );
  scanf( "%d", &value1 );
  printf( "Provide value2: " );
  scanf( "%d", &value2 );
  printf( "Provide value3: " );
  scanf( "%d", &value3 );

  result = middleFinder( value1, value2, value3 );
  printf( "The middle value is %d!\n", result );

  return( 0 );
}

int middleFinder( int a, int b, int c )
{
    int result;
    // Compare each three number to find middle
    // number. Enter only if a > b
    if (a > b)
    {
        if (b > c)
            result = b;
        else if (a > c)
            result = c;
        else
            result = a;
    }
    else
    {
        // Decided a is not greater than b.
        if (a > c)
            result = a;
        else if (b > c)
            result = c;
        else
            result = b;
    }
     
    return( result );
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 7 steps

Blurred answer
Knowledge Booster
Analysis of Performance Measurement
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning