小编kot*_*oli的帖子

在MIPS中使用跳转表(如何跳转JT数组中的标签)

我正在尝试使用跳转表为我的工作制作菜单。一切对我来说看起来都很好,但下面的代码不起作用。在“jr $s0”指令之后,mars 给了我一个错误,如下所示:

Error in : invalid program counter value: 268501840

我知道十进制地址268501840是 L1 标签的实际地址,并且代码应该位于该标签,但此时我遇到了此错误。为什么?

main:   
.data
jTable: .word L0,L1,L2,L3,L4,L5,L6,default      #jump table definition  
msg:    .asciiz "\nEnter Your Choice;\n [1] for build,\n [2] for insert,\n [3] for       find,\n [4] for findMinMax,\n [5] for delete,\n [6] for print\n [0] for Exit\nYour    choice:#"
.text
userInteraction:
li  $v0,4           #print string
la  $a0,msg         #get string address
syscall

li  $v0,5           #get a menu option from user(0 to 6)
syscall
move    $s0,$v0         #get index in $s0 …
Run Code Online (Sandbox Code Playgroud)

mips mips32 smips

4
推荐指数
1
解决办法
7481
查看次数

标签 统计

mips ×1

mips32 ×1

smips ×1