-
20140724 (ASM mov, xchg)부산IT학원/스마트컨트롤러 2014. 7. 24. 16:26
109일차
--------------
Assembly
--------------
------- []의미
------- mov 명령어
mov 명령어의 operand에 오는 속성과 정보들이다.
--- 경우 1. operand에 Reg, 상수
prefix byte를 실제로 확인.
--- 경우 2. operand에 Mem, 상수
--- 경우 3. 추가적으로...
------- 문법
mov buf , number
C로 표현하면
=> buf = number;
그런데 위에 mov 옵션을 보면
메모리에서 메모리로 옴겨지는 경우는 없다.
그래서 mov buf , number
이 문법은 틀렸다.
맞는 어셈블리로 짜려면
mov eax , number
mov buf , eax
이렇게 짜야한다.
또,
또,
그래서 INVOKE를 넣어줘야 한다.
(다른 방법이 있다고 하는데 아직 초보 수준에서는 이 정도만...)
------- xchg
C로
buf = number1;
number1 = number2;
number2 = buf;
이런 swap 하는 명령인데
어셈블리로 바꾸면
mov eax , number1
mov ebx , number2
mov ecx , eax
mov eax , ebx
mov ebx , ecx
mov number1 , eax
mov number2 , ebx
이렇게 한다.
중간에 swap을 더 빨리 해 주는 명령어가 xchg 이다.
mov eax , number1
mov ebx , number2
xchg eax , ebx
mov number1 , eax
mov number2 , ebx
이러면 끝.
용량과 속도도 더 빠르다.
--- xchg operand 정보
'부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글
20140728 (add, sub, inc, dec, neg, mul) (0) 2014.07.28 20140725 (Assembly Flags Register) (0) 2014.07.25 20140723 (Assembly 기초, windbg 사용법) (0) 2014.07.23 20140722 (ARM ADC, Assembly 기초, Debug) (0) 2014.07.22 20140721 (ARM adc 소스 작성중, asm) (0) 2014.07.21