The complete program is given below
Here is the complete program, suitable for copying to a text file and running with SPIM. Remember to initialize the PC (to 0x00400000). Execute the program step at a time by pushing F10.
## absVal.asm ## ## Calculate the absolute value of A ## ## Registers: ## $8 --- A, two's comp. integer ## $9 --- sign bit of A ## $10 --- base register for .data section .text .globl main main: # Get A lui $10,0x1000 # Init base register lw $8,0($10) # Load A sll $0,$0,0 # Is A Negative? srl $9,$8,31 # Shift sign bit to position 0 beq $0,$9,done # sign bit == zero, done sll $0,$0,0 # Store -A sub $8,$0,$8 # negate A sw $8,0($10) # save it done: sll $0,$0,0 # target of the branch .data A: .word -1 ## End of File