堆栈指针

函数的堆栈

叶子函数示例

void test() {
	int a = 10;
	int b = 20;
}

非叶子函数示例

void test() {
	int a = 10;
	int b = 20;
	printf("111");
}

通过终端指令,将c文件转换成汇编代码

新建c文件

void haha() {
    int a = 1;
    int b = 2
}

终端cd到c文件的文件夹,执行指令

xcrun -sdk iphoneos clang -arch arm64 -S CTest.c

生成对应的CTest.s文件

	.section	__TEXT,__text,regular,pure_instructions
	.build_version ios, 12, 0
	.globl	_haha                   ; -- Begin function haha
	.p2align	2
_haha:                                  ; @haha
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #16             ; =16
	.cfi_def_cfa_offset 16
	orr	w8, wzr, #0x2
	orr	w9, wzr, #0x1
	str	w9, [sp, #12]
	str	w8, [sp, #8]
	add	sp, sp, #16             ; =16
	ret
	.cfi_endproc
                                        ; -- End function

.subsections_via_symbols