루프에 대한 어셈블리 코드
#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를 보고 해당 주소로 점프
'reversing > 어셈블리어' 카테고리의 다른 글
조건부 점프 (0) | 2023.04.17 |
---|---|
while 문 (0) | 2023.03.24 |
어셈블리어 명령어 (2) (0) | 2023.03.12 |
함수의 사용 (0) | 2023.03.06 |
어셈블리어 명령어 (1) (0) | 2023.03.04 |
댓글