Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

There is a bad instruction address in this code, where is it in the following code: #Pablo Panchig .data .align 0 prompt_msg: .asciiz Demonstrate ascii

There is a bad instruction address in this code, where is it in the following code:

#Pablo Panchig
.data
.align 0
prompt_msg: .asciiz "Demonstrate ascii to integer\n\n"
input_prompt: .asciiz "Enter a string of digits: "
result_msg: .asciiz "Integer value is: "

.text
.align 2
.globl main

# Initialize result and i
atoi:
addi $sp, $sp, -32
sw $s0, 0($sp)
sw $s1, 4($sp)
sw $s2, 8($sp)
sw $s3, 12($sp)
sw $s4, 16($sp)
sw $s5, 20($sp)
sw $ra, 24($sp)
sw $fp, 28($sp)

# Set the frame pointer
addi $fp, $sp, 32

li $s0, 0 # result
li $s1, 0 # i
li $s5, 10

# Start the loop looking at each character in the string
atoi_loop:
lbu $t0, 0($a0)
beq $t0, $zero, atoi_done

li $s3, '0'
li $s4, '9'
slt $t2, $t0, $s3
slt $t3, $s4, $t0
or $t4, $t2, $t3

# Check if it's not a digit
bne $t4, $zero, atoi_done

sub $t0, $t0, $s3
mul $s0, $s0, $s5
add $s0, $s0, $t0
addi $s1, $s1, 1

addi $a0, $a0, 1
j atoi_loop

# Restore registers and exit
atoi_done:
add $t5, $s0, $zero

lw $s0, 0($sp)
lw $s1, 4($sp)
lw $s2, 8($sp)
lw $s3, 12($sp)
lw $s4, 16($sp)
lw $s5, 20($sp)
lw $ra, 24($sp)
lw $fp, 28($sp)

# Exit code
addi $sp, $sp, 32
jr $ra

main:

# Adjust the stack pointer to allocate space
addi $sp, $sp, -12
sw $ra, 0($sp)
sw $fp, 4($sp)

addi $sp, $sp, 8

# Print welcome message
li $v0, 4
la $a0, prompt_msg
syscall

# Print input prompt
li $v0, 4
la $a0, input_prompt
syscall

# Read input string
li $v0, 8
la $a0, line
li $a1, 20
syscall

# Call atoi to convert the input string to an integer
la $a0, line
jal atoi

# Print result message
li $v0, 4
la $a0, result_msg
syscall

# Print the integer result
add $a0, $t5, $zero
li $v0, 1 # Set the syscall code for printing an integer
syscall

# Exit
li $v0, 10

lw $ra, 0($sp)
lw $fp, 4($sp)
addi $sp, $sp, 12

jr $ra

# Data section for input buffer
.data
.align 0
line: .space 20 # Buffer to hold the input string

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_2

Step: 3

blur-text-image_3

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

Income Tax Fundamentals 2013

Authors: Gerald E. Whittenburg, Martha Altus Buller, Steven L Gill

31st Edition

1111972516, 978-1285586618, 1285586611, 978-1285613109, 978-1111972516

More Books

Students also viewed these Databases questions