我有代码:
global _start
section .text
_start:
mov ebx,1
mov ecx,4
label:
add ebx,ebx
dec ecx
cmp ecx,0
jg label
mov eax,1
int 0x80
它返回16,这表明'label'中的代码已运行。但是,我没有告诉它跳转到标签。如果_start结束,代码是否会自动跳转到下一个标签?
最佳答案
缺少返回或跳转指令或进程终止服务调用,是的,执行确实会“失败”到 _start 代码结束后内存中的下一个内容。在本例中,这就是您的标签上名为 label 的代码。
如果代码结束后有数据或未映射的页面,处理器将尝试执行该数据。这很可能会导致无限循环或崩溃或挂起。
关于assembly - 如果 nasm 代码遇到 _start 结尾,是否会自动移动到下一个标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59373865/