Computer Systems: A Programmer's Perspective (3rd Edition)
3rd Edition
ISBN: 9780134092669
Author: Bryant, Randal E. Bryant, David R. O'Hallaron, David R., Randal E.; O'Hallaron, Bryant/O'hallaron
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Expert Solution & Answer
Chapter 3.7, Problem 3.34PP
A.
Explanation of Solution
Data movement instructions:
- The different instructions are been grouped as “instruction classes”.
- The instructions in a class performs same operation but with different sizes of operand.
- The “Mov” class denotes data movement instructions that copy data from a source location to a destination.
- The class has 4 instructions that includes:
- movb:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 1 byte data size.
- movw:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 2 bytes data size.
- movl:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 4 bytes data size.
- movq:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 8 bytes data size.
- movb:
Unary and Binary Operations:
- The details of unary operations includes:
- The single operand functions as both source as well as destination.
- It can either be a memory location or a register.
- The instruction “incq” causes 8 byte element on stack top to be incremented.
- The instruction “decq” causes 8 byte element on stack top to be decremented.
- The details of binary operations includes:
- The first operand denotes the source.
- The second operand works as both source as well as destination.
- The first operand can either be an immediate value, memory location or register.
- The second operand can either be a register or a memory location.
Jump Instruction:
- The “jump” instruction causes execution to switch to an entirely new position in program.
- The “label” indicates jump destinations in assembly code.
- The “je” instruction denotes “jump if equal” or “jump if zero”.
- The comparison operation is performed...
B.
Explanation of Solution
Local values stored on stack:
- The instruction “movq %rax, (%rsp)” moves value of register “%rax” into stack location “%rsp”...
C.
Explanation of Solution
Program cannot store all local values in callee-saved registers:
- The supply of callee-saved registers has been used up after saving six local variables...
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
5. Evaluate the following postfix expression.
(a + b) c - (d e) / f
The postfix will be
abcdef +-- /
3.
b. ab + c de-f/
Write step by step procedure of solving this problem.
Your Answer is (a or b)
Use the above stack and fill (push)
in operators, +, -, *, /, and '( '.
Type "pop" beside the operators or '('
when you need to pop it out.
Finally, convert the expression
from infix to the postfix.
Submit
1. Assuming the base address of array A is in $X20, and base address of array B is
in $X21. Also assume variables i and k are stored in register $X25 and $X26,
respectively. What are the corresponding LEGV8 code for the following C code
statements?
a) A [ 8] = B[ 8] +B[ 2]- 16
b) A [i+ 4] = 4*A[ i] - k
c) B[8] = 2*A[i-k]
Exercise 1: Memory Allocation in C
a) Write a C program which dynamically allocates memory to define an integer 5 x 5 matrix initialized to zero by using the calloc function. Do not forget to free the memory in the end of your program.
b) What happens if you attempt to print your matrix before and after freeing memory?
Chapter 3 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
Ch. 3.4 - Prob. 3.1PPCh. 3.4 - Prob. 3.2PPCh. 3.4 - Prob. 3.3PPCh. 3.4 - Prob. 3.4PPCh. 3.4 - Prob. 3.5PPCh. 3.5 - Prob. 3.6PPCh. 3.5 - Prob. 3.7PPCh. 3.5 - Prob. 3.8PPCh. 3.5 - Prob. 3.9PPCh. 3.5 - Prob. 3.10PP
Ch. 3.5 - Prob. 3.11PPCh. 3.5 - Prob. 3.12PPCh. 3.6 - Prob. 3.13PPCh. 3.6 - Prob. 3.14PPCh. 3.6 - Prob. 3.15PPCh. 3.6 - Prob. 3.16PPCh. 3.6 - Practice Problem 3.17 (solution page 331) An...Ch. 3.6 - Practice Problem 3.18 (solution page 332) Starting...Ch. 3.6 - Prob. 3.19PPCh. 3.6 - Prob. 3.20PPCh. 3.6 - Prob. 3.21PPCh. 3.6 - Prob. 3.22PPCh. 3.6 - Prob. 3.23PPCh. 3.6 - Practice Problem 3.24 (solution page 335) For C...Ch. 3.6 - Prob. 3.25PPCh. 3.6 - Prob. 3.26PPCh. 3.6 - Practice Problem 3.27 (solution page 336) Write...Ch. 3.6 - Prob. 3.28PPCh. 3.6 - Prob. 3.29PPCh. 3.6 - Practice Problem 3.30 (solution page 338) In the C...Ch. 3.6 - Prob. 3.31PPCh. 3.7 - Prob. 3.32PPCh. 3.7 - Prob. 3.33PPCh. 3.7 - Prob. 3.34PPCh. 3.7 - Prob. 3.35PPCh. 3.8 - Prob. 3.36PPCh. 3.8 - Prob. 3.37PPCh. 3.8 - Prob. 3.38PPCh. 3.8 - Prob. 3.39PPCh. 3.8 - Prob. 3.40PPCh. 3.9 - Prob. 3.41PPCh. 3.9 - Prob. 3.42PPCh. 3.9 - Practice Problem 3.43 (solution page 344) Suppose...Ch. 3.9 - Prob. 3.44PPCh. 3.9 - Prob. 3.45PPCh. 3.10 - Prob. 3.46PPCh. 3.10 - Prob. 3.47PPCh. 3.10 - Prob. 3.48PPCh. 3.10 - Prob. 3.49PPCh. 3.11 - Practice Problem 3.50 (solution page 347) For the...Ch. 3.11 - Prob. 3.51PPCh. 3.11 - Prob. 3.52PPCh. 3.11 - Practice Problem 3.52 (solution page 348) For the...Ch. 3.11 - Practice Problem 3.54 (solution page 349) Function...Ch. 3.11 - Prob. 3.55PPCh. 3.11 - Prob. 3.56PPCh. 3.11 - Practice Problem 3.57 (solution page 350) Function...Ch. 3 - For a function with prototype long decoda2(long x,...Ch. 3 - The following code computes the 128-bit product of...Ch. 3 - Prob. 3.60HWCh. 3 - In Section 3.6.6, we examined the following code...Ch. 3 - The code that follows shows an example of...Ch. 3 - This problem will give you a chance to reverb...Ch. 3 - Consider the following source code, where R, S,...Ch. 3 - The following code transposes the elements of an M...Ch. 3 - Prob. 3.66HWCh. 3 - For this exercise, we will examine the code...Ch. 3 - Prob. 3.68HWCh. 3 - Prob. 3.69HWCh. 3 - Consider the following union declaration: This...Ch. 3 - Prob. 3.71HWCh. 3 - Prob. 3.72HWCh. 3 - Prob. 3.73HWCh. 3 - Prob. 3.74HWCh. 3 - Prob. 3.75HW
Knowledge Booster
Similar questions
- Example 7: Code the below problem using C++ Sample Input: 1. 4 1234 Sample Output: 16 Ayush has an array a of n integers. He wants to collapse the entire array into a single element. To do this, he can perform the operation described below any number of times. Each operation grants some points, and Ayush's total score will be the sum of the points granted over all operations he performs. Let aſi..j] denote the subarray of a starting at index i and ending at j. Define min; j to be the minimum value in a[i..j]. In one operation he can do the following: • Select any subarray a[i. j] of a of size at least 2 and replace this subarray by a single element equal to the sum of elements of the subarray. The number of points granted by such an operation, which will be added to his total score, is (j – i+1) · min;j. For example, consider an array a = [2, 3, 5]. If he selects the subarray a[1..2], his total score increases by 2 · 2 = 4 points. Now a = [5, 5]. Ayush performs operations until only a…arrow_forwardProblem Statement: Consider an input string TAM of letters ‘A’, ‘M’, and ‘T’. This string, which is given by the user, ends with ‘#’. It should be stored in a table (or array), called TAMUK. The number of each of these letters is unknown. We have a function, called SWAP(TAM,i,j), which places the ith letter in the jth entry of string TAM and the jth letter in the ith entry of TAM. Note that SWAP(TAM,i,j) is defined for all integers i and j between 0 and length(TAM)–1, wherelength(TAM) is the number of letters of TAM. Using our algorithmic language, write an algorithm, called Sort_TAM, which sorts the letters in the array TAMUK in a way that all T’s appear first, followed by all A’s, and followed by all M’s. The algorithm Sort_TAM should have one parameter: The array TAMUK. Also, your solution is correct only if the following four constraints are satisfied: - Constraint 1: Each letter (‘A’, ‘M’, or ‘T’) is evaluated only once. - Constraint 2: The function SWAP(TAM,i,j) is used…arrow_forwardProblem Statement: Consider an input string TAM of letters ‘A’, ‘M’, and ‘T’. This string, which is given by the user, ends with ‘#’. It should be stored in a table (or array), called TAMUK. The number of each of these letters is unknown. We have a function, called SWAP(TAM,i,j), which places the ith letter in the jth entry of string TAM and the jth letter in the ith entry of TAM. Note that SWAP(TAM,i,j) is defined for all integers i and j between 0 and length(TAM)–1, where length(TAM) is the number of letters of TAM. 1. Using our algorithmic language, write an algorithm, called Sort_TAM, which sorts the letters in the array TAMUK in a way that all T’s appear first, followed by all A’s, and followed by all M’s. The algorithm Sort_TAM should have one parameter: The array TAMUK. Also, your solution is correct only if the following four constraints are satisfied: - Constraint 1: Each letter (‘A’, ‘M’, or ‘T’) is evaluated only once. - Constraint 2: The function SWAP(TAM,i,j) is used only…arrow_forward
- Problem Statement: Consider an input string TAM of letters ‘A’, ‘M’, and ‘T’. This string, which is given by the user, ends with ‘#’. It should be stored in a table (or array), called TAMUK. The number of each of these letters is unknown. We have a function, called SWAP(TAM,i,j), which places the ith letter in the jth entry of string TAM and the jth letter in the ith entry of TAM. Note that SWAP(TAM,i,j) is defined for all integers i and j between 0 and length(TAM)–1, where length(TAM) is the number of letters of TAM. 1. Using our algorithmic language, write an algorithm, called Sort_TAM, which sorts the letters in the array TAMUK in a way that all T’s appear first, followed by all A’s, and followed by all M’s. The algorithm Sort_TAM should have one parameter: The array TAMUK. Also, your solution is correct only if the following four constraints are satisfied: - Constraint 1: Each letter (‘A’, ‘M’, or ‘T’) is evaluated only once. - Constraint 2: The function SWAP(TAM,i,j) is used only…arrow_forward(Practice) State whether the following are valid function names and if so, whether they’re mnemonic names that convey some idea of the function’s purpose. If they are invalid names, state why. powerdensity m1234 newamp 1234 abcd total tangent absval computed b34a 34ab volts$ a2B3 while minVal sine $sine cosine speed netdistance sum return stackarrow_forward6. [3 pts] Write the complement of the following function in product-of-maxterms form: F(A, B, C, D) = (A'BC + CD) (D+A)arrow_forward
- Problem Statement: Consider an input string PAL of letters ‘P’, ‘A’, and ‘L’. This string, which is given by the user, ends with ‘#’. It should be stored in a table (or array), called PAL_TAB. The number of each of these letters is unknown. We have a function, called SWAP(PAL, i, j), which places the ith letter in the jth entry of string PAL and the jth letter in the ith entry of PAL. Note that SWAP(PAL, i, j) is defined for all integers i and j between 0 and length(PAL) – 1, where length(PAL) is the number of letters of PAL. 1. Using our algorithmic language, write an algorithm, called Sort_PAL, which sorts the letters in the array PAL_TAB in a way that all P’s appear first, followed by all A’s, and followed by all L’s. The algorithm Sort_PAL should have one parameter: The array PAL_TAB. Also, your solution is correct only if the four constraints below are satisfied: - Constraint 1: Each letter (‘A’, ‘L’, or ‘P’) is evaluated only once. - Constraint 2: The function SWAP(PAL, i, j) is…arrow_forwardPart B: Shuffling (7) Write a function triple_riffle (mylist) which takes as input a list (which for convenience we will always take with length a multiple of 3) and outputs the result of a 3-way riffle shuffle as described i the lecture notes. For example: an input of range (9) should output [6, 3, 0, 7, 4, 1, 8, 5, 2]. (8) Write a function triple_riffle_repeat (mylist, n) which takes as input a list (again with length a multiple of 3) and outputs the result of doing a 3-way riffle shuffle n times. (9) Write a function period (m) which takes as input a number m (which we will always take as a multiple of 3) and outputs the smallest positive integer n so that triple_riffle_repeat (list (range (m)), n) list (range (m)). (10) Discuss, with evidence, the outputs of your function period for different values of m, writing your answer as a comment.arrow_forwardPlease solve and show steps, work, and information related to this problem. Thank you. The following C++ code performs a set of various arithmetic operations using both pointers and references: Fill in a memory table that shows the final values for both function a and function b. Indicate the final values of each parameter, passed in variable(s), and the return value of the function. Provide a separate copy of this memory table for each function.arrow_forward
- 11. Given the following recursive definition f(1) = f(2) = 2 f(n) = 2∗f(n−1)+ f(n−2) write the C++ code to implement the corresponding program and use it to calculate f(5). (You need to write both the main() and the f(n) function.) How many invocations are made to the function f when calculating f(5) ?arrow_forward(To write a COMPLETE C program) USING STACK NOT QUESEPrepare a menu-driven C program for Inserting and deletion operations for a stack structure of student information which has the following structure declaration.struct student{ char F_name[12];char L_name[12];int Std_id;char Std_address[20];char Std_email[30];char Std_mobile[12];char department[2];/* CE=Computer Engineering, E=English */};struct stack{struct student std_info[10]; int top;};Define the following Initialized array of structure in your program.struct student COME205_Students [10]={”Ahmet” ,”Osman”, 12005310,”Gaziantep”,”Ahmet@gmail.com”,“05531001020”,“CE”,88,”Sevgi” ,”Mert”, 12005311,”Konya”,” Sevgi@gmail.com”,“05531141990”,“E”,81,”Osman”, ”Kemal”, 12005312,”Istanbul”,” Osman@gmail.com”,“05531331023”,“CE”,75,”Mert”, ”Osman”, 12005313, ”Antalya”,” Mert@gmail.com”,“05531041424”,“CE”,70,”Ayse”,”Omer”, 12005314,”Ankara”,” Ayse@gmail.com”,“05531087412”,“E”,80,”Kemal”, “ali”, 12005315, ”Izmir”,”…arrow_forward(C is the language) " Your task is to create the CPU execution scheduler where the jobs are kept in a priority queue implemented as a binary heap. Make this a round robin type of execution where the jobs are deleted from the heap, executed for 2 time units, and re-inserted with a lower priority into the priority queue. Jobs that have completed execution would not be re-inserted into the heap. New jobs could come in at a priority that might be higher than the aging jobs. . For example, the following tree represents a Maximum binary heap. Each node indicates the priority and the total execution time of each process. This a round robin type of execution where the jobs are deleted from the heap, The system assigns the next CPU time (time slice) which is 2 unit to the highest priority process. Your code should have the following functions: Create Binary tree Delete Scheduling Insertion Heapify"arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology Ptr
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr