What is the value of the stack pointer before the program executes

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

2. What is the address where the ascii string "!= " is stored? 

 

3. What is the value of the stack pointer before the program executes?

.globl main
.data
input:
output:
result_str:
.text
main:
exit:
.word 6
.word 0
.asciz "! =
lw a0, input
jal fact_func
la t0, output
sw a0,0(t0)
lw a0, input
li a7,1
ecall
la a0, result_str
li a7,4
ecall
lw a0, output
li a7,1
ecall
li a0, 0
li a7, 93
ecall
ebreak
addi sp, sp, -8
sw s0, 0(sp)
sw ra, 4(sp)
mv s0, a0
bgtz a0,$L2
li a0,1
j $L1
addi a0, a0,-1
jal fact_func
mul a0, a0, so
lw s0, 0(sp)
lw ra, 4(sp)
addi sp, sp, 8
ret
fact_func:
$L2:
$L1:
# The location for the input data
# allocates 4 byte set to 4
# The location for the output data
# allocates 4 byte set to 4
# The location for the result string data
# allocates 1 byte per chacter plus null character
# Label for start of program
# Load input Value
# Load output address to to
# Save output value to output memory location
# Load Input value into ao
# System call code for print_int code 1
# Make system call
# Put result_str address in a0
# System call code for print_str code 4
# Make system call
# Load output value into a0
# System call code for print_int code 1
# Make system call
# Exit (93) with code 0
#System call value.
#Make system call
# Finish with breakpoint
# Make room to save values on the stack
# This function uses 1 callee save regs
# The return address needs to be saved
# Save the argument into so
# Branch if n > 0
# Return 1
# Jump to code to return
# Compute n - 1
# Call factorial function
# Compute fact(n-1) * n
# Restore any callee saved regs used
# Restore return address
# Update stack pointer
# Jump to return address
Transcribed Image Text:.globl main .data input: output: result_str: .text main: exit: .word 6 .word 0 .asciz "! = lw a0, input jal fact_func la t0, output sw a0,0(t0) lw a0, input li a7,1 ecall la a0, result_str li a7,4 ecall lw a0, output li a7,1 ecall li a0, 0 li a7, 93 ecall ebreak addi sp, sp, -8 sw s0, 0(sp) sw ra, 4(sp) mv s0, a0 bgtz a0,$L2 li a0,1 j $L1 addi a0, a0,-1 jal fact_func mul a0, a0, so lw s0, 0(sp) lw ra, 4(sp) addi sp, sp, 8 ret fact_func: $L2: $L1: # The location for the input data # allocates 4 byte set to 4 # The location for the output data # allocates 4 byte set to 4 # The location for the result string data # allocates 1 byte per chacter plus null character # Label for start of program # Load input Value # Load output address to to # Save output value to output memory location # Load Input value into ao # System call code for print_int code 1 # Make system call # Put result_str address in a0 # System call code for print_str code 4 # Make system call # Load output value into a0 # System call code for print_int code 1 # Make system call # Exit (93) with code 0 #System call value. #Make system call # Finish with breakpoint # Make room to save values on the stack # This function uses 1 callee save regs # The return address needs to be saved # Save the argument into so # Branch if n > 0 # Return 1 # Jump to code to return # Compute n - 1 # Call factorial function # Compute fact(n-1) * n # Restore any callee saved regs used # Restore return address # Update stack pointer # Jump to return address
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY