logo Hurry, Grab up to 30% discount on the entire course
Order Now logo

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Aaron BiltoftStatistics
(5/5)

647 Answers

Hire Me
expert
Hunter EdwardssHistory
(5/5)

569 Answers

Hire Me
expert
Venktesh PrasaadMarketing
(5/5)

575 Answers

Hire Me
expert
Samina KhanFinance
(5/5)

728 Answers

Hire Me
Assembly Programming

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
ANSWER ALL QUESTIONS

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 Mission

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.

Related Questions

. The fundamental operations of create, read, update, and delete (CRUD) in either Python or Java

CS 340 Milestone One Guidelines and Rubric  Overview: For this assignment, you will implement the fundamental operations of create, read, update,

. 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

Retail Transaction Programming Project  Project Requirements:  Develop a program to emulate a purchase transaction at a retail store. This

. The following program contains five errors. Identify the errors and fix them

7COM1028   Secure Systems Programming   Referral Coursework: Secure

. Accepts the following from a user: Item Name Item Quantity Item Price Allows the user to create a file to store the sales receipt contents

Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip

. The final project will encompass developing a web service using a software stack and implementing an industry-standard interface. Regardless of whether you choose to pursue application development goals as a pure developer or as a software engineer

CS 340 Final Project Guidelines and Rubric  Overview The final project will encompass developing a web service using a software stack and impleme