1. Write an assembly program to compute the following expression z = -x + 6 - y
ID: 3802647 • Letter: 1
Question
1. Write an assembly program to compute the following expression
z = -x + 6 - y + 17
- where x, y and z are 16-bit integer variables.
- x is in the range of (1 = < x < 5), - y = 10,
- z is a list. (you must use DUP when identifying and initializing z list)
- Use NEG instruction, loop, esi register when you add a constant to a memory address, and TYPE.
- Values of the z list after running the program should be: 12,11,10,9.
2. (3 points) Implement the following expression in assembly language:
for (i = 6; i > 0; i--)
{
for (j = 3; j > 0; j--)
{
y = i + j;
}
}
- Assume i, j and y are 32-bit registers
Please show me the work in visual studio and add comment to see what each line does. Thank you
I believe we have to use x86, but to make sure, how do i know which program I'm using?
Explanation / Answer
2.
main:
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], 6
.L5:
cmp DWORD PTR [rbp-4], 0
jle .L2
mov DWORD PTR [rbp-8], 3
.L4:
cmp DWORD PTR [rbp-8], 0
jle .L3
mov edx, DWORD PTR [rbp-4]
mov eax, DWORD PTR [rbp-8]
add eax, edx
mov DWORD PTR [rbp-12], eax
sub DWORD PTR [rbp-8], 1
jmp .L4
.L3:
sub DWORD PTR [rbp-4], 1
jmp .L5
.L2:
mov eax, 0
pop rbp
ret
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.