Fill in the table of registers and the blank boxes in the diagram of memory with numbers to show the state of the assemb
Posted: Fri May 20, 2022 3:04 pm
int up_c(int c) { if ('a' <= c && c <= 'Z') C -= 32; return c; } up_c: .text globl up_c addiu $t0, $a0, -97 sltiu $t1,$t0, 26 beq $t1, $zero, L1 addiu $a0, $a0, -32 addu $v0, $a0, $zero L1: # POINT ONE jr $ra int up_s (char *d, const char *s) { int k; k = 0; while (* != '\0') { *d = up_c(*s); d++; s++; k++; } *d = '\0'; return k; } SW SW SW char dd[ ] = "uvwxyz"; char ss[ ] = "zY3x"; int main(void) { up_s(dd, ss); return 0: } .text .globl up_s up_s: addiu $sp,$sp, -16 $ra, 12($sp) $s2, 8($sp) $51, 4($sp) SW $50, 0($sp) addu $50, $a0, $zero addu $s1, $a1, $zero addiu $s2, $zero, o L2: lbu $al, ($s1) beq $a0, $zero, L3 jal up_c sb $v0, ($s0) addiu $50, $50, 1 addiu $s1, $s1, 1 addiu $s2, $s2, 1 j L2 L3: sb $zero, $s0) addu $v0, $s2, $zero lw $s0, 0($sp) lw $51, 4($sp) lw $s2, 8($sp) lw $ra, 12($sp) addiu $sp,$sp, 16 jr $ra om dd: .data globl dd asciiz "uvwxyz" globl ss .asciiz "zY3x" SS: main: SW text globl main addiu $sp,$sp, -4 $ra, 0($sp) la $a0, dd la $a1, ss jal up_s addiu $v0, $zero, O lw $ra, 0($sp) addiu $sp,$sp, 4 jr $ra