
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
expand_more
expand_more
format_list_bulleted
Topic Video
Question
The portion of the generated assembly code implementing the C function int (int x, int y, int z) is as follows: Based on this assembly code, fill in the missing portions of the C code. Verify your answer using gcc compiler. Note: x in %edi, y in %esi, z in %edx.

Transcribed Image Text:func (int, int, int):
pushq
%rbp
movq
%rsp, %rbp
movl
%edi, -20(%rbp)
movl
%esi, -24(%rbp)
movl
%edx, -28(%rbp)
movl
-20 ( %rbp), %edx
movl
-24 ( %rbp), %eax
addl
$edx, %eaх
$11, %eax
Fill in this c code based on the assembly code:
addl
movl
Веax, -4 (8rbp)
movl
-4 ( %rbp), %eax
Int func(int x, int y, int z){
subl
$4, %eax
movl
веах, -8(8rbp)
}
int main(){
}
movl
-8 ( %rbp), %eax
popq
%rbp
ret
main:
pushq
%rbp
movq
%rsp, %rbp
subq
$16, %rsp
movl
$3, %edx
movl
$2, %esi
movl
$1, %edi
call
func(int, int, int)
movl
%eax, -4(%rbp)
movl
$0, %eax
leave
ret
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution
Trending nowThis is a popular solution!
Step by stepSolved in 2 steps with 1 images

Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- The following instruction set is supported by a simple processor, which is similar to what we discussed in the class, with a few new instructions added. The format of most instructions is defined as follows. bits 15:14 13:10 9 8:6 5:3 2:0 field unused opcode w srcl src2 dst where the fields are defined as follows. opcode : operation to be performed by the processor write back ALU output to register file (1= yes, 0 = no) address of the first ALU operand in the register file address of the second ALU operand in the register file address in the register file where the output is written w: srcl: src2: dst: For opcodes BEQ, BLEZ and JUMP, the 6 least significant bits (5:0) give an address in the instruction memory, which is byte-addressed. The opcode HALT has all operand bits (9:0) being 0. When an instruction has only two operands, the field for the unused operand is filled with 0-bits. For example, bits (5:3) for SLL are all zero because src2 is not used. The opcode and meaning of these…arrow_forwardGiving assembly code for function int myfunction(int b, int c, int d); int z; _asm{ mov ebx, b mov edx, d mov ecx, c add ebx, ecx sal ebx, 2 add edx, ebx mov eax, edx mul ecx mov z, ecx } return z; write the c code of this functionarrow_forwardIn what order does the Compiler's processing take place? Can a working example of each procedure be provided?arrow_forward
- translate the following c program into pep/9 assembly languagearrow_forwardAnalyze the code solution below and discuss any gain in performance. To gather measurement values, use any CUDA or OpenMP library API that is used to measure performance (time, speedup, etc..) or by using what is offered by the compiler (C, C++). #include <stdlib.h> //malloc and free #include <stdio.h> //printf #include <omp.h> //OpenMP // Very small values for this simple illustrative example #define ARRAY_SIZE 8 //Size of arrays whose elements will be added together. #define NUM_THREADS 4 //Number of threads to use for vector addition. /* int main (int argc, char *argv[]) { // elements of arrays a and b will be added // and placed in array c int * a; int * b; int * c; intn = ARRAY_SIZE; // number of array elements intn_per_thread; // elements per thread inttotal_threads = NUM_THREADS; // number of threads to use inti; // loop index // allocate space for the arrays a = (int *) malloc(sizeof(int)*n); b = (int *) malloc(sizeof(int)*n); c = (int *)…arrow_forwardchange c progrma to HLA assembly program SAMPLE C CODE:------------------------ int i, n, j;printf( "Feed Me:" );scanf( "%d", &n );for (i=1; i<=n; i++) { if (i == 1 || i == n) { // first or last row for (j = 1; j <= n; j++) { printf( "%d", n ); } printf( "\n" ); } else { // internal rows of the box printf( "%d", n ); for (j = 1; j <= n-2; j++) { printf( " " ); } printf( "%d", n ); printf( "\n" ); } } Here are some example program dialogues to guide your efforts: Feed Me: 5555555 55 55 555555Feed Me: -6Feed Me: 33333 3333arrow_forward
- In C, both long x and int *y are 8-byte values. How can we can tell which one is which in the assembly compiled from the C? (l.e., what is true of one but not the other? If several answers seem correct, pick the most precise option.) A. x is stored in a register, y in memory B. x is modified using addq, y using addl C. x may be an argument to add but y won't be D. When an argument of mov, a register storing x will never be inside parentheses E. When an argument of mov, a register storing y will always be inside parenthesesarrow_forwardTranslate the following C program (Not C++) into Pep/9 (Not a previous app) assembly language. A screenshot would be appreciated as the previous source codes provided were not compiling. #include <stdio.h> int minimum(int j1, int j2) { if (j1 < j2) { return j1; } else { return j2; } } int main() { int n, m; scanf("%d %d", &n, &m); printf("Minimum: %d\n", minimum(n, m)); return 0; }arrow_forwardwrite a Pep/9 assembly language (Source Code) program that corresponds to the following C program: const int BONUS = 10; int quiz1, quiz2, avg; int main() { scanf("%d %d", &quiz1, &quiz2); avg = ((quiz1 + quiz2) / 2) + BONUS; printf("average = %d\n", avg); return 0; }arrow_forward
- LetC 5 {0000000, 1110100, 0111010, 0011101, 1001110,0100111, 1010011, 1101001}.What is the error-correcting capability of C? What is the error-detectingcapability of C?arrow_forwardExplain the code solution to this problem in a step-by-step way. The steps should be described in English, and it should explain each part of the code step by step.arrow_forwardExample: The Problem Input File Using C programming language write a program that simulates a variant of the Tiny Machine Architecture. In this implementation memory (RAM) is split into Instruction Memory (IM) and Data Memory (DM). Your code must implement the basic instruction set architecture (ISA) of the Tiny Machine Architecture: //IN 5 //OUT 7 //STORE O //IN 5 //OUT 7 //STORE 1 //LOAD O //SUB 1 55 67 30 55 67 1 LOAD 2- ADD 3> STORE 4> SUB 5> IN 6> OUT 7> END 8> JMP 9> SKIPZ 31 10 41 30 //STORE O 67 //OUT 7 11 /LOAD 1 //OUT 7 //END 67 70 Output Specifications Each piece of the architecture must be accurately represented in your code (Instruction Register, Program Counter, Memory Address Registers, Instruction Memory, Data Memory, Memory Data Registers, and Accumulator). Data Memory will be represented by an integer array. Your Program Counter will begin pointing to the first instruction of the program. Your simulator should provide output according to the input file. Along with…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