mirror of
https://github.com/Ed94/pikuma_ps1.git
synced 2026-06-01 18:41:13 -07:00
exercise review vod
This commit is contained in:
@@ -20,7 +20,8 @@ add_u equ add ; dst_reg, reg_a, reg_b (unsigned)
|
|||||||
add_si equ addi ; dst_reg, src_reg, immediate value (signed)
|
add_si equ addi ; dst_reg, src_reg, immediate value (signed)
|
||||||
add_ui equ addiu ; dst_reg, src_reg, immediate value (unsigned)
|
add_ui equ addiu ; dst_reg, src_reg, immediate value (unsigned)
|
||||||
; Branch
|
; Branch
|
||||||
branch_equal equ beq ; reg, value(reg, immediate), dst_label
|
branch_equal equ beq ; reg, value(reg, immediate), dst_label
|
||||||
|
branch_lt_equal equ ble ; reg, value(reg, immediate), dst_label
|
||||||
|
|
||||||
; Registers
|
; Registers
|
||||||
; Temporaries, may be changed by subroutines
|
; Temporaries, may be changed by subroutines
|
||||||
@@ -36,12 +37,15 @@ main:
|
|||||||
|
|
||||||
; Attempt:
|
; Attempt:
|
||||||
load_imm rtemp_0, 1
|
load_imm rtemp_0, 1
|
||||||
load_imm rtemp_1, 0
|
; load_imm rtemp_1, 0
|
||||||
|
move rtemp_1, $zero
|
||||||
loop:
|
loop:
|
||||||
add_s rtemp_1, rtemp_1, rtemp_0
|
add_s rtemp_1, rtemp_1, rtemp_0
|
||||||
add_si rtemp_0, rtemp_0, 1
|
add_si rtemp_0, rtemp_0, 1
|
||||||
branch_equal rtemp_0, 10, end
|
branch_lt_equal rtemp_0, 10, loop
|
||||||
nop
|
nop
|
||||||
j loop
|
; branch_equal rtemp_0, 10, end
|
||||||
|
; nop
|
||||||
|
; j loop
|
||||||
end:
|
end:
|
||||||
.close
|
.close
|
||||||
|
|||||||
@@ -56,13 +56,13 @@ main:
|
|||||||
; 5. Subtract $t0-$t1 and store it back into $t0
|
; 5. Subtract $t0-$t1 and store it back into $t0
|
||||||
; 6. Increment $t2
|
; 6. Increment $t2
|
||||||
; 7. }
|
; 7. }
|
||||||
|
|
||||||
; Attempt:
|
; Attempt:
|
||||||
|
move rtemp_2, $zero
|
||||||
load_imm rtemp_0, 27
|
load_imm rtemp_0, 27
|
||||||
load_imm rtemp_1, 3
|
load_imm rtemp_1, 3
|
||||||
load_imm rtemp_2, 0
|
// load_imm rtemp_2, 0
|
||||||
loop: :: branch_lt rtemp_0, rtemp_1, loop_break :: nop ; loop if < rtemp_0, rtemp_1 {
|
loop: :: branch_lt rtemp_0, rtemp_1, loop_break :: nop ; loop if < rtemp_0, rtemp_1 {
|
||||||
sub_s rtemp_0, rtemp_0, rtemp_1 ; -= rtemp_0, rtemp_1
|
sub_s rtemp_0, rtemp_0, rtemp_1 ; -= rtemp_0, rtemp_1
|
||||||
add_si rtemp_2, rtemp_2, 1 ; ++ rtemp_2
|
add_si rtemp_2, rtemp_2, 1 ; ++ rtemp_2
|
||||||
j loop :: loop_break: ; }
|
j loop :: loop_break: ; }
|
||||||
.close
|
.close
|
||||||
|
|||||||
+3
-3
@@ -32,7 +32,7 @@ function build-program { param(
|
|||||||
write-host 'Done!'
|
write-host 'Done!'
|
||||||
pop-location
|
pop-location
|
||||||
}
|
}
|
||||||
# build-program 'fillmem' 'fillmem'
|
build-program 'fillmem' 'fillmem'
|
||||||
# build-program 'warmup' 'exercise_1'
|
build-program 'warmup' 'exercise_1'
|
||||||
# build-program 'warmup' 'exercise_2'
|
build-program 'warmup' 'exercise_2'
|
||||||
build-program 'warmup' 'exercise_3'
|
build-program 'warmup' 'exercise_3'
|
||||||
Reference in New Issue
Block a user