Description In this lab task you will use the PUSH and POP instructions to manage the transfer of data to and from the runtime stack. Write a program that uses only PUSH and POP instructions to exchange the values in the EAX and EBX registers. Testing Specification Store values into the EAX and EBX registers. Compile and run your program to validate that your program sequence of statements exchanges the original register values. Documentation Requirements Be sure to provide a commented out header that describes your program. Include in your header description the compiler that you used. Provide inline comments to document your solution.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
100%

The class I'm taking is assembly programming

I am completely stuck. I keep getting multiple errors! help! Can you please write out program  so I can compare where I went wrong.  I need to successfully run and compile in visual studio.  I have been working on this all week and still can't solve it. I have attached the problem. Please view both attachments before answering.  Thank you so much for your help!  Any help is greatly appreciated.

Description
In this lab task you will use the PUSH and POP instructions to manage the transfer of data to
and from the runtime stack.
Write a program that uses only PUSH and POP instructions to exchange the values in the
EAX and EBX registers.
Testing Specification
Store values into the EAX and EBX registers. Compile and run your program to validate that
your program sequence of statements exchanges the original register values.
Documentation Requirements
Be sure to provide a commented out header that describes your program. Include in your
header description the compiler that you used. Provide inline comments to document your
solution.
Transcribed Image Text:Description In this lab task you will use the PUSH and POP instructions to manage the transfer of data to and from the runtime stack. Write a program that uses only PUSH and POP instructions to exchange the values in the EAX and EBX registers. Testing Specification Store values into the EAX and EBX registers. Compile and run your program to validate that your program sequence of statements exchanges the original register values. Documentation Requirements Be sure to provide a commented out header that describes your program. Include in your header description the compiler that you used. Provide inline comments to document your solution.
Background Discussion
Assume that two values need to be swapped, such as is done in a number of commonly used
Computer Science sorting algorithms. The typical high-level code is as follows:
num1;
num2;
temp
%3D
num1
%3D
num2
temp;
%3D
This could be implemented on a line-by-line basis in assembly language using registers, but
that would require two instructions for reach line of code as follows:
mov eax,num1
mov temp,eax
mov eax, num2
mov num1, eax
mov eax,temp
mov num2,eax
Understandably, the above seems inefficient. Instead of using registers and mov
instructions, another possibility is to use the stack. Not only is a runtime stack a way to save
and restore values, it can also be useful in swapping two values.
Another method of swapping two values is to use the exchange instruction. However, for
this lab you will use the push and pop instructions to swap two values.
Transcribed Image Text:Background Discussion Assume that two values need to be swapped, such as is done in a number of commonly used Computer Science sorting algorithms. The typical high-level code is as follows: num1; num2; temp %3D num1 %3D num2 temp; %3D This could be implemented on a line-by-line basis in assembly language using registers, but that would require two instructions for reach line of code as follows: mov eax,num1 mov temp,eax mov eax, num2 mov num1, eax mov eax,temp mov num2,eax Understandably, the above seems inefficient. Instead of using registers and mov instructions, another possibility is to use the stack. Not only is a runtime stack a way to save and restore values, it can also be useful in swapping two values. Another method of swapping two values is to use the exchange instruction. However, for this lab you will use the push and pop instructions to swap two values.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY