while 문 코드
int main(int argc, char *argv())
{
int i = 0;
while (i<8)
{
printf("%d",i);
i ++;
}
return 0;
}
어셈블리 언어의 while 문
| 00401000 | 55 | 누르다 | EBP |
| 00401001 | 8b 등 | 움직임 | EBP, ESP |
| 00401003 | 51 | 누르다 | ECX |
| 00401004 | c7 45fc | 움직임 | dword ptr(EBP+local_8), 0x0 |
| 0040100b | 83 7d FC 08 | CMP | dword ptr (EBP+local_8), 0x8: “비교” |
| 0040100f | 7일 1시 | JGE | 0040102d: “보다 크거나 같으면 점프” |
| 00401011 | 8b 45fc | 움직임 | EAX, dword ptr(EBP + local_8) |
| 00401014 | 50 | 누르다 | EAX |
| 00401015 | 68 00 90 | 누르다 | DAT_00419000 |
| 0040101a | e8 61 00 | 경제적 지원 | “호출 인쇄 기능” |
| 0040101f | 83 c4 08 | 추가 | ESP, 0x8 |
| 00401022 | 8b 4d FC | 움직임 | ECX, dword ptr(EBP + local_8) |
| 00401025 | 83 c1 01 | 추가 | ECX, 0x1 |
| 00401028 | 89 4d FC | 움직임 | dword ptr(EBP+local_8), ECX |
| 0040102b | 엡 데 | JMP | 0040100b: “비교문으로 이동” |
| 0040102d | 33c0 | XOR | EAX, EAX |
| 0040102f | 8b e5 | 움직임 | ESP, EBP |
| 00401031 | 5d | 팝 | EBP |
| 00401032 | c3 | RET |