29. 플레그 레지스터(EFLAGS)
• CF (Carry Flag) - 산술 연산을 할 때, 자리올림이나
자리 내림할때 set(1) 된다.
• PF (Parity Flag) - 산술 연산을 할 때, 하위 1byte중
1bit가 짝수개면 set(1) 그렇지않으면 clear(0) 된다
• ZF (Zero Flag) - 산술 연산결과가 0이면 set(1) 된다.
제어문에서 많이 사용한다.
• SF (Sign Flag) - 최상위 bit(MSB)의 결과와 같은 결
과로 set(1) 또는 clear(0) 된다
• OF (Overflow Flag) - 연산결과가 Overflow가 될때
set(1)된다.
54. 예제(인자없는,리턴값 없는 함수)
스택
main함수를 호출한
함수의 EBP값
main함수를 호출한
함수로 복귀할 주소값
0x0018ff44 ESP
MOV EBP,ESP 실행
//main함수의 스택프레임 생성
EBP
55. 예제(인자없는,리턴값 없는 함수)
스택
fucntion 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함
수의 EBP값
main함수를 호출한 함
수로 복귀할 주소값
0x0018ff40 ESP
CALL function 실행
EBP
56. 예제(인자없는,리턴값 없는 함수)
스택
function 함수를 호출한
함수의 EBP 값
fucntion 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함
수의 EBP값
main함수를 호출한 함
수로 복귀할 주소값
0x0018ff3C ESP
PUSH EBP 실행
EBP
57. 예제(인자없는,리턴값 없는 함수)
스택
function 함수를 호출한
함수의 EBP 값
fucntion 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함
수의 EBP값
main함수를 호출한 함
수로 복귀할 주소값
0x0018ff3C ESP
MOV EBP,ESP 실행
//funtion 함수의 스택프레임 생성
EBP
58. 예제(인자없는,리턴값 없는 함수)
스택
function 함수를 호출한 함수의 EBP
값
fucntion 함수를 호출한 함수로 복귀
할 주소값
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할
주소값
0x0018ff34 ESP
SUB ESP,8 실행
//function 함수의 지역변수 공간 마련
EBP
59. 예제(인자없는,리턴값 없는 함수)
스택
1
function 함수를 호출한 함수의 EBP
값
fucntion 함수를 호출한 함수로 복귀
할 주소값
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할
주소값
0x0018ff34 ESP
MOV DWORD PTR SS:[EBP-4],1 실행
EBP
60. 예제(인자없는,리턴값 없는 함수)
스택
2
1
function 함수를 호출한 함수의 EBP
값
fucntion 함수를 호출한 함수로 복귀
할 주소값
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할
주소값
0x0018ff34 ESP
MOV DWORD PTR SS:[EBP-8],2 실행
EBP
61. 예제(인자없는,리턴값 없는 함수)
스택
2
1
function 함수를 호출한 함수의 EBP
값
fucntion 함수를 호출한 함수로 복귀
할 주소값
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할
주소값
0x0018ff3C ESP
MOV ESP,EBP 실행
//function 함수 스택프레임 해제 과정
EBP
62. 예제(인자없는,리턴값 없는 함수)
스택
2
1
function 함수를 호출한 함수의 EBP
값
fucntion 함수를 호출한 함수로 복귀
할 주소값
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할
주소값
0x0018ff40 ESP
POP ESP 실행
//function 함수 스택프레임 해제 과정2
EBP
63. 예제(인자없는,리턴값 없는 함수)
스택
2
1
function 함수를 호출한 함수의 EBP
값
fucntion 함수를 호출한 함수로 복귀
할 주소값
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할
주소값
0x0018ff40 ESP
RET(RETN) 실행
//function 함수 종료
EBP
64. 인자값을 넘겨 함수를 호출 할 때
• 어셈블리어에선 인자값을 PUSH로 넘겨준
다.
• PUSH를 넘겨줄 때 C언어의 순서와 반대로
넘겨준다
• EBP를 기준으로해서 인자값을 사용 할 수
있다.
71. 예제(인자값 있고,리턴값 없는함수)
스택
fucntion 함수를 호출한
함수로 복귀할 주소값
1
2
main함수를 호출한 함수
의 EBP값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff28 ESP
CALL function실행
//인자값 전달
EBP
72. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
1
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff24 ESP
PUSH EBP 실행
EBP
73. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
1
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff24 ESP
MOV EBP,ESP 실행
//function 함수의 스택프레임 생성
EBP
74. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
1
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff24 ESP
MOV EAX,DWORD PTR SS:[EBP+C] 실행
//EAX = 2
EBP
75. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
1
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff24 ESP
ADD EAX,1 실행
//EAX = 3
EBP
76. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
3
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff24 ESP
MOV DWORD PTR SS:[EBP+8],EAX 실행
//EAX = 3
EBP
77. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
3
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff28 ESP
POP EBP 실행
//function 함수 스택프레임 해제 과정1
EBP
78. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
3
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff2C ESP
RET(RETN) 실행
EBP
79. 예제(인자값 있고,리턴값 없는함수)
스택
function 함수를 호출한 함수의 EBP 값
fucntion 함수를 호출한 함수로 복귀할
주소값
3
2
main함수를 호출한 함수의 EBP값
main함수를 호출한 함수로 복귀할 주소
값
0x0018ff34 ESP
ADD ESP,8 실행
//인자값으로 넘길때 사용한 스택 정리
EBP
83. 예제(Return 값이 있는 함수)
스택
main함수를 호출한 함
수로 복귀할 주소값
0x0018ff48 ESP
84. 예제(Return 값이 있는 함수)
스택
main함수를 호출한 함
수의 EBP 값
main함수를 호출한 함
수로 복귀할 주소값
0x0018ff44 ESP
PUSH EBP 실행
85. 예제(Return 값이 있는 함수)
스택
main함수를 호출한 함
수의 EBP 값
main함수를 호출한 함
수로 복귀할 주소값
0x0018ff44 ESP
MOV EBP,ESP 실행
//main 함수의 스택프레임 생성
EBP
86. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff40 ESP
CALL function 실행
EBP
87. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수의 EBP값
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff3C ESP
PUSH EBP 실행
EBP
88. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수의 EBP값
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff3C ESP
MOV EBP,ESP 실행
//function 함수의 스택프레임 생성
EBP
89. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수의 EBP값
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff3C ESP
MOV EAX,5 실행
//리턴값 저장 --> C에서 return 5; 부분
EBP
90. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수의 EBP값
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff40 ESP
POP EBP
//function 함수 스택프레임 해제 과정1
EBP
91. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수의 EBP값
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff44 ESP
RET(RETN) 실행
EBP
92. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수의 EBP값
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff44 ESP
XOR EAX,EAX 실행
//main 함수의 리턴값 저장 --> C에서 return 0; 부분
EBP
93. 예제(Return 값이 있는 함수)
스택
function 함수를 호출한
함수의 EBP값
function 함수를 호출한
함수로 복귀할 주소값
main함수를 호출한 함수
의 EBP 값
main함수를 호출한 함수
로 복귀할 주소값
0x0018ff48 ESP
POP EBP실행
//main 함수의 스택프레임 해제 과정