각 반복마다 RAX를 감소시키고 있습니다. RAX가 0이면 프로그램이 흐름을 변경해야합니다.cmpq 및 je를 사용할 때 무한 루프
# 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입니다.
무엇이 문제입니까?