Please translate the following c program below to a pep/9 assembly language and please Also explain the code.

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
Topic Video
Question
Please translate the following c program below to a pep/9 assembly language and please Also explain the code.
```c
int number, base, answer;

int divide(int numer, int denom) {
    int quotient, remain;
    remain = numer;
    quotient = 0;
    while (remain >= denom) {
        remain -= denom;
        quotient++;
    } // end for
    return quotient;
} // end of divide()

void findLog(int *result, int num, int b) { 
    int k;
    num--;
    *result = 0;
    while (num > 0) {
        *result = *result + 1;
        num = divide(num, b);
    } // end while
} // end of findLog()
```

### Explanation

This code snippet contains two functions: `divide` and `findLog`.

1. **divide(int numer, int denom)**
   - This function takes two integers, `numer` and `denom`, and performs integer division.
   - It calculates how many times `denom` can be subtracted from `numer` before the remainder is less than `denom`.
   - The result, `quotient`, is returned.

2. **findLog(int *result, int num, int b)**
   - This function calculates the logarithm of `num` to the base `b`.
   - The variable `num` is decremented by 1 initially.
   - A while loop repeatedly calls the `divide` function to update `num` by dividing it by `b`.
   - Each time the loop runs, it increments the value pointed by `result`.
   - This continues until `num` is no longer greater than 0.
   - The final value of `*result` gives the logarithm result.

The code is a basic implementation of integer division and logarithm using iterative methods in C.
Transcribed Image Text:```c int number, base, answer; int divide(int numer, int denom) { int quotient, remain; remain = numer; quotient = 0; while (remain >= denom) { remain -= denom; quotient++; } // end for return quotient; } // end of divide() void findLog(int *result, int num, int b) { int k; num--; *result = 0; while (num > 0) { *result = *result + 1; num = divide(num, b); } // end while } // end of findLog() ``` ### Explanation This code snippet contains two functions: `divide` and `findLog`. 1. **divide(int numer, int denom)** - This function takes two integers, `numer` and `denom`, and performs integer division. - It calculates how many times `denom` can be subtracted from `numer` before the remainder is less than `denom`. - The result, `quotient`, is returned. 2. **findLog(int *result, int num, int b)** - This function calculates the logarithm of `num` to the base `b`. - The variable `num` is decremented by 1 initially. - A while loop repeatedly calls the `divide` function to update `num` by dividing it by `b`. - Each time the loop runs, it increments the value pointed by `result`. - This continues until `num` is no longer greater than 0. - The final value of `*result` gives the logarithm result. The code is a basic implementation of integer division and logarithm using iterative methods in C.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Instruction Format
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
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