gpt4 book ai didi

assembly - 尝试执行非指令

转载 作者:行者123 更新时间:2023-12-01 07:14:52 26 4
gpt4 key购买 nike

这是一个 C 代码的 mips 汇编代码。我正在使用 Qtspim 模拟它,但我收到了如上标题的错误。

    .text

# j=$s0 , i=$t0

main:
li $s0,5 # setting j to 5
li $t0,0 # setting i to zero


loop:
slti $t1,$t0,8
bne $t1,1,Exit
add $s0,$s0,$t0
addi $t0,$t0,1
beq $s0,10,Exit
j loop


Exit:

我试图转换为汇编的 C 代码如下
  j=5;

for(t=0,i<8;i++){

j=j+1;
if(j==10)
return;
}

最佳答案

如果您遇到“尝试在地址 0x 处执行非结构化...”的问题,请尝试在代码末尾添加:

li $v0,10
syscall

pc 计数器将始终将 +4 添加到 pc(因为指令以 4 的倍数存储)并且它会这样做,直到您不说 EXIT FROM PROGRAM。

是的,终止程序的过程是程序员的错,因此您将编写退出系统调用以终止您的代码。

8086里做过代码的人记得有一个.EXIT例程,把程序的控制权还给DOS,所以和syscall是一样的

关于assembly - 尝试执行非指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13289835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com