Consider the program below, where M andN are (secret) #define'd constants: int mat1(M][N]; int mat2[N][M]; int copy_element(int i, int j){ mat1(i]i)=mat2[j]0] Here is the compiled assembly code for the above program: copy_element: pushq %rbp movq %rsp, %rbp movl %edi, -4(%rbp) movl %esi, -8(%rbp) movl -4(%rbp),%eax movl -8(%rbp), %edx movsiq %edx, %rdx salq $3, %rdx addq %rdx, %rax movl mat2(,%rax,4), %ecx movl -8(%rbp), %eax movslq %eax, %rdx movq %rdx, %rax addq %rax, %rax addq %rdx, %rax salq $2, %rax addq %rsi, %rax movl %ecx, mat1(,%rax,4) popq %rbp ret Based on your understanding of C array representation, and the manner in which indices i and j are used, what are the values of M and N?

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
Consider the program below, where MandN are
(secret) #define'd constants:
int mat1[M][N];
int mat2[N][M];
int copy_element(int i, int j){
mat1[i]i]=mat2[GO
Here is the compiled assembly code for the above
program:
copy_element:
pushq %rbp
movq %rsp, %rbp
movl %edi, -4(%rbp)
movl %esi, -8(%rbp)
movl -4(%rbp),%eax
movl -8(%rbp), %edx
movslq %edx, %rdx
salq $3, %rdx
addq %rdx, %rax
movl mat2(,%rax,4), %ecx
movl -8(%rbp), %eax
movslq %eax, %rdx
movq %rdx, %rax
addq %rax, %rax
addq %rdx, %rax
salq $2, %rax
addq %rsi, %rax
movl %ecx, mat1(,%rax,4)
popq %rbp
ret
Based on your understanding of C array
representation, and the manner in which indices i
and j are used, what are the values of M and N?
Transcribed Image Text:Consider the program below, where MandN are (secret) #define'd constants: int mat1[M][N]; int mat2[N][M]; int copy_element(int i, int j){ mat1[i]i]=mat2[GO Here is the compiled assembly code for the above program: copy_element: pushq %rbp movq %rsp, %rbp movl %edi, -4(%rbp) movl %esi, -8(%rbp) movl -4(%rbp),%eax movl -8(%rbp), %edx movslq %edx, %rdx salq $3, %rdx addq %rdx, %rax movl mat2(,%rax,4), %ecx movl -8(%rbp), %eax movslq %eax, %rdx movq %rdx, %rax addq %rax, %rax addq %rdx, %rax salq $2, %rax addq %rsi, %rax movl %ecx, mat1(,%rax,4) popq %rbp ret Based on your understanding of C array representation, and the manner in which indices i and j are used, what are the values of M and N?
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