我试图通过更改 brk 将堆大小增加 100,但我不知道为什么我的代码不起作用。
这是尝试执行此操作的代码部分:
movq $0, %rdi
movq $12, %rax
syscall
movq %rax, InicialHeap
movq InicialHeap, %rsi
mov $str, %rdi
call printf
movq $100, %rdi
movq $12, %rax
syscall
movq %rax, %rsi
mov $str, %rdi
call printf
movq InicialHeap, %rdi
movq $12, %rax
syscall
movq InicialHeap, %rsi
mov $str, %rdi
call printf
movq $60, %rax
syscall
程序应该打印类似:
x (print InicialHeap)
x + 100 (print InicialHeap + 100)
x (print InicialHeap)
但它只打印 3 次相同的结果“x”。
我必须做些什么来增加我的堆大小?