8得票2回答
如何解释x86-64上的段寄存器访问?

使用此功能: mov 1069833(%rip),%rax # 0x2b5c1bf9ef90 <_fini+3250648> add %fs:0x0,%rax retq 如何理解第二条指令,并找出添加到RAX中的内容?

39得票3回答
Where can I find system call source code?

在Linux中,如果我有源代码树,我在哪里可以找到所有系统调用的源代码?另外,如果我想查找特定系统调用的源代码和汇编代码,是否可以在终端中输入类似于my_system_call的命令?

122得票4回答
本地代码、机器代码和汇编代码有什么区别?

在.NET语言中,我对于机器码和本地码感到困惑。 它们有什么区别?它们是相同的吗?

11得票2回答
PIC寄存器(%ebx)的作用是什么?

我用C++编写了一个“危险”的程序,它在不同的堆栈帧之间跳来跳去。目标是从调用堆栈的最低级别跳到一个调用者,做一些事情,然后再次跳回,每次跳过中间所有的调用。 我通过手动更改堆栈基地址(设置%ebp)并跳转到标签地址来实现。这完全有效,gcc和icc都可以使用,而且没有任何堆栈损坏。那天这个...

13得票3回答
我想在C语言中创建一个简单的汇编器。我应该从哪里开始?

我最近一直在尝试沉浸在汇编语言程序设计世界中,最终目标是创建自己的编程语言。我想让我的第一个真正的项目是用C语言编写的简单汇编器,它将能够组装x86机器语言的非常小的部分并创建Windows可执行文件,没有宏和连接器,只有汇编语言。 纸上来看,似乎足够简单。汇编代码输入,机器代码输出。 但...

8得票2回答
RISC-V: PC绝对地址 vs PC相对地址

我是RISC-V的新手。 我在理解何时编写PC(Program Counter)相对指令以及何时编写PC绝对指令方面遇到了困难。 例如,使用lui指令后跟jalr指令被认为是PC-absolute,而使用auipc指令后跟jalr指令被认为是PC-relative。 据我所知,所有指令都...

7得票1回答
在现代CPU上运行用8086汇编语言编写的游戏

我使用8086处理器汇编写了一个游戏,并在名为DOSBox的DOS模拟器上运行它。 现在我想向其他人展示这个游戏,而不需要他们下载模拟器。基本上,我想将8086汇编语言编译成现代操作系统的可执行文件。这可能吗,还是我应该将其转换为另一种汇编语言?如果是这样,有没有自动进行这种转换的方法?

9得票1回答
从x86-64打印浮点数似乎需要保存%rbp

当我使用Ubuntu上的gcc 4.6.1编写一个简单的汇编语言程序,并链接C库,尝试打印一个整数时,它能够正常工作: .global main .text main: mov $format, %rdi mov ...

7得票3回答
为什么在shellcode中使用Push/Pop而不是Mov将数字放入寄存器?

我有一些来自shell代码有效载荷的示例代码,其中展示了一个for循环,使用push/pop设置计数器: push 9 pop ecx 为什么不能只使用mov指令? mov ecx, 9

21得票4回答
优化x64汇编MUL循环

我正在编写需要快速乘大数的数学代码。它可以将一个整数数组与一个单独的整数相乘。在C++中,代码如下(对于无符号整数):void muladd(unsigned* r, const unsigned* a, unsigned len, unsigned b) { unsigned __in...