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: temp - num1; num1 - num2; num2 - temp; 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 numi, eax mov eax, temp mov num2, eax Understandably, the above seems inefficient. Instead of using registers and mov

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

The class I'm taking is assembly programming

I am completely stuck. Can you please write out program so I can successfully run and compile program in visual studio.  I have attached the instructions .  i have also attached my work i have done so far. can you please paste correct complete program or tell me where i went wrong. Please view both attachments before answering.  Thank you so much for your help! 

 
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:
temp - num1:
num1 - num2;
num2 = temp:
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: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: temp - num1: num1 - num2; num2 = temp: 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.
A File
Edit
View
Git Project
Build
Debug
Test
Analyze
Tools
Extensions
Window
Help
Search (Ctrl+Q)
Projectweel
Debug
• Local Windows Debugger - Auto
唱|三
х86
Seanlab4.asm* + x Solution Explorer
;start of program
1
2
.386
3
4
. model flat,stdcall
6.
„stack 4096
7
8
ExitProcess PROTO, dwExitCode:DWORD
9
10
.data
11
12
eax30, ebx50 ; declare varibles
13
14
.code
15
16
main PROC
17
push eax
push ebx
18
19
20
рop eax
21
pop ebx
22
23
invoke ExitProcess, 0
24
25
main ENDP
26
27
; end of program
28
END main
Transcribed Image Text:A File Edit View Git Project Build Debug Test Analyze Tools Extensions Window Help Search (Ctrl+Q) Projectweel Debug • Local Windows Debugger - Auto 唱|三 х86 Seanlab4.asm* + x Solution Explorer ;start of program 1 2 .386 3 4 . model flat,stdcall 6. „stack 4096 7 8 ExitProcess PROTO, dwExitCode:DWORD 9 10 .data 11 12 eax30, ebx50 ; declare varibles 13 14 .code 15 16 main PROC 17 push eax push ebx 18 19 20 рop eax 21 pop ebx 22 23 invoke ExitProcess, 0 24 25 main ENDP 26 27 ; end of program 28 END main
Expert Solution
trending now

Trending now

This is a popular 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