(5/5)

### Endor FP Programming in ARM assembly Working with floating point numbers Coordinating a program with both ARM assembly and C code (you aren’t writing in C)

INSTRUCTIONS TO CANDIDATES

Learning Goals

• Programming in ARM assembly
• Working with floating point numbers
• Coordinating a program with both ARM assembly and C code (you aren’t writing in C)

Endor FP

On Endor, they use an 8-bit FP format in all their computer systems. The Ewoks, the residents of Endor, have collected coordinates for several key Imperial bases. It is critical that these coordinates are uploaded to the computer on the Millennium Falcon. R2 can transfer the raw data from the Endorian Komputer to a file on the Millennium Falcon’s old computer system. Your mission is to read the file of binary 8-bit FP numbers and convert them to the IEEE Single Precision (32 bit) format that the Millennium Falcon’s computer can read.

Endor FP Format

The Endor-FP format is similar to the one we studied in class with a few twists. It has a sign bit,

3 bits of biased exponent, and 4 bits of mantissa.  (Ewoks live in a low precision world, so 8-bit

FP was fine for their purposes).

The following figure illustrates the bit assignments:

Endor-FP Format

sign

(1)

exponent

(3)

mantissa

(4)

There is an implied “1.” in front of the mantissa.  Endor-FP does not support denormal numbers

(numbers less than 1.0 x 2-3).

Number                           Encoding in 8-bits

+0.0                                 8’b0000_0000 (8bits of 0in binary)

-0.0                                  8’b1000_0000

Largest Positive #        8’b0111_1111   2^4 * 5’b1.1111    5’b11111 = 31

Smallest Positive #      8’b0000_0001   2^-3 * 5’b1.0001   ⅛ + 1/128  = 0.1328125

Largest Negative #      8’b1111_1111   -2^4 * 5’b1.1111   -5’b11111 = -31

Smallest Negative #     8’b1000_0001   -2^-3 * 5’b1.0001   -( ⅛ + 1/128)  = -0.1328125

The bias for the IEEE Format is 127(base 10) and the format uses an implied 1.

The smallest representable exponent is -126which is represented as 8’b0000_0001.  The

exponent code 8’b0000_0000is not used by our program.1

-0 is 1followed by 31 0’s.

However, +0is 32bits of 0and

Summary of select Conversions (0’s, min, max values)

EndorFP         Endor FP                  IEEE-754 Single

+0                      0000_0000             0x00000000

-0                      1000_0000             0x80000000

0.1328125              0000_0001             0x3e080000

-0.1328125             1000_0001             0xbe080000

31                      0111_1111             0x41f80000

-31                     1111_1111             0xc1f80000

1  the exponent code 8’b0000_0000 represents denormal numbers where there is no implied 1.  In this assignment you will not need to use denormal representations.

Your program will take a binary file name as an argument. Read in the file that is the argument passed to your program. This file is a raw binary file containing just bytes of coordinate data. For each byte in the file, decode that byte and convert it into IEEE FP format and print it.

For example,

\$ ./endorfp topsecret.bin

would read in the file topsecret.bin, convert each byte to a floating point number, and print those numbers as decimal values to stdout. You can assume that a valid binary file is used and there won’t be other arguments given.

(5/5)

## Related Questions

##### . Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

##### . The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

##### . Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

##### . SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

##### . Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

(/5)

Hire Me
(/5)

Hire Me
(/5)