assembly - 如果 gnu 中的文件太大,则程序集失败

标签 assembly gnu-assembler

我正在尝试组装一个二进制文件必须适合特定大小的文件。我一直在尝试查看是否有办法让汇编程序在它太大时失败,以至于我知道。我在想类似的事情:

.if . > 0x200
.error “binary too large”
.endif

但这行不通,因为 if 表达式不是绝对的。我也试过用标签来做,但也没用。有没有办法使用指令或在 as 中执行此操作?

最佳答案

显然,如果您将当前地址设置为小于应有的值,则汇编将失败。所以用

结束文件
. = 0x200

导致 as 在文件大于该文件时抛出错误。

编辑:正如@fuz 所指出的,这会将文件填充到该大小,如果这对您来说是个问题,我没有答案。

关于assembly - 如果 gnu 中的文件太大,则程序集失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58156024/

相关文章:

c - 为什么 GCC 在堆栈上分配的空间超出了必要的空间,超出了对齐所需的空间?

Linux try_cmpxchg神秘的内联汇编

assembly - Nasm 中需要 while 循环的示例

c - 在 BIOS 级程序集中读取输入?

gcc - 有没有办法在 gnu 汇编常量中使用数学表达式?

linux - 为什么不出现浮点异常?

ubuntu - 建筑琼斯福斯 - asm/unistd.h : No such file or directory

c - GCC:禁止使用某些寄存器

assembly - GNU GAS 汇编中是否有代表当前地址的符号?

assembly - `mov' 的指令后缀无效(movw %ax、%ebx)