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.41PP
A.
Explanation of Solution
Offsets for given fields:
The offset contents are shown below:
Offset 0 8 12 16 ;&#x...
B.
Explanation of Solution
Total bytes required for structure:
- The “p” denotes an “int*” type, it has size of 8 bytes.
- The member “s.x” denotes an “int” type, it has size of 4 bytes.
- The member “s...
C.
Explanation of Solution
Given assembly code:
void sp_init(struct prob *sp)
sp in %rdi
sp_init:
movl 12(%rdi), %eax
movl %eax, 8(%rdi)
leaq 8(%rdi), %rax
movq %rax, (%rdi)
movq %rdi, 16(%rdi)
ret
Load Effective Address:
- The load effective address instruction “leaq” is a variant of “movq” instruction.
- The instruction form reads memory to a register, but memory is not been referenced at all.
- The first operand of instruction is a memory reference; the effective address is been copied to destination.
- The pointers could be generated for later references of memory.
- The common arithmetic operations could be described compactly using this instruction.
- The operand in destination should be a register.
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...
- movb:
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
7. using c++, Write a void function that accepts an integer array a and a integer SizeA, and an integer n, and adds n to every element in that array. Be sure to develop an appropriate name for your function.
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?
4.1.1
Complete solution and answer only no need explanation
Given three data points (1,6), (3,28), and (10, 231), What is the value of y at x = 2 if the function y = 2x2 + 3x + 1 passes through the three data points.
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
- (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_forwardI need help in coding the following practice problem using the fundamentals of C Programming Language without using arrays. The New Telephone Company has the following rate structure for long-distance calls:a) Any call started after 6:00 P.M. gets a 50% discount.b) Any call started after 8:00 A.M. is charged full price.c) All calls are subject to a 4% tax.d) The regular rate for a call is /P5.00 per minute.e) Any call longer than 60 minutes receives a 15% discount on its cost(after anyother discount is taken but before tax is added).Write a program that processes several calls by reading the start time for each call andthe length of each call. The gross cost (before any discounts or tax) should be printedfollowed by the net cost (after discounts are deducted and tax is added).arrow_forward2. Write a C++ program to input elements in two array and merge two array to third array.How to merge two array in C++ programming. Logic to merge two sorted array to thirdarray in C program.ExampleInputInput first array elements: 1, 4, 6, 9, 15Input second array elements: 2, 5, 8, 10OutputMerged array in ascending order = 1, 2, 4, 5, 6, 8, 9, 10, 15arrow_forward
- Problem 10arrow_forwardWrite a program to solve quadratic equations for real roots. No need to use imaginary numbers. ax^2 +bx +c= 0 Requirements:-Define an array of type double with size 3 in main() to store the 3 coefficients.-Read the 3 coefficients from user input.-Create the function prototype and definition for the function getRootCount(discriminant, coefficients) Parameters: discriminant: output to be calculated by the function coefficients: input array of 3 coefficients Return: number of roots: 0, 1, or 2 -Create the function prototype and definition for a function to determine the numbers of roots: getRootCount(discriminant, coefficients); Parameters: discriminant: output value to be calculated by the function (reference parameter) coefficients: input array of 3 coefficients Return: number of roots: 0, 1, or 2 (int) -Create the function prototype and definition for a function to solve equations and get the root(s): solveEquation(discriminant,…arrow_forwardProblem 1. Write a C++ function that inputs a positive integer and determines whether it is prime using trial division. Use your function from Problem 1 to write a C++ program for solving each of the following computational problems. For each problem, find the running time function of the algorithm you are using to write the corresponding program. Problem 2. Determine whether 2^? − 1 is prime for each of the primes not exceeding 100. Problem 3. Find as many primes of the form ?^2 + 1, where n is a positive integer, as you can. Note: Problems 2 and 3 are not related to each other. You need to develop a separate program for each problem. Your programs should invoke your function from Problem 1. For Part 1, submit your C++ programs, test results, and make a conclusion.arrow_forward
- Please 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_forwardwrite the C++ code to traverse an integer vector v to print out pairs of values using only forward iterators. Include the vector declaration and initialization. A main function and #include statements are not required. For example, a six element vector initialized to {1,2,3,4,5, 6} will print out: ( 1, 6)( 2, 5)( 3, 4) and a seven element vector initialized to {1,2,3,4,5,6,7} will print out: ( 1, 7)( 2, 6)( 3, 5)( 4 ) Your solution needs to work for all integer values, not just for the two examples shown.arrow_forwardGeneral math) a. Write a C++ program to calculate and display the midpoint coordinates of the line segment connecting the two endpoints given in Exercise 1a. Use the fact that the coordinates of the midpoint between two points with the coordinates x1,y1)and(x2,y2)are((x1+x2)/2,(y1+y2)/2). Your program should produce the following display (replacing the underscores with values your program calculates): ThexmidpointcoordinateisTheymidpointcoordinateis b. How do you know the midpoint values your program calculates are correct? c. After verifying the output your program produces, modify it to determine the midpoint coordinates of the line connecting the points (2,10) and (12,6). d. If your program doesn’t already do so, change its output to this: The x coordinate of the midpoint is xxx.xx The y coordinate of the midpoint is xxx.xx The xxx.xx denotes placing the calculated value in a field wide enough for three places to the left of the decimal point and two places to the right of it.arrow_forward
- Use C Language The Pascal triangle can be used to compute the coefficients of the terms in the expansion (a + b)n. For example, (a + b)2 = a2 + 2ab + b2 where 1, 2, and 1 are coefficients. Write a C program that creates a two-dimensional matrix a representing the Pascal triangle of size n. For example, a Pascal triangle of size 6 is shown below: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1arrow_forwardwrite a c++ program for the following Write a function called mirror_add that takes two 2D arrays as parameters and adds the“mirrored” version of the second one to the first one, for example :first[1,2,3][2,0,1]+second[4,3,1] ----------->[2,1,3]first[2,5,7][5,1,3]You only need to write the mirror_add function, not the main function. Assume that thecolumn size of both arrays is 3.arrow_forward4. Look up the Pythagorean theorem if you are not already familiar with it. Use the following formula to solve for c in the formula: c = √a2 + b2. Use the proper functions from the cmath header file. Be sure to output the result..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