2016-08-24 49 views
0

有没有办法在Apple的汇编程序中多次重复同一系列的字节?在Apple程序集中重复字节?

示例用例:如果我想在某些函数中创建一个具有千兆字节NOP指令的iPhone应用程序。

+0

@JoseManuelAbarcaRodríguez这不是我所问的。 –

+0

举例来说,这可能是为了测试应用程序大小如何影响各种性能指标。 –

+0

我的问题很好地解释了我想达到的目标。你不相信我有很好的实现它的动机。我给了你几个可能的一个。 –

回答

3

您可以使用.fill

.fill 69, 4, 0xfeadface
生成69名多头值0xfeadface的

.space

ten_ones: .space 10, 1

仅处理字节时。

我找不到NASM TIMES的等价物,它可以让你重复甚至指示。

你可以尝试使用递归宏来实现这一点;我无法访问Apple汇编程序,因此我只能勾画出一个可能的宏。
当处理(假定)有限的语言(如用于宏的语言)时,请小心语法问题,表达性和参数转发。

.macro TIMES 
.if $0 > 0 
    $1 
    var $0-1 $1 
.endif 
.endmacro 

TIMES 100, mov 
+1

气体手册有一个[使用递归宏来生成任何你想要的可变长度块的例子](https://sourceware.org/binutils/docs/as/Macro.html)。该块可以很容易地被指令而不是'.long'或'.byte'。假设Apple的汇编程序使用与GNU''相同的宏语言/指令,这应该起作用。 –

+0

非常好!谢谢! –

+0

顺便说一句,不能专门做指示是好的。我可以重复指令的十六进制格式。 –