腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么
Linux
不遵循Unix的约定?
c
、
linux
、
unix
、
assembly
、
x86
我正在自学
Linux
汇编
语言,我在BSD和
Linux
之间遇到了一个有趣的区别。在Unix中,在调用80h中断之前,将syscall
参数
推到堆栈上;而在
Linux
中,则在寄存器中
传递
参数
。有人知道
Linux
开发人员使用寄存器而不是堆栈的理由是什么吗? 注意:这里有一个很好的页面详细说明了这种差异:没有解释其基本原理。
浏览 7
提问于2013-12-11
得票数 6
回答已采纳
1
回答
如何在程序集中
传递
8个以上的浮点值给printf
assembly
、
x86-64
、
abi
我读过关于
汇编
的文章,一部分是关于在
汇编
(尤其是
Linux
)中调用例程的约定。据说,前8个浮点
参数
通过xmm0-xmm15
传递
,寄存器rdi、rsi、rdx、rcx、r8、r9中的其他
参数
应以相反的顺序推送到堆栈中。如果我有超过8个浮点
参数
和超过6个其他
参数
,应该按什么顺序将它们推送到堆栈?第一个不适合8 fp的浮点值。寄存器或其他
参数
不适合6个寄存器?
浏览 12
提问于2016-09-06
得票数 0
回答已采纳
3
回答
在
Linux
上从
汇编
代码调用SDL/OpenGL
assembly
、
x86-64
、
calling-convention
出于学习的目的,我正在用
汇编
语言编写一个简单的基于图形的程序;为此,我打算使用OpenGL或SDL。我正在尝试从
汇编
中调用OpenGL/SDL的函数。我用C语言写了一个简单的程序,将它编译成
汇编
程序(使用-S开关),显然,由GCC生成的
汇编
代码通过在寄存器中
传递
参数
来调用OpenGL/SDL函数,而不是被推送到堆栈。现在,问题是,我如何确定如何将
参数
传递
给这些OpenGL/SDL函数?也就是说,我如何找出哪个
参数<
浏览 0
提问于2010-06-12
得票数 3
回答已采纳
1
回答
将
参数
从C语言
传递
到程序集?
c
、
assembly
、
cdecl
如何将
参数
从C main函数
传递
到
汇编
函数?我的操作系统是
Linux
Ubuntu,处理器是x86。
浏览 0
提问于2010-12-02
得票数 3
回答已采纳
1
回答
如何访问Windows命令行
参数
?
windows
、
assembly
、
command-line
最近我做了一些Windows
汇编
语言编程,我意识到我不知道如何访问命令行
参数
。我已经在网上搜索过了,但是我没有找到任何关于它的东西。(也许我不知道如何表达这个问题),窗口将
参数
从命令行
传递
到程序的方法和
Linux
是一样的吗?我的意思是,ebp最初设置为指向argc? 谢谢
浏览 2
提问于2012-03-05
得票数 2
回答已采纳
7
回答
如何在x86
汇编
语言中编写自修改代码
assembly
、
x86
、
jit
、
vm-implementation
、
self-modifying
我知道一点
汇编
语言(我主要是一个C程序员。我可以阅读大多数我不理解的操作码的参考
汇编
,并编写一些简单的程序。)但我很难理解我在网上找到的几个自我修改代码的例子。
Linux
内核中断被多次使用,并且没有解释或详细说明。(作者在调用中断之前将数据移动到几个寄存器中。我假设他是在
传递
参数
,但这些
参数
根本没有得到解释,让读者去猜测。)一些我可以看到的东西,用来理解x86
汇编
中的自修改代码是如何编写的,以及它是如何工作的。你有没有什么资源可以告诉我,或者你能给出什么例子来充分证明这
浏览 0
提问于2011-01-27
得票数 53
回答已采纳
3
回答
从程序集中调用c函数需要"asmlinkage“吗?
c
、
assembly
、
linux-kernel
、
system-calls
、
calling-convention
我正在编写一个将从
汇编
代码中调用的C函数。(具体地说,我想在
linux
内核中的系统调用处理路径中做一些检查工作,因此我将在entry_32.S中调度系统调用之前调用c函数) 在定义我的c函数时,我把"asmlinkage“修饰符搞混了。我知道一个stack就是告诉编译器
参数
将通过栈
传递
。从我的角度来看,在x86中,当发出系统调用时,
参数
很容易保存在寄存器中;那么为什么还要费心将
参数
保存在堆栈中,以通过堆栈约定来强制这样的
传递
参数
呢?最后,有没
浏览 9
提问于2012-04-08
得票数 18
回答已采纳
1
回答
如何通过程序集代码检查JVM核心转储中的JVM方法
参数
?
java
、
jvm
、
gdb
我希望获得get代码的程序集代码,以便根据Java调用约定获得
参数
值。假设JVM是hotspot,平台是
Linux
64位,我们有下面的调用者和calle,我想检查从JVM核心转储
传递
给被调用者的
参数
。,例如在寄存器中
传递
多达6个第一个整数
参数
: rsi、rdx、rcx、r8、r9、rdi 。对于c/c++方法,只需通过回溯命令打印调用堆栈,就可以使用gdb,然后是帧N(N是线程号),然后x/20i $pc-64获得
汇编
代码,并从相关的帧上下文寄存器中
浏览 7
提问于2017-01-18
得票数 0
回答已采纳
1
回答
将值作为函数
参数
传递
,而不是计算两次?
c++
、
c
、
linux
、
performance
、
optimization
我记得在Agner的出色指南中,64位
Linux
可以通过寄存器
传递
6个整数函数
参数
: 我的职能如下:我需要
传递
一个额外的无符号的短
参数
,这将使总共7。因此,我的问题是,以下哪一项是更好的性能实践: 不是
传递
已经计算过的值
浏览 4
提问于2014-02-26
得票数 5
回答已采纳
1
回答
如何通过进程的回溯来确定
传递
函数
参数
的值?
c
、
linux
、
embedded
我想要确定调用跟踪中调用的一个函数的
参数
的值,我有.o文件,然后反
汇编
它,所以我有那个特定函数的
汇编
过程,我如何通过回溯和
汇编
代码来计算函数
传递
参数
的值?它是在ARM平台上的,我对ARM调用跟踪和
汇编
代码不是很熟悉。
浏览 1
提问于2014-10-22
得票数 2
1
回答
访问程序集中的数组元素时出现分段错误
arrays
、
pointers
、
assembly
、
segmentation-fault
我从C调用,所以:在
汇编
中实现的函数,这是
汇编
函数:i_point_a equ 12
浏览 0
提问于2016-05-15
得票数 0
1
回答
如何使用
汇编
语言加载C应用程序?
c
、
gcc
、
assembly
、
nasm
我有一个C源代码和
汇编
源代码。我希望
汇编
代码将控制权
传递
给C应用程序。我在
Linux
上工作,使用的是GCC + NASM进行编译。我需要用一种特殊的方式来编译它们吗?用于加载和启动c应用程序的
汇编
代码是什么?
浏览 0
提问于2010-12-06
得票数 2
回答已采纳
1
回答
将128位寄存器从
汇编
传递
到C函数
c
、
assembly
、
x86-64
、
calling-convention
、
att
我正在尝试测试将一个浮点值从64位
Linux
上的
汇编
传递
给一个C函数。如果我没记错的话,在64位
linux
中,调用约定是在XMM寄存器上
传递
浮点
参数
。然后将其移动到xmm0寄存器,我希望它是用于
传递
参数
k的寄存器。对调用约定的这种理解也得到了从C文件生成的
汇编
代码的支持,C文件的一部分如下:.LFB0: pushq %rbp我只能假设这是因为我没有正
浏览 0
提问于2018-01-31
得票数 3
1
回答
向函数
传递
参数
--推送或寄存器
function
、
assembly
、
x86
、
x86-64
、
calling-convention
我想写一个函数,它的功能类似于: return x + y# addme(5,2)push $5add $16, %rsp 这是
传递
args的正确方式吗?我还听说
参数
是在%rdi, %rsi, ...中
传递
的。一个是正确的,另一个是不正确的,或者正确的方法是什么?
浏览 3
提问于2020-08-30
得票数 0
1
回答
配置和多个线程
multithreading
、
compilation
、
makefile
、
configure
当我需要从源代码编译应用程序(在
linux
环境中)时,主要过程如下: 通常,我将-j4
传递
给make,以便使用所有的CPU资源并加快速度(很多!)
汇编
过程。
浏览 3
提问于2016-06-16
得票数 3
5
回答
C++如何将命令行
参数
转换为数组?
c++
、
arrays
、
assembly
、
command-line-arguments
我想知道C++是如何将命令行
参数
转换为字符数组的?什么“秘密”代码可以做到这一点?我可以在哪里查看执行此操作的代码(即使它是在
汇编
中,我也知道一些
汇编
)?我正在使用
Linux
,如果这有帮助的话。
浏览 2
提问于2012-09-02
得票数 3
回答已采纳
2
回答
在Visual Studio中将程序集代码作为内联
汇编
程序的
参数
visual-studio
、
function
、
assembly
我需要在Visual Studio中将
汇编
代码作为
参数
传递
,因此有一个函数,例如: myasm(char *x),它将接受像"mov eax,eax\n add eax,eax“这样的
参数
。(注意:我
传递
的
汇编
代码是动态的,所以我无法预测它会是什么。)
浏览 0
提问于2009-11-20
得票数 0
4
回答
Linux
程序集参考
linux
、
assembly
、
reference
我正在阅读《专业
汇编
语言》一书,其中包含为英特尔IA-32处理器编写的示例代码。使用的
汇编
程序是GNU
汇编
程序。我在哪里可以找到这个程序集引用?例如,编写用于Windows的
汇编
,我可以在英特尔网站上找到参考。
Linux
和GNU
汇编
程序怎么样?
浏览 4
提问于2010-08-19
得票数 1
回答已采纳
3
回答
execve()无法用C++启动程序
c
、
linux
、
assembly
、
execute
、
execve
我正在尝试使用
Linux
上的unistd.h中的execve()创建一个新进程。我尝试向它
传递
以下
参数
execve("/bin/ls", "/bin/ls", NULL);,但没有得到任何结果。我需要使用execve()的原因是因为我试图让它在
汇编
调用中工作,如下所示mov ebx, program mov ecx,
浏览 2
提问于2011-12-12
得票数 2
回答已采纳
5
回答
MIPS系统调用指令
assembly
、
mips
、
system-calls
我反
汇编
了一些MIPS机器代码,得到了下面的代码片段。并且$v0寄存器
传递
syscall号。这是否等于:syscall
浏览 0
提问于2013-12-03
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
SpringBoot参数传递
python参数传递总结
unity中Action传递参数
详解WebAPI 如何传递参数
Python里参数是值传递还是引用传递?
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券