2011년4월27일..stack(push/pop), queue, 함수 호출(call), ESP, EBP, EIP, ATmega128 Feature, Block Diagram, I/O port, 7-segment
한 2주치는 밀린 것 같다…이러다 월화수목금금금…
STACK에 있는 값들을 알아내기 소스 |
OS | type | name | address |
Linux | int | main :: A | 0xBFFFF848 |
Linux | int | main :: B | 0xBFFFF844 |
Linux | int | test :: A | 0xBFFFF828 |
Linux | int | test :: B | 0xBFFFF824 |
Linux | int | test :: C | 0xBFFFF818 |
Linux | int | test :: D | 0xBFFFF814 |
Windows | int | main :: A | 0x0013FF7C |
Windows | int | main :: B | 0x0013FF78 |
Windows | int | test :: A | 0x0013FF74 |
Windows | int | test :: B | 0x0013FF70 |
Windows | int | test :: C | 0x0013FF64 |
Windows | int | test :: D | 0x0013FF60 |
알아내는 법…과정을 간략히 나열
ⓐ18,19,20,21번지의 값 출력 (C)
ⓑ18번지 – 4 = 14번지
ⓒ14,15,16,17번지의 값 출력(D)
ⓓ18번지 + 4 = 1C번지 (?영역) –> 0xBFFFF84C 가 들어 있군…
ⓔ1C번지 + 4 = 20번지 (?영역) –> 0x08048472 가 들어 있네.. 무엇일까?
1C번지의 (?영역)에 대해…
심재원氏 - 0xBFFFF84C를 꺼낼 때 값이 EBP와 같으니 다음에 꺼낼(pop) 값은 코드영역의 주소..즉, 리턴주소이다.
나도 동의…
(자세한 설명과 도식 추가할 것)
STACK |
(자세한 설명과 도식)
큐 |
(도식과 설명)
STACK Operation |
(도식과 설명추가할것)
(gdb에서 디어셈블리어를 보고 설명)
test전과 후를 해봐야 하는데 일단 급해서 올림;;
ATmega128 spec |