在 Red hat 中编译时出现分段错误,但在 ubuntu 中工作正常
这是我正在执行的代码。它在带有 NASM 2.08 的 ubuntu 上给出了所需的输出,但在使用运行 NASM 0.98.22 的 Red Hat 7.3 编译时给出了分段错误 有人可以帮助我告诉我如何确保它在红帽上也能正常运行吗?
section .data
section .text
global _start
_start:
xor eax,eax
cdq
push eax
push long 0x68732f2f
push long 0x6e69622f
mov ebx,esp
push eax
push eax
mov ecx,esp
mov al,0xb
push eax
int 0x80
Here is a code that i am executing. its giving the desired output on ubuntu with NASM 2.08 but gives a segmentation fault when compiled with Red Hat 7.3 running NASM 0.98.22
Can someone help me by telling how i can make sure it runs fine on red hat too.
section .data
section .text
global _start
_start:
xor eax,eax
cdq
push eax
push long 0x68732f2f
push long 0x6e69622f
mov ebx,esp
push eax
push eax
mov ecx,esp
mov al,0xb
push eax
int 0x80
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的代码是 32 位的,因此当您构建它时,您需要确保构建一个 32 位可执行文件。默认情况下,这将在 32 位操作系统上发生,但您可能需要像
-m32
这样的开关才能在 64 位操作系统上实现此目的。Your code is 32 bit so when you build it you need to make sure that you build a 32 bit executable. This will happen by default on your 32 bit OS but you probably need a switch like
-m32
to achieve this on a 64 bit OS.