Using the following C code and assembly code answer the following;  C: long int nothingGreater(long int num) { if (num > 240) { return 240 - num; } else { return num; } } Assembly:  0x00000000004004ed <+0>: push %rbp 0x00000000004004ee <+1>: mov %rsp,%rbp 0x00000000004004f1 <+4>: mov %rdi,-0x8(%rbp) 0x00000000004004f5 <+8>: cmpq $0xf0,-0x8(%rbp) 0x00000000004004fd <+16>: jle 0x40050a 0x00000000004004ff <+18>: mov $0xf0,%eax 0x0000000000400504 <+23>: sub -0x8(%rbp),%rax 0x0000000000400508 <+27>: jmp 0x40050e 0x000000000040050a <+29>: mov -0x8(%rbp),%rax 0x000000000040050e <+33>: pop %rbp 0x000000000040050f <+34>: retq  The instruction mov $0xf0,%eax at address 0x4004ff puts a value into register %eax but there are no other references to %eax in the program. Which instruction makes use of this value? What is the address of the instruction (0x-prefixed hex)? What register name is used that leads to the use of the value stored in %eax (give the 3-letter abbreviation with a % before it)?

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Using the following C code and assembly code answer the following; 

C:

long int nothingGreater(long int num) {

if (num > 240) {

return 240 - num; }

else { return num; }

}

Assembly:

 0x00000000004004ed <+0>: push %rbp

0x00000000004004ee <+1>: mov %rsp,%rbp

0x00000000004004f1 <+4>: mov %rdi,-0x8(%rbp)

0x00000000004004f5 <+8>: cmpq $0xf0,-0x8(%rbp)

0x00000000004004fd <+16>: jle 0x40050a <nothingGreater+29>

0x00000000004004ff <+18>: mov $0xf0,%eax

0x0000000000400504 <+23>: sub -0x8(%rbp),%rax

0x0000000000400508 <+27>: jmp 0x40050e <nothingGreater+33>

0x000000000040050a <+29>: mov -0x8(%rbp),%rax

0x000000000040050e <+33>: pop %rbp

0x000000000040050f <+34>: retq 

The instruction mov $0xf0,%eax at address 0x4004ff puts a value into register %eax but there are no other references to %eax in the program. Which instruction makes use of this value?

What is the address of the instruction (0x-prefixed hex)?

What register name is used that leads to the use of the value stored in %eax (give the 3-letter abbreviation with a % before it)?

 
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
ADT and Class
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
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
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)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education