我在每次迭代中递减 RAX。如果 RAX 为零,则程序应更改流程。
# AT&T syntax
start_calc_factorial:
decq %rax
cmpq $0, %rax
je quit_calc_factorial
mulq %rcx
jmp start_calc_factorial
但是,程序永远不会终止。调试器告诉我 RAX 的值为0xa0257c7238581842
(它可能下溢,但不应该因为je
指令)。RAX 的初始值为 7。
可能是什么问题呢?