binary division program for signed integer, Computer Engineering

Assignment Help:

The program division.c is available for download as part of this assignment. It is a binary division program which works for signed integers. It contains a function, div32, which does the signed division; and a main() program which tests division for several pairs of numbers. You should download, compile, and run it to see the output. Now, re-implement the binary division function, div32, in MIPS assembly code, assuming the following convention for passing arguments:

Register Argument Mechanism

$4 dividend pass by value

$5 divisor pass by value

$6 quotient pass by value

$7 remainder pass by value

Although this is not quite the convention used by a "C" compiler (quotient and remainder are pointers and would otherwise by passed by reference), we will use it here since argument passing mechanisms have not been dealt with in detail at this point in the course. In coding your function it is absolutely essential that the context of the calling program is fully preserved.

Then, re-implement the main() program in MIPS assembly code to test the binary division function. The SPIM environment includes a number of SYSCALL functions for printing strings and integers. Test your functions with the same arrays of test cases given. Your results should be identical. Your assembly program must be fully documented, as follows:

First, at the start of each procedure (main and div32) you should have a list of all the registers that you use, and what each is used for. For example, you should have something like the following at the start of your div32 code (you will have many more registers, probably allocated differently; this is just to give the idea):

#--------------------------------------------------------------------------

# Procedure Name: int div32(long dividend, long divisor,

# long quotient, long remainder)

#

# Description:

#

# Register Allocation: $4: dividend (changed)

# $5: divisor (changed)

# ...

# $10: scratch

# ...

# $17: dividend_sign

# $18: divisor_sign

#--------------------------------------------------------------------------

Second, you should have a comment containing the "C" code that you are translating just before the assembly code implementing that "C" code. You should also have a comment at the end of every line of the assembly code. Here's an example:

#--------------------------------------------------------------------------

# if (dividend < 0) {

# dividend_sign = 1;

# dividend = -dividend;

# }

#--------------------------------------------------------------------------

slt $10, $4, $0 # Check if dividend less than 0

beq $10, $0, div20 # If not, skip to next case

li $17, 1 # dividend_sign = 1

negu $4, $4 # negate dividend

#--------------------------------------------------------------------------

# if (divisor < 0) {

# divisor_sign = 1;

# divisor = -divisor;

# }

#--------------------------------------------------------------------------

div20: slt $10, $5, $0 # Check if divisor less than 0

beq $10, $0, div30 # If not, skip ahead

li $18, 1 # divisor_sign = 1

negu $5, $5 # negate dividend


Related Discussions:- binary division program for signed integer

What are the advantages of using structure in c program, What are the advan...

What are the advantages of using structure in C Program Declaring a struct is a two-stage process. The first stage defines a new data type that has the required structure which

Pebble merchant, c programming code for pebble merchant

c programming code for pebble merchant

Define ufd and mfd, Define UFD and MFD.   In the two-level directory st...

Define UFD and MFD.   In the two-level directory structure, every user has own user file directory (UFD). Every UFD has a same structure, but lists only the files of a single u

Predicates in first-order logic sentences , Predicates in first-order logic...

Predicates in first-order logic sentences - artificial intelligence There are predicates first and foremost in first-order logic sentences. These are indications that some thin

Syntax errors and logical errors, Syntax errors and logical errors: Syn...

Syntax errors and logical errors: Syntax errors also called as compilation errors are caused by violation of the grammar rules of the language. The compiler detects, isolate th

Characteristics of the id process, The following is taken from the first ed...

The following is taken from the first edition of the Set Book. We have included this because we find these characteristics helpful. We will refer to them later. In addition to t

Explain cocomo model, A COCOMO model is :- COCOMO:- Constructive Cost Es...

A COCOMO model is :- COCOMO:- Constructive Cost Estimation Model.

What are the kernel threads, What are the Kernel threads Kernel threads...

What are the Kernel threads Kernel threads are supported directly by the operating system .Thread creation; scheduling and management are done by the operating system. Thus the

Define the advantages of assembly language., Highlight the advantages of as...

Highlight the advantages of assembly language. The benefits of assembly language program would be Reduced errors Faster translation times Changes could be made fas

Why did some plug-ins disappear for 0.99.19, Some of the plug-ins have prov...

Some of the plug-ins have proven unstable. These have been moved into a split download, which should be available anywhere you got the GIMP, in the file gimp-plugins-unstable-VERSI

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd