AT&T语法是UNIX环境中使用的汇编语法,源自AT&T贝尔实验室。它是MIPS汇编语法的后代。
为什么 %rbp 和 %rax 是 movl 的无效操作数?
我正在尝试使用 __asm__ 将 %rbp 的值放入 %rax 寄存器中,以便我可以获得对堆栈帧的引用,当我创建外部变量时,该堆栈帧不会被更改。 我正在使用以下...
全部 我想在终端中显示函数 Additionner(一个添加函数)的返回值 (13)。 它存储在 %eax 寄存器中。 我知道,我不必为这个程序做一个函数......
我正在尝试实现一个具有三个函数的程序——模数、gcd 和素数——根据输入,将计算并返回两个输入的余数 gcd 以及所述 gcd 是否为素数。然而,有...
如何将命令行输入转换为整数并返回? 32 位汇编 GAS 格式
当前程序接受命令行参数并将它们打印到屏幕,使用 gcc 编译。堆栈包含指向接收的参数的地址。我需要转换两个参数,添加 ...
fgets in assembly x86_64 errors when trying to fprint char*
我正在尝试使用 fgets 逐行读取文件。该子例程是从一个 c 测试文件中调用的,其中第一个参数是我试图从中读取的 FILE*。 这是我的代码...
我正在尝试在汇编程序中编写一个函数,该函数以 3 为单位计数,从 1 到 rcx 以 3 计数,最大值为 20
例如,如果参数为 20,则循环应计数 1、4、7、10、13、16、19,然后结束。到目前为止我写的东西会算得上正确,但它不会止于 20。 .globl __Z5counti
我正在尝试将“main”的地址加载到 GNU 汇编器中的寄存器 (R10) 中。我做不到。这是我所拥有的以及我收到的错误消息。 主要的: 主线,%r10 我也试过
我有一些 C++ 代码,我必须确保在退出之前调用特定的析构函数,我想知道它是否在 [[noreturn]] 函数之前被调用。 所以我写了这个模拟...
在x86-64中,当我们要推送堆栈上的东西时,是否总是要做pushq?
因为在x86-64中,16个寄存器都可以是8个字节,在函数调用开始时,当函数(callee)要推送它要使用的callee保存的寄存器(%rbx、%rbp和%r12-15)时,它......。
clang __asm__在case statment中使用标签,得到错误:指令操作数无效。
我正在尝试在C源代码中添加Label(仪器仪表);对汇编有一点经验,comipler是clang;我在CASE语句中的__asm__和Label有一个奇怪的行为!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)。
如何在GNU汇编器中使用字符串文字作为直接操作数(并将其移动到一个地址)?
我的意思是我在NASM中写的东西是这样的: mov dword [0xA0BF17C], ': )' 我在GNU汇编器中试过这样的东西: movd ": )", 0xB8000 movd $": )", 0xB8000 movd ': )', 0xB8000 movd " ...
为什么我不能使用标签代替气体中的.set? .data .globl _start str:.asciz“ Hello world” len:.long 13#如果使用len = 13,没问题.text _start:mov $ 1,%eax mov $ 1,%edi ...
在Visual Studio代码(mac)中是否存在某种可以运行基本程序集的插件,例如:.section .text .globl _start _start:movl $ 1,%eax movl $ 0,%ebx int $ 0x80 .. 。
我正尝试使用Mac工具使jonesforth在最新的MacBook上运行。我开始将所有内容转换为64位,并使用mac汇编程序语法。我有东西要组装...
AT&T语法,x86-64:.text .globl _start _start:推送%rbp / *将基本指针压入堆栈* / mov%rsp,%rbp / *基本指针指向堆栈顶部* / sub $ 12,% ...
请查看以下代码段:int&sum(int&num1,int&num2){num1 ++; num2 ++; } 00000000 :0:55 push%ebp 1:89 e5 ...
假设我有以下汇编行movl $ -1,%edi movl $ 1,%edx我到底存储在%edi /%edx寄存器中的内容是什么。基本上,如果我要将这段代码转换为C程序,我会...
所以每个在线资源都告诉我这样的内容:如果eax大于ebx,则cmp%eax,%ebx jg 会跳到 。但是我还有另一段代码...