C 在汇编代码中将字符串作为参数传递
我必须编写类似于c代码的程序集,如下所示:C 在汇编代码中将字符串作为参数传递,c,assembly,x86-64,C,Assembly,X86 64,我必须编写类似于c代码的程序集,如下所示: void fun_name(char *array) 我知道必须将此值传递给%edi寄存器,才能将其作为函数fun_name的第一个参数传递。如何对该值进行编码 你想发送给fun_name()?@l'l'l该值是一个与十六进制值等价的字符串,比如:0x14ac0baa。如果是字符串值,尽管我认为你会想使用const char@l'l好的,但这就是我得到的。我必须把它转换成机器代码。有什么线索可以说明这是怎么做到的吗?你肯定走对了方向,你需要做的就是将
void fun_name(char *array)
我知道必须将此值传递给%edi寄存器,才能将其作为函数fun_name的第一个参数传递。如何对该值进行编码 你想发送给
fun_name()
?@l'l'l该值是一个与十六进制值等价的字符串,比如:0x14ac0baa。如果是字符串值,尽管我认为你会想使用const char
@l'l好的,但这就是我得到的。我必须把它转换成机器代码。有什么线索可以说明这是怎么做到的吗?你肯定走对了方向,你需要做的就是将数组
移动到%edi
。。。所以(movl$array,%edi
,然后call fun_name
)。你想发送给fun_name()
的值是什么?@l'l'l该值是一个与十六进制值等价的字符串,比如说:0x14ac0baa。如果它是字符串值,尽管我认为你会想使用const char
@l'l好的,但这是我得到的。我必须把它转换成机器代码。有什么线索可以说明这是怎么做到的吗?你肯定走对了方向,你需要做的就是将数组
移动到%edi
。。。所以(movl$array,%edi
,然后调用fun\u name
)。