说我有一些通用的x86 NASM代码:
%define Constant 123
mov si, Constant
问题是在编写程序集时尚不知道常量值Constant
。我的意思是,在组装文件时应该提供常量的值。在我的情况下,我需要的常量取决于文本文件的大小。
如何实现这一目标?
答案 0 :(得分:0)
在查看NASM手册后,我发现没有执行我所需要的汇编程序的命令行选项。我的解决方案非常简单。以下脚本显示了我如何解决问题。
#!/bin/sh
# Could be replaced by any other way of getting the constant value; this gets a file's size
fileSize=`stat --printf="%s" my_file.txt`
# Write the constant definition to a temporary file
printf "%%define FILE_SIZE %s\n" $fileSize > tmp
# Append the rest to the temporary file
cat my_asm.asm >> tmp
# Assemble the file and name the output correctly
nasm tmp -o my_asm.out
# Remove the temporary file
rm tmp