Assembly 4

mov와 lea 명령어 차이

mov는 좌변에 우변(혹은 상수)의 값을 입력하는 것이다. lea는 좌변(레지스터만 가능)에 우변의 주소값을 입력하는 것이다. mov eax, dword ptr ss:[ebp-4]; 위의 경우 eax는 ebp-4 메모리 주소에 있는 4바이트(dword)값이 입력될 것이다. 참고로 dword ptr ss:[ebp-4];에서 [주소]는 주소에 존재하는 값을 의미한다. dword ptr에 의해 4바이트 의 값을 읽어들인다. word ptr이면 2바이트, byte ptr이면 1바이트를 읽어들인다. mov는 값을 입력하는 것이므로 mov eax, 12345(상수) 문장은 당연히 성립가능하다. mov dword ptr ss:[esp-4], 12345; mov dword ptr ds:[0x00560033], 1234..

Assembly 2011.02.27

펌) 어셈 스트링과 배열 및 어셈으로 메모리 카피

[전광성의 어셈블리어 이해하기:9회] 스트링과 배열 | System Programming 2006.05.10 09:48 달무리(kspacepro) 카페 매니저 http://cafe.naver.com/devcore/156 1 .0 스트링관련 인스트럭션들, REP 접두어, 방향 플래그(Direction Flag) 시작하기에 앞서... 이번 회에서는 스트링과 배열을 다룰 때 쓰는 인스트럭션들과 이차원 배열을 사용하는 방법, 문자열 소팅함수를 만드는 방법에 대해 배울 것이다. 또한 본 회의 내용을 이용하면 스트링과 배열 처리를 고급언어를 이용하는 것 보다 훨씬 빠르게 할 수 있다. 어셈블리어에서는 스트링을 다루는 데 이용될 수 있는 좀더 편리한 인스트럭션들이 제공되기 때문이다.(엄밀히 말하면 CPU가 제공하는 ..

Assembly 2009.08.16

(펌)기계어 어셈블리어(Assembler)와 mmx, fpu 활용한 빠른(fast) memcpy 소스코드를 작성해봅니다.

기계어 어셈블리어(Assembler)와 mmx, fpu 활용한 빠른(fast) memcpy 소스코드를 작성해봅니다. 개발 일지 2002/12/29 어셈을 이용하여 memcpy 제작함 mmx 와 fpu 의 속도에 의심이 들어 관련 자료 찾아봄 과연 mmx 기술은 언제 어느 상황에서 사용할 수 있는 것인가...... 아래와 같은 글이 사실이라면 대용량 복사작업을 제외하면 사용할 수 있는 곳은 거의 없다고 판단됨...... MMX는 FPU 레지스터를 이용하는 것인데 FPU를 안 쓴다니 무슨 뜻인지 모르겠습니다. 매뉴얼을 좀더 자세히 읽어보시길 바랍니다. 그리고 emms 명령이 100클럭이 소요된다는 근거는 어디에 있는 것인가요? 물론 수 킬로 바이트 정도의 작은 데이터를 복사하는데 MMX나 SSE를 쓰는 것은..

Assembly 2009.08.16

어셈 명령어 정리

어셈 명령어 1.어셈블리어 Push : sp 레지스터를 조작하는 명령어중의 하나이다. 스택에 데이터를 저장하는데 쓰인다. ex:) Push eax : 스택에 Eax의 값을 스택에 저장한다. ex:) Push 20 :즉석값인 20을 스택에 저장한다. ex:) Push 401F47 : 메모리 오프셋 401F47의 값을 스택에 저장한다. Pop : 이또한 sp 레지스터를 조작하는 명령어중 하나이다. 스택에서 데이터를 꺼내는데 쓰인다. ex:) Pop eax :스택에 가장 상위에 있는 값을 꺼내애서 eax에 저장한다. 주의점 : Push 의 역순으로 값은 스택에서 Pop 된다. Mov : 메모리나 레지스터의 값을 옮길 때[로 만들 때]쓰인다. ex:) Mov eax,ebx :ebx 레지스터의 값을 eax로 옮긴..

Assembly 2009.08.16