Question

Hello! I would greatly appreciate help with this! Write a MIPS assembly language program that reads...

Hello! I would greatly appreciate help with this!

Write a MIPS assembly language program that reads in how many days a customer will be staying in a hotel, and also reads in how many number of beds per room were needed, compute its price based on the following rules:

If a customer is staying in a room with one bed for less than 8 days,
then the total price will be $90 * the number of days to stay.

If a customer is staying in a room with one bed for 8 days or more, then they will get the discount of $60,
and the total price will be $90 * the number of days to stay - $60.

If a customer is staying in a room with two beds for less than 8 days,
then the total price will be $150 * the number of days to stay.

If a customer is staying in a room with two beds for 8 days or more, then they will get the discount of $90,
and the total price will be $150 * the number of days to stay - $90.

For any other case, the price should be $0.

If a customer enters a number of beds per room to be any number other than 1 or 2, then it should print out the message "Sorry, we have only one or two beds per room.\n", and exit the program without computing its price. If a customer enters 1 or 2 as a number of beds per room, then the program should proceed to compute its total price, and print out the message using the format of "Your total price: XXX dollars for YYY days\n". where XXX is the total price and YYY is the number of days to stay.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Program Screenshots:

Sample Output:

Run1:

1bed less than 8days:

Run2:

2bed lessthan 8 days:

Run3:

1bed 8days or more:

Run4:

2bed more than 8days:

Run5:

For invalid case neithe 1bed not 2bed

Run6:

All other cases:

Code to be Copied:

printrooms.asm

#data section
.data
   #prompt for days
   daysPrompt: .asciiz "Enter number of days of customer staying in hotel: "
   #prompt for beds
   bedsPrompt: .asciiz "Enter number of beds per room were needed: "
   #prompt for error msg
   incorrect: .asciiz "Sorry, we have only one or two beds per room.\n"
   #prompt for price msg
   pricemsg: .asciiz "Your total price: "
   #prompt for all othercases
   allothercases: .asciiz "Your total price is $"
   #prompt for print dollars msg
   dollarsmsg: .asciiz " dollars for "
   #prompt for days msg
   daysmsg: .asciiz " days\n"
#text section
.text
   #add the discount values in the registers
   addi $s3, $zero, 90
   addi $s4, $zero, 60
   addi $s5, $zero, 150
   addi $0, $zero, 0

        #print the prompt msg for input days
        li $v0, 4
        la $a0, daysPrompt
        syscall

        #read the input days
        li $v0, 5
        syscall
        move $s0, $v0

        #print the prompt msg for input beds per room
        li $v0, 4
        la $a0, bedsPrompt
        syscall

        #read the input beds
        li $v0, 5
        syscall
        move $s1, $v0

        #if the input days is negative, Call the label
        #printzero
        ble $s0,$0,printzero
        #check whether input beds is 2
        beq $s1, 2, twoBeds
        #check whether input beds is 1
        beq $s1, 1, oneBed

        #load the value in $a0
        li $v0, 4
        #call the label incorrect
        la $a0, incorrect
        syscall
        #if input is invalid exit from the program
        #with out print the total price
        li $v0, 10
        syscall
    #if a customer is staying in a room with one bed
    #for less than 8 days,
    oneBed:
        #check for 1 bed for less than 8 days
        bgt $s0, 7, onebedgreatereight
        blt $s0, 8, onebedlessthaneight
      
    #then the total price will be $90 * the number of days to stay.
    onebedlessthaneight:
        mul $s2, $s0, $s3
        j output
      
    #check for 2beds with 8days or more
    #the total price will be $90 * the number of days to stay - $60.
    onebedgreatereight:
        mul $s2, $s0, $s3
        sub $s2, $s2, $s4
        j output
      
    #If a customer is staying in a room with two beds for less than 8 days,
    twoBeds:
        bgt $s0, 7, twobedgreaterethaneight
        blt $s0, 8, twobedlessthaneight

    #then the total price will be $150 * the number of days to stay.
    twobedlessthaneight:
        mul $s2, $s0, $s5
        j output

    # total price will be $150 * the number of days to stay - $90.
    twobedgreaterethaneight:
        mul $s2, $s0, $s5
        sub $s2, $s2, $s3
        j output

    #implement ouptut function
    output:
        #print label
        li $v0, 4
        la $a0, pricemsg
        syscall
        #print the value
        li $v0, 1
        move $a0, $s2
        syscall

        #print the label
        li $v0, 4
        la $a0, dollarsmsg
        syscall
   #print the value
        li $v0, 1
        move $a0, $s0
        syscall    
   #print label
        li $v0, 4
        la $a0, daysmsg
        syscall
        #exit from the program
        li $v0, 10
        syscall

    #for all othercase print $0
    printzero:
        li $v0, 4
        la $a0, allothercases
        syscall
        #print 0 dollars
        li $v0, 1
        move $a0, $s2
        syscall
        #exit from the program
        li $v0, 10
        syscall

Add a comment
Know the answer?
Add Answer to:
Hello! I would greatly appreciate help with this! Write a MIPS assembly language program that reads...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Q-1: Write a program in Assembly language using MIPS instruction set that reads 15 integer numbers...

    Q-1: Write a program in Assembly language using MIPS instruction set that reads 15 integer numbers from user and stores all the numbers in the array intArray. Now, read another integer number N from the user, find the total number of array elements that are greater or equal to the number N, and the total number of array elements that are lower than the number N You must have two procedures: i. ReadIntegerArray: this procedure should read integer array elements...

  • I'm quite stuck with this C++ question, I would greatly appreciate the help! Many companies use...

    I'm quite stuck with this C++ question, I would greatly appreciate the help! Many companies use telephone number like 888- COM - CAST so the number is easier for their customer to remember. On a standard telephone, the alphabetic letters are mapped to numbers in the following fashion. A, B, and C = 2 D, E, and F = 3 G, H, and I = 4 J , K , and L = 5 M, N, and O = 6...

  • 2. Write an 80x86 assembly language program that reads byte size signed integers from memory and...

    2. Write an 80x86 assembly language program that reads byte size signed integers from memory and counts the number of zeros. Store this count in memory. End when you get a negative number. (20pts) For example: nums DB 4, 0, 0, 12, 6, 8, 0, 4, -1 count DB 0 after executing the procedure count should be 3 count DB 3.

  • 1. Write a program in Assembly language using MIPS instruction set that reads two integer numbers...

    1. Write a program in Assembly language using MIPS instruction set that reads two integer numbers from the user named as start and end number and finds out all the prime numbers between start and end (including start and end). Your program should do the validation of both the numbers as follows: i. start number must be smaller or equal to the end number. ii. Both numbers must be positive. iii. The maximum value for the end number is 10000...

  • hello. i need help with number 2 ONLY 1. Use if statements to write a Java...

    hello. i need help with number 2 ONLY 1. Use if statements to write a Java program that inputs a single letter and prints out the corresponding digit on the telephone. The letters and digits on a telephone are grouped this way 2=ABC 3 = DEF 4 GHI 5 JKL 6 - MNO 7 - PRS 8 - TUV 9-WXY No digit corresponds to either Qor Z. For these 2 letters your program should print a message indicating that they...

  •    Lab/HW 3   Write a program that reads in the following data, all entered on one...

       Lab/HW 3   Write a program that reads in the following data, all entered on one line with at least one space separating them: a) an integer representing a month b) an integer representing the day of the month c) an integer representing a year 1. Check that the month is between 1 and 12. If it’s not print an error message. 2. Day cannot be 0 or less nor can it be more than 31 for all months. Print...

  • MIPS ASSEMBLY PROGRAM: PLEASE Write in MIPS Assembly language. Take strings as input and calculate and...

    MIPS ASSEMBLY PROGRAM: PLEASE Write in MIPS Assembly language. Take strings as input and calculate and print a simple checksum for each string. Make your string long enough to hold 50 characters. Don't forget to leave space for the null byte. Our checksum algorithm will produce a value which you can print with the syscall for printing a character. Stop reading strings when the user enters ".". The syscall to read a string (sycall code 8) adds a newline to...

  • 2. Write a program to prepare email address with name of person, email ID. This program...

    2. Write a program to prepare email address with name of person, email ID. This program should collect number of persons with their details menstion in the above. Finally, print all the registerd preson with their details and also print selected particular person's emails. 1. Write a program to prepare departmental store records with item name, number of items. This program should collect number of items with its details menstion in the above. Finally, print all the registerd items with...

  • Objective: To implement the programming languages features discussed in class and to develop a program that...

    Objective: To implement the programming languages features discussed in class and to develop a program that uses Graphical User Interfaces (GUI) that provides a friendly environment for users. Project Assignment Design and implement a Hotel Reservation System. The hotel has two types of rooms. One is regular room that has two beds. Another is deluxe room that has two beds and a safe. The regular room price is $120 per night. The deluxe room is $130 per night. A safe...

  • Q1. Write program calculate the final price of a purchased item using values entered by the...

    Q1. Write program calculate the final price of a purchased item using values entered by the user Hint: you are required to use formatting output for number, currency and percentage. --------------------[Print Receipt] ------------ Enter the quantity: 6 Enter the unit price: $1.98 Subtotals: $10.14 Tax: $ 0.61 at 6% Total: $10.75 ------------------------------------------------ Q2. Write a program that prompts for and reads the users’ first name and last name, Job title, DOB (date of Birth), and the Email address (separately). Then...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT