# fan_demo_fixed.s — corrected to assemble in QtSPIM .data FAN_DUTY: .word 0 FAN_TACH: .word 0 FAN_CTRL: .word 0 .text .globl main .ent main main: # Set PWM duty to ~50% and enable LUI $t0, 0xFFFF ORI $t0, $t0, 0x0000 # $t0 = FAN_DUTY addr ORI $t1, $zero, 128 # duty = 128 SW $t1, 0($t0) LUI $t2, 0xFFFF ORI $t2, $t2, 0x0008 # $t2 = FAN_CTRL addr ORI $t3, $zero, 1 # enable = 1 SW $t3, 0($t2) loop: LUI $t4, 0xFFFF ORI $t4, $t4, 0x0004 # tach addr LW $t5, 0($t4) # read tach_count (optional) J loop NOP # (Unreachable) exit pattern li $v0, 10 syscall .end main