코끼리_땃쥐
2023. 3. 6. 14:53
반응형
루프에 대한 어셈블리 코드
#include <stdio.h>
int main(void)
{
int i, n, num;
sum = 0;
for (i = 1; i <= 9; i++)
{
sum += i;
}
return 0;
}
401000 mov dword ptr ss:[esp+48], 0 // sum = 0
401008 mov dword ptr ss:[esp+4c], 1 // i = 1
401010 jmp 40101f // 점프
401012 mov eax, dword ptr ss:[esp+4c] // i 의 값을 eax레지스터에 저장
401016 add dword ptr ss:[esp+48], eax // eax레지스터의 값을 sum 값에 더함
40101A add dword ptr ss:[esp+4c], 1 // i 값을 1 증가 시킴
40101F cmp dword ptr ss:[esp+4c],9 // i 값이 9와 같은지 비교 (ZF가 설정됨)
401024 jle 401012 // ZF를 보고 해당 주소로 점프
반응형