Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The code on pages 20-21 of the Text book asks you to input a number, and it will then sum the numbers from 1 to

The code on pages 20-21 of the Text book asks you to input a number, and it will then sum the numbers from 1 to that number. The Prompt asks you to input a number, not necessarily an integer. The program will abort if a floating point number is entered.

Your project, is to fix the program and allow for a floating point number to be entered. The program will NOT run, so your task is to convert the floating point number to an integer.

If a floating point number is entered, truncate the number and use that integer to run the program. Also, you must inform the user that they entered a floating point and it was truncated, output to the user, the floating point they entered and the integer you used.

Note: You must only use Shift, Rotate to manipulate the bits, no conversion instructions.

The following are some pointers as to what needs to be done.

  1. The program reads an integer, that must be changed to read a floating point.
  2. You will need to move that number into a floating point register and then that number must be copied into an integer register.
  3. You will need to extract the exponent from the integer register and stored in another register.
  4. You will need to insert the Implied bit. I would suggest, zero out the exponent part by shifting left 9 then shifting right 9. Then add 8388608 (2^23) to the number.
  5. You will need to extract the fractional portion of the of the number. You will need the exponent to determine the shift. You only need to test to see that this is NOT EQUAL to 0 (if it is we have an integer)
  6. Extract the Integer. You may want to Rotate the bits to the left.

You may want to use the following Assembler instructions in your code:

srl, add, sll, rol, sub, srlv and sllv

Please need an answer in Assembly language not in C/C++

Need to modify code below for floating point

# A program to find the sum of the integers from 1 to N, Where N is a value, which is read from the keyboard # vo is: N; # t0 is sum:

.data Prompt: .asciiz " Please Input a value for N= " Result: .asciiz "The sum of the integers from 1 to N is" Bye: .asciiz " **** Adios Amigos -Plz Have a Good Day****" .globl main .text main: li $v0, 4 #system call for print la $a0, Prompt #load adress of prompt to $a0 syscall #plz print the prompt message li $v0, 5 #call code to read integer syscall # value of N into $v0 blez $v0, End #to end if v0 <=0 li $t0, 0 #clear register $t0 to 0 Loop: add $t0, $t0, $v0 #sum of integers in t0 addi $v0, $v0, -1 #summ all integers in reverse orders bnez $v0, Loop #loop if $v0 is !=0 li $v0, 4 #call code to print string la $a0, Result #load adress of message into $a0 syscall #plz print the string li $v0, 1 # call code for the print integer move $a0, $t0 #move value to be printed to $a0 syscall #print sum of integers b main #Plz branch to main End: li $v0, 4 #Call code for print string la $v0, Bye #load adress of msg. into $a0 syscall #print string li $v0, 10 #terminate program and run syscall #return control to syste # t0 is sum:

.data Prompt: .asciiz " Please Input a value for N= " Result: .asciiz "The sum of the integers from 1 to N is" Bye: .asciiz " **** Adios Amigos -Plz Have a Good Day****" .globl main .text main: li $v0, 4 #system call for print la $a0, Prompt #load adress of prompt to $a0 syscall #plz print the prompt message li $v0, 5 #call code to read integer syscall # value of N into $v0 blez $v0, End #to end if v0 <=0 li $t0, 0 #clear register $t0 to 0 Loop: add $t0, $t0, $v0 #sum of integers in t0 addi $v0, $v0, -1 #summ all integers in reverse orders bnez $v0, Loop #loop if $v0 is !=0 li $v0, 4 #call code to print string la $a0, Result #load adress of message into $a0 syscall #plz print the string li $v0, 1 # call code for the print integer move $a0, $t0 #move value to be printed to $a0 syscall #print sum of integers b main #Plz branch to main End: li $v0, 4 #Call code for print string la $v0, Bye #load adress of msg. into $a0 syscall #print string li $v0, 10 #terminate program and run syscall #return control to syste

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Financial Accounting

Authors: Charles T. Horngren, Jr. Harrison, Walter T.

2nd Edition

0133118207, 978-0133118209

More Books

Students also viewed these Accounting questions