Loops 第二次循环迭代中的NASM(装配)分段故障
当我第二次通过循环并输入E(打算退出循环)时,我不断得到一个分段错误。如果我第一次进入E,它会很好地退出。希望我只是在这里装傻,有人可以建议一个简单的解决办法 谢谢你抽出时间 声明:Loops 第二次循环迭代中的NASM(装配)分段故障,loops,assembly,segmentation-fault,nasm,cmp,Loops,Assembly,Segmentation Fault,Nasm,Cmp,当我第二次通过循环并输入E(打算退出循环)时,我不断得到一个分段错误。如果我第一次进入E,它会很好地退出。希望我只是在这里装傻,有人可以建议一个简单的解决办法 谢谢你抽出时间 声明: segment .bss a resd 1 b resd 1 op resb 2 主要内容: 我马上就发现了几个问题/潜在问题: 1) “调用”子例程时,通常需要a)更新堆栈(在子例程中)和b)清除堆栈(返回后) 您没有向我们展示“read_int”或“read_c
segment .bss
a resd 1
b resd 1
op resb 2
主要内容:
我马上就发现了几个问题/潜在问题: 1) “调用”子例程时,通常需要a)更新堆栈(在子例程中)和b)清除堆栈(返回后) 您没有向我们展示“read_int”或“read_char”,但我怀疑可能是这样 2) 错误:
调用循环
。更好:jmp循环
您可以在这里找到一些好的NASM示例:我看到了一些问题/潜在问题: 1) “调用”子例程时,通常需要a)更新堆栈(在子例程中)和b)清除堆栈(返回后) 您没有向我们展示“read_int”或“read_char”,但我怀疑可能是这样 2) 错误:
调用循环
。更好:jmp循环
您可以在这里找到一些好的NASM示例:我看到了一些问题/潜在问题: 1) “调用”子例程时,通常需要a)更新堆栈(在子例程中)和b)清除堆栈(返回后) 您没有向我们展示“read_int”或“read_char”,但我怀疑可能是这样 2) 错误:
调用循环
。更好:jmp循环
您可以在这里找到一些好的NASM示例:我看到了一些问题/潜在问题: 1) “调用”子例程时,通常需要a)更新堆栈(在子例程中)和b)清除堆栈(返回后) 您没有向我们展示“read_int”或“read_char”,但我怀疑可能是这样 2) 错误:
调用循环
。更好:jmp循环
您可以在这里找到一些好的NASM示例:您太棒了。我犯了一个多么愚蠢的错误。非常感谢你的帮助!只要我的新帐户允许,我会立即更新投票并进行核对。你太棒了。我犯了一个多么愚蠢的错误。非常感谢你的帮助!只要我的新帐户允许,我会立即更新投票并进行核对。你太棒了。我犯了一个多么愚蠢的错误。非常感谢你的帮助!只要我的新帐户允许,我会立即更新投票并进行核对。你太棒了。我犯了一个多么愚蠢的错误。非常感谢你的帮助!只要我的新账户允许,我会立即更新投票并核对。
loop:
call read_int ;read two integers, then a char
mov [a], eax
call read_int
mov [b], eax
call read_char
call read_char ;takes newline input
cmp al, 'E' ;if char is E, then exit
je exit
call loop ;start over
exit:
dump_regs 0 ;completes, but then seg faults if the loop has run more than once