LLVM 的llc实用程序可以将 LLVM 位文件编译成汇编文件: 但是,生成的.s文件不能按原样使用 GCC 的汇编程序进行汇编,有 150 多个错误: 作为参考,第 3213 行, llc的 output 的第一行,其中avr-as chokes 是一个.type指令: 但是,由于结果仅来自 ...
LLVM 的llc实用程序可以将 LLVM 位文件编译成汇编文件: 但是,生成的.s文件不能按原样使用 GCC 的汇编程序进行汇编,有 150 多个错误: 作为参考,第 3213 行, llc的 output 的第一行,其中avr-as chokes 是一个.type指令: 但是,由于结果仅来自 ...
问题是我不能强制gnu as将jmp解释为short或near ,它总是将它解释为far 。 例如,以下代码会导致segfault : 切换到注释的.intel_syntax变体,它工作得很好。 唯一的区别是 jmp lbl%=在intel中变为eb 00 尽管 jmp *lbl%=(%%rip) ...
我正在尝试将dd从 NASM(或 MASM)翻译成 GAS。 我在手册中的任何地方都找不到它。 ...
我真的不喜欢 GNU 汇编程序语法,并且我使用 NASM 语法编写的一些现有代码移植起来非常痛苦且耗时。 是否有可能使global_asm!()宏使用 NASM 作为汇编程序或可能使 GAS 使用 NASM 语法? ...
我看过类似的问题,但似乎找不到我的代码有什么问题。 我试图在 MacOS 上进行“写入”系统调用以将字符串打印为标准 output。 我能够完美地使用printf来完成它,并且熟悉在 x64 程序集中调用其他函数。 然而,这是我第一次尝试syscall 。 我正在使用 GCC 的 GAS 汇编器。 ...
我是这里的业余程序员,现在正试图进入 android 电话的汇编程序。 我无法打开磁盘文件。 如果任何了解 aarch64 的 gnu 汇编程序的人可以帮助我,我非常想克服这个障碍。 我正在使用 Termux 应用程序,它是一个类似 Bash 的 shell,安装了 package Binutils ...
我已经使用这些数据设置了 gdt 表 我做mov $16, %eax ; mov %eax, %ds加载带有 GDT 条目的 DS。 现在我更改 gdt_table,或者只是将它设置为零(以打扰它)但不再重新加载%ds 。 这些是我的问题我想知道我是否仍然可以通过%ds访问数据(在我打乱 gdt ...
我学习汇编程序(AT&T)。 我试图编写程序来查找记录中最大字符串的长度。 在与命令链接期间 我有错误 person-data-with-names-pointer.s完整列表 我试图移动标签,但没有任何效果。 :( ...
测试.S 我通过这样做得到了反汇编代码文件 测试文件.txt 我的问题我想知道为什么我得到这样的代码mov %eax,%ds ,它不适合我原来的汇编代码? 为什么 objdump output 矛盾的结果我的期待我希望mov %eax,%ds应该是mov %ax,%ds ,我认为%eax (32 ...
我有一些组装。 我希望它位于 4K 块的末尾。 目前该部分位于 0x1000003C0,我希望它位于 0x100003F80。 我尝试使用p2align但它似乎没有将它放在 4K 块的末尾。 ...
我在 Ubuntu 22.04 x86_64 机器上有一个文件 foo.S,其中包含 ARM 拇指指令。 是否可以使用as from binutils将其转换为 ARM object 文件,或者我是否需要创建交叉编译器工具链? 我试过$ as -mthumb foo.S -o foo.o 但是,我 ...
我正在通过观看一些视频来学习对 i386 的系统核心进行编程。 我知道一些关于进入保护模式的程序: 在.code16文件中,首先我需要打开A20 Address Line并更改CR0寄存器,然后我需要将ljmp转换为.code32代码。 现在我正在研究.code16机器码和.code32机器码之间的 ...
如何扩展宏f x10,x11的用途? gcc -E似乎没有帮助,FWIW。 ...
如果.byte指令的操作数溢出,有没有办法让汇编程序(gas 或 clang)output 出错,而不是警告? 我在 ARM 上特别考虑这样的构造: 它仅在(.L12-.L6)/2等表达式适合 [-128, 255] 时才有效。 有没有办法在组装时检查这个? (也许我可以使用条件指令,但这看起来 ...
目前正在尝试转换此行 到 GNU AS。 我不确定我应该使用什么。 ...
我正在使用 GNU arm-none-eabi 工具链从 Ride7 迁移到 Eclipse CDT。 在我的项目中,我有一个使用 .equ 指令的硬件寄存器描述库,其方式如下: 我想准备一个掩码来清除例如第 30、27、25 和 5 位。 在 Ride7 中使用伪指令没有问题 这会在池中某处生成 ...
我想编译下面的 asm.S 文件 我已经尝试过gcc -m32 asm.S以及gcc -m32 asm.S -fPIC和其他一连串的东西,但我一直遇到错误,例如/usr/include/stdio.h:847: Error: no such instruction: extern void...我做 ...
在.S 汇编代码中,我想编写一个宏,将另一个宏作为“参数”,然后将其应用于多个寄存器。 一个最小的例子是: 但是,当我想编译这个宏时,它不起作用: 有没有办法定义一个宏,将另一个宏应用于某些寄存器? 请注意,对于手头的用例,我必须使用宏并且不能使用 function。 ...
我想将 function 的地址加载到寄存器中。 我编写了以下内联汇编。 内联汇编程序返回错误“错误:未定义的符号 x0 用作立即值”。 这段代码有什么问题? 我在 ubuntu 上使用 ARM GNU 工具链。 目标:在新启动的 AArch64 系统(在 EL2 中)中,我想 go 到 EL1。 ...
我尝试按照 wiki.osdev.org 中关于 GDT 设置的教程进行操作。 我试图将示例代码从 NASM 转换为 GAS 语法,但工具 intel2gas 无法转换我自己尝试的某些行。 我不得不说我对汇编程序了解不多。 这是我来自 boot.S 的代码,我正在使用 GNU-i386-Cross ...