Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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