NASM 2 lines of db (initialized data) seemingly not working

北城余情 提交于 2019-12-02 04:56:50
Peter Cordes

Works for me on GNU/Linux, with yasm. (After removing the _ prefix from function names.)

$ yasm -felf64 puts.asm
$ gcc -o put puts.o
$ ./puts
Puts message...

That's with the 2nd db line still present:

another:    db      0

There was another question about almost exactly this problem (a message not printing when there was more data following the string) on OS X, within the past couple weeks. The OP of that question found that yasm on OS X worked for him. Maybe there's a bug in nasm for OS X?

I eventually found the post I was talking about: Position Independent Code pointing to wrong address. See the discussion in comments on my answer. The OP found his code worked with yasm, but wasn't able to tell if there was a bug in nasm or if he was just using it wrong.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!