MIPS - JAL命令后的程序暂停

时间:2016-02-16 01:40:00

标签: mips mips32

家庭作业:我第一次尝试用MIPS写作,而且我坚持使用JAL命令。当我运行一个名为setup_ports的子程序时,一切都按照宣传的方式工作(即它进入子程序,执行代码并退出)。下一个函数(wait_for_operation)调用另一个函数light_leds。问题是代码在此行停止。调试器不会进入light_leds,它只是暂停。我不确定问题是什么。

正确使用代码:

.ent setup_ports
setup_ports:
#set leds to input, RB10-11
LI $t0, 0x3C00
SW $t0, TRISBCLR

#set switches to output, RE08, RD00, RD08, RD13
LI $t0, 0x100
SW $t0, TRISESET
LI $t0, 0x2101
SW $t0, TRISDSET
JR $ra
.end setup_ports

代码无效:

 .ent wait_for_operation
 wait_for_operation:
 MOVE $s1, $ra
 LI $t0, 0xF
 MOVE $a0, $t0
 JAL light_leds
 NOP
 SW $t0, ($zero)

.ent light_leds
light_leds:
#clear all lights
LI $t0, 0x3C00
SW $t0, LATBCLR
#get passed value
MOVE $t0, $a0

调试器在JAL light_leds行停止,并且不允许暂停,只停止。

0 个答案:

没有答案