목록2018/08 (6)
GaGe
offset을 이용하여 메모리 공간을 접근하는 방법을 알아보겠다. offset이란 기준점에서 얼만큼 떨어져있는 메모리의 값을 지칭할 때 쓰는 단어다. (변위차를 나타내는 정수형) 보통 메모리에서 쓰인다. 이렇게 명령어를 적으면 기준점인 ebx 402000에서부터 1, 2, 3, 4먼큼 차례로 커지며 그 자리에 1, 2, 3, 4를 저장한다. 결과를 보면 402000에 0, 402001에 1, 402002에 2 ... 가 저장되어있다. 그렇다면 이 명령어의 결과는 무엇일까? 402000에서부터 ecx만큼을 더한 주소, 처음에 ecx가 0이니까 402000, inc로 ecx가 1이 올라서 402002, inc로 ecx가 또 1이 증가해서 402002를 가리키게 될 것이다. 결과를 확인해보면 402000에 0..
본가에서 와이파이가 고장난 관계로 핸드폰으로 직접 찍어 올립니다.... 서울 가는대로 원본으로 바꿔 올리겠습니다ㅠㅠ 메모리의 간접참조란 C언어를 한 사람이라면 쉬울 것 같다. 포인터의 개념과 비슷하다. [402000]에 402004를 넣고 EAX에 [402000]을 넣고 [EAX]에 4를 넣는다. 이 명령어를 총합하면 결과는 402004에 4 값이 들어가게 된다. 이 내용이 EAX 레지스터를 이용한 메모리 주소 간접참조 강의 내용의 전부이다. EAX에 402000을 넣고 [EAX]에 10을 넣으면 [402000]에 10 값이 들어가게 되는 명령이자 결과이다! 그렇다면 이 명령을 실행하면 어떻게 될까? 402000메모리에 402004이라는 16진수를 넣고 eax레지스터에 402000메모리에 있는 값을 넣어..