怎么让gcc支持nasm语法汇编

时间:2021-03-17 01:23:08
有时候需要在c代码内内嵌汇编,有时候需要把c代码编译成汇编,但是对at&a的汇编语法用的不习惯,请问有什么办法让gcc识别nasm格式的语法吗?

7 个解决方案

#1


嵌入汇编没有办法, AT&T比Intel格式好用些.
单独写个汇编文件三, 用nasm, yasm汇编就是.

#2


gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。

#3


主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jmp tss,这个如果再调用一个汇编函数是不是太影响效率了

#4


引用 2 楼 turingo 的回复:
gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。

主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jmp tss,这个如果再调用一个汇编函数是不是太影响效率了

#5


那就只有用gcc所内嵌支持的AT&T汇编语言了。

引用 4 楼 derweaf 的回复:
引用 2 楼 turingo 的回复:gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。
主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jmp tss,这个如果再调用一个汇编函数是不是太影响效率了

#6


引用 5 楼 turingo 的回复:
那就只有用gcc所内嵌支持的AT&T汇编语言了。

引用 4 楼 derweaf 的回复:引用 2 楼 turingo 的回复:gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。
主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jm……

3q

#7


intel比较搞笑的就是用TSS比一个个保存寄存器还慢, 所以M$Win, *Nix都木见用TSS的.
没听说过一个call还能影响效率的, 用嵌入汇编倒是经常会生成些寄存器保护的代码, 通常都比单独的汇编函数慢的说..

#1


嵌入汇编没有办法, AT&T比Intel格式好用些.
单独写个汇编文件三, 用nasm, yasm汇编就是.

#2


gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。

#3


主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jmp tss,这个如果再调用一个汇编函数是不是太影响效率了

#4


引用 2 楼 turingo 的回复:
gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。

主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jmp tss,这个如果再调用一个汇编函数是不是太影响效率了

#5


那就只有用gcc所内嵌支持的AT&T汇编语言了。

引用 4 楼 derweaf 的回复:
引用 2 楼 turingo 的回复:gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。
主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jmp tss,这个如果再调用一个汇编函数是不是太影响效率了

#6


引用 5 楼 turingo 的回复:
那就只有用gcc所内嵌支持的AT&T汇编语言了。

引用 4 楼 derweaf 的回复:引用 2 楼 turingo 的回复:gcc无法直接嵌入nasm汇编代码,你可以把汇编部分单独出来,用nasm编译,具体做法参考http://sy198704.iteye.com/blog/1005744。
主要是我现在学多进程,我想让程序里判断该切换任务了直接一个jm……

3q

#7


intel比较搞笑的就是用TSS比一个个保存寄存器还慢, 所以M$Win, *Nix都木见用TSS的.
没听说过一个call还能影响效率的, 用嵌入汇编倒是经常会生成些寄存器保护的代码, 通常都比单独的汇编函数慢的说..