CSC 311: COMPUTER ORGANIZATION AND ARCHITECTURE Lab 7 – Due 04/07/2022, 11:59 PM This lab provides experience with dynamic memory allocation and strings. Write a program that applies run length...

1 answer below »
Must be coded In MIPS 32 Assembly language please use the chapter 8 power point and notes for reference



CSC 311: COMPUTER ORGANIZATION AND ARCHITECTURE Lab 7 – Due 04/07/2022, 11:59 PM This lab provides experience with dynamic memory allocation and strings. Write a program that applies run length encoding compression to a given string. Follow the below steps: 1. Dynamically allocate memory from heap for two strings (an input string and an output string). 2. Read an input string (a-z, A-Z) of size less than 40 characters in this dynamic memory. 3. Iterate over the string looking for consecutive occurrences of the same character and replace them with the character and a count. 4. Example, if the input string is AAAAAA, the output string should be A6. If you see BBCCCCCCCCCCCCC, the output should be B2C13. 5. Note that the number 13 is represented as two separate characters ‘1’ and ‘3’ in the output string. 6. Single character occurrences do not need a count. 7. The output string should also be stored in the dynamic memory before it is displayed on the console. 8. Implement a loop back to the main function. See the prompts below: “Enter a string:” “Compressed string is:” “Do you want to apply run length encoding again?” 9. Test the program using the following data: a. Input: AAAAaaabbcde Compressed string: A4a3b2cde b. Input: XXXXXXXXXXYYZZZWERTT Compressed string: X10Y2Z3WERT2 Submission guidelines: You need to submit your Lab7.asm file and a screenshot of the Run/IO display with input values: 1) AAAAAAAAAAAAbbbOOOPPPPP 2) LLKKKJHGSSDDDDD Submit a single .zip file with name Lab7_firstname_lastname.zip (Your .zip file should contain Lab7.asm and Screenshot). 1 Chapter 8: Dynamic Memory Allocation and Strings CSC311 Computer Organization and Architecture Adita Kulkarni Overview  Memory  Heap  Syscalls  8, 9, 11  Instructions  lb, sb  Convert integer to character – ‘0’ 2 Memory Layout  Heap  Dynamic memory allocation 3 System Services  A small set of operating system-like services through the system call (syscall) instruction 4 Code 5  Allocate Memory li $v0, 9 #syscall for dynamic memory allocation (sbrk) li $a0, 80 syscall move $s0, $v0  Read String into the dynamically allocated memory li $v0, 8 #syscall read string la $a0, 0($s0) #buffer li $a1, 40 #length syscall Instructions 6  Size  Integer – 4 bytes  Character – 1 byte  Instructions  lb $t1, 0($t0)  sb $t1, 0($s0) Example: Copy string character by character 7 .data # Data declaration section Prompt1: .asciiz "\n Enter a string:" .text main: li $v0, 4 #Prints String la $a0, Prompt1 syscall li $v0, 9 li $a0, 80 syscall move $s0, $v0 li $v0, 8 la $a0, 0($s0) li $a1, 30 syscall move $t0, $a0 li $t4, 0 Loop: lb $t1, 0($t0) sb $t1, 40($s0) addi $t0, $t0, 1 addi $t4, $t4, 1 addi $s0, $s0, 1 beq $t1, 0, End j Loop End: neg $t4, $t4 add $s0, $s0, $t4 li $v0,4 la $a0, 40($s0) syscall #Exit Convert Integer to Character 8  Add '0'  Compiler understands '0' as 48  Example  li $t3, 1  add $t4, $t3, '0' Slide Number 1 Overview Memory Layout System Services Code Instructions Example: Copy string character by character Convert Integer to Character
Answered Same DayApr 08, 2022

Answer To: CSC 311: COMPUTER ORGANIZATION AND ARCHITECTURE Lab 7 – Due 04/07/2022, 11:59 PM This lab provides...

Gaurav answered on Apr 09 2022
92 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here