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.9, Problem 3.42PP
A.
Explanation of Solution
Given assembly code:
long fun(struct ELE *ptr)
ptr in %rdi
fun:
movl $0, %eax
jmp .L2;
.L3:
addq (%rdi), %rax
movq 8(%rdi), %rdi
.L2:
testq %rdi, %rdi
jne .L3
rep;ret
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 serves as both source as well as destination.
- It can either be a register or a memory location.
- 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...
B.
Explanation of Solution
Data structure implementation and operation performed by fun:
- Each of the structure denotes an element in a singly linked list...
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Question 2
Using the incomplete programming code given, complete the code using dynamic programming with memory function, to reproduce the results in the following Table 1. (C++)
#include<iostream>using namespace std;
// max knapsack capacity // *** WRITE YOUR CODE HERE ***// num of items // *** WRITE YOUR CODE HERE ***// weight of each item // *** WRITE YOUR CODE HERE ***// value of each item // *** WRITE YOUR CODE HERE ***// variable for dynamic programming matrix // *** WRITE YOUR CODE HERE ***
//==========================================// Dynamic programming function: recursive// =========================================
// ALGORITHM F(i,j) // int value // if F[i,j] is not filled yet (-1): // (start with j = W, i = n) // if capacity j < current item's weight w[i]: // value = recall F(i-1, j) // else: // we can include current item,…
Problem 3) One of the automatic memory deallocations is based on scope of a variable stored in a
memory. Give a Java/etc code in which variable will be deallocated when scope of the variable is over.
Explain in your example when the variable is stored in the memory and when it is deallocated.
(c) An electronic rainfall depth measurement device is developed to collect the data from
the past 7 days as shown in Table 1 to study the weather condition at UniMAP.
Table 1
[Jadual 1]
Location: UniMAP
Day Rainfall Depth (mm)
5.9
1
2
6.7
3
2.4
7.8
5.2
4
5
1.8
7
3.5
(i) Write a program in C to receive the values of rainfall depth and display the
number of days with light rain ( 7.6 mm) from the
record in Table 1.
(ii) Rewrite the program in (c)(i) to identify and display the day with the lowest value
of rainfall depth, the day with the highest value of rainfall depth and the average
value of rainfall depth for the past 7 days.
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
- Problem (7) « :(F'ind 3 possible places for errors in the following code (assume no issues with parts not shown, such as #include). Assume no user-defined global variables exist. Explain specifically what causes the error and whether it is a syntax, runtime or logic error. int sumArray(int a[], int size); int main() { int a={1,5,6,3,7,4}; int sum = sumArray(a, 5); cout « "Sum is: " « sum <« endl; } int sumArray(int a[], int size) { if(size == 0) { return size; } else { a[size-1] + sumArray(a, size--); } int dummy = 8; }arrow_forward(4) [8]Write code for a function multBy3divBy4, that for argument int x, computes 3*x/4, but follows the bit-level integer coding rules (text p.128) like in problem 3 of the assignment 1. (you may assume ints are 32 bits). (Note: The operation in your code 3*x is allowed to cause overflow.)arrow_forward(a) Assume that five generation units with third order cost function (F, (R) = A; P+ B;P+C; P; + D;) are in the circuit. Write a computer program using any abitrary programming longuage (MATLAB, C++, C#, Python,.) to calculate economic load dipatch (ELD) using first order gradient method. Note that all parameters and variables should be defined inside the program (at tirst lines) such that units' characteristics and demand can be changed easily. Neglect grid losses. jusing dynamic programming (DP) methed.arrow_forward
- 7. [10] (Display Pattern) Write a C++ function called pattern that displays a pattern of stars and numbers for a given number of columns (passed as a parameter). Maximize your use of repetition (with nested for statements) and minimize the number of cout statements. Your function should then display a pattern of the appropriate size. Write a test program (main) that generates a random number in the range of 1 to 20 (inclusive) to specify the number of columns in the pattern. Use pattern to display the pattern with this random number as the number of columns. Here are two samples: With 3 as the input: With 5 as the input: 1 1 *2 *2 **3 **3 *2 ***4 1 ****5 ***4 **3 *2 1arrow_forwardc. (3 Pts) In a certain computer architecture, the content of some registers and memory content currently is as follows. Memory Address Data R1 | 00000004 0000FFFE FO00128A R2 0000FFFE FO00128A 0000FFF0 Next, this computer execute the following instruction. ADDI (0000FFFE), R1 Note: The I in ADDI refers to Indirect. Indirect here deals with the destination address: (0000FFFE). The parentheses are standard for indirect addressing. ADDI means add content of source to content of destination and place result in destination. Given that it is immediately after the instruction above is executed, fill out the contents of registers and memory addresses below. Memory Address Data R1 0000FFFE R2 FO00128Aarrow_forward(B+C) x (D+E) F 1. Write code to implement the expression: A = on 3-, 2-, 1- and 0-address machines. In accordance with programming language practice, computing the expression should not change the values of its operands. 2. Solve the following: a) In a computer instruction format, the instruction length is 11 bits and the size of an address field is 4 bits. Is it possible to have: 5 2-address instructions, 45 1-address instructions and 32 0-address instructions using the spec- ified format? Justify your answer. 3. Suppose a computer using direct mapped cache has 232 bytes of byte-addressable main memory and a cache size of 512 bytes, and each cache block contains 128 bytes. a) How many blocks of main memory are there? b) What is the format of a memory address as seen by cache, i.e., what are the sizes of the tag, block, and offset fields? c) To which cache block will the memory address 0x13A4498A map?arrow_forward
- Question #2: (5 Points). Write a function in C++ which accepts a 2D array of integers and its size as arguments and displays the elements of middle row and the elements of middle column. [Assuming the 2D Array to be a square matrix with odd dimension i.e. 3x3, 5x5, 7x7 etc...] Example, if the array contents is 3 5 4 7 6 9 2 1 8 Output through the function should be : Middle Row :769 Middle column : 5 6 1arrow_forwardPart 1(Theory) A-Write C++ statements to accomplish each of the following 1. Display the value of the seventh element of character array f. 2. Input a value into element 4 of single-subscripted floating-point array 3. Initialize each of the 5 elements of singlo-subscripted integer array g to 8. B-Write C++ statement to accomplish each of the following. 4. Assign the sum of x and y to z and increment the value ofx by 1 after the calculation. (Write Single Statement) 5. Decrement the variable x by 1 then subtract it from the variable total. (Write Single Statement) 6. Write four different C++ statements that cach add I to integer variable x. (Write four Statement) C- Write C++ statement to accomplish each of the following. 7. Declare variables sum and x to be of type int. 8. Set variable x to 1. Set variable sum to 0. 9. Add variable x to variable sum and assign the result to variable sum. 10. Print "The sum is: " followed by the value of variable sum. function call declaration,…arrow_forwardThe programming language: C++ The union of two ordered lists (Sequential linear list)[the solution introduction: The first video of in 3.1, 35:00-43:00] [Problem description] Give the union of two ordered lists. The maximal number of elements in an inputted set is 30. [Basic requirements] 1) Use sequential linear list. 2) The result list should also be ordered. [Example] Problem: Give the union of the ordered lists (3,4,9,100,103) and (7,9,43,53,102,105). What you need to show in the terminal(the back part is outputted by you and the blue part is inputted by the user, i.e., teacher): Please input the first ordered list: (3,4,9,100,103)Please input the second ordered list: (7,9,43,53,102,105) The union is: (3,4,7,9,9,43,53,100,102,103,105)arrow_forward
- (C PROGRAMMING ONLY) 3. How Much Is The House?by CodeChum Admin There's this house I want to buy just right around the corner. I know its address but I don't know its value. Can you please help me determine it? Instructions: In the code editor, you are provided with an initial code which has main() function.In the main(), the user is asked for an integer input and then its address is assigned to a pointer variable (see line 9)Your task is to print the value of the pointer variable using the dereferencing operator.Input 1. An integer Output Enter n: 5Value of *ptr = 5arrow_forwardProblem 17. [ 1 point for correctness ] Use the Design Recipe to define a function pulse_rate that has two parameters. The first is the number of seconds a nurse has counted pulses, and the second is the number of pulses counted (both ints). The function should return the pulse rate, pulses/minute, as a float. Don't forget to convert seconds to minutes! Include a Docstring.(use Python) For example: Test Result print(round(pulse_rate(30,22),1)) 44.0 Use this statement to test your pulse_rate function: assert_equal(round(pulse_rate(30, 22),1),44.0)arrow_forward(1) A function with prototype long decode (long x, long y, long z); Has the following assembly code from gcc (Note that the line numbers in the first column have no functional value, but are supplied to help): 1. decode: subą %rdi, % rsi imulq %rsi, movq %rsi, salq $63, $63, 2. 3. %rdi 4. %rax 5. %rax %rax %rax 6. sarq 7. xorq %rdi, 8. ret (a) Annotate the assembly code. (b) Hence write C code for decode that has the equivalent effect to the assembly code.arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education