어셈블리어 - ADD,SUB 함수
ADD ... SUB ??
이함수는 정말 쉽습니다.
함수의 이름대로 더하고 빼는 역활을 합니다.
ADD
예제 : ADD 인자1,인자2
인자2를 인자1와 더해 나온 값을 인자1에 넣는 명령어 입니다.
인자1 + 인자2 =(삽입)=> 인자1
말이 필요없이 다른 예제를 보여드리겠습니다.
EAX엔 10이 들어있습니다.
ADD EAX,50
명령어를 실행 시키면 EAX엔 무슨 값이 들어가 있을까요?
네! 맞습니다 EAX(10) + 50 =(삽입)=> EAX
답은 60입니다~
SUB
예제 : SUB 인자1,인자2
인자2를 인자1에 빼서 나온 값을 인자1에 넣는 명령어입니다.
ADD명령어와 비슷하지만 더하기,빼기의 유일 차이점이 있습니다.
인자1 - 인자2 =(삽입)=> 인자1
예제
EAX엔 15000이 들어있습니다.
SUB EAX,5000
이 명령어를 실행 시키면 EAX엔 무슨 값이 들어가 있을까요?
비밀 댓글로 달아주세요~ ㅋㅋㅋ
맞추시는분들껜 사은품은... 없지만 작은 축하의 말을 해드릴게요 ㅋㅋ
이해하기 쉽죠??..그렇겠죠? 그럴거에요 여러분들은 똑똑하시니..
'어셈블리어' 카테고리의 다른 글
어셈블리어 - CALL,CMP,JMP 함수 (1) | 2013.08.27 |
---|---|
어셈블리어 - INC,DEC,NOP (3) | 2013.08.27 |
어셈블리어 - MOV,LEA 명령어 (1) | 2013.08.27 |
어셈블리어 - 레지스터* (0) | 2013.08.27 |
어셈블리어 - 어셈블리의 명령어 방식은? (0) | 2013.08.26 |
어셈블리어 - MOV,LEA 명령어
MOV , LEA 명령어란?
자 이제 본격적인 함수 명령어 공부에 들어갈텐데요.
공부하기 전에 이 명령어들은 컴퓨터가 우리 명령을 알아 들을 수 있도록 해주는 것이라는건
명심해야합니다. 간혹 내가왜 이런걸 공부하고 있지? 라시는분들도 계시기때문에..
MOV
└MOVE 의 줌말
예제 : mov 인자1,인자2
인자2를 인자1으로 값을 넣는 일을 하는 명령어입니다.
레지스터 EAX로 예를 들어본다면
mov eax,100
은 100을 eax 저장공간에 값을 넣는다는 뜻이 됩니다.
그럼 eax엔 100의 값이 저장되있습니다.
주의할 점은 인자하나만으론 이 함수 사용이 안된다는것이고
인자1,2 가 모두 숫자로 이루어 져있으면 안됩니다.
대신 인자1,2에 모두 레지스터로 이루어 져있다면 괜찮습니다.
LEA
예제 : lea 인자1,인자2
인자2를 인자1으로 주소를 넣는 일을 하는 명령어입니다.
레지스터 EAX,ESI로 예를 들어본다면
lea eax, dword ptr ds:[esi]
은 esi를 eax 저장공간에 주소를 넣는것입니다.
그럼 eax엔 esi의 주소가 저장되있습니다.
둘의 차이점을 확실히 아셔야합니다.
많이들 해깔려하시더라구요.
'어셈블리어' 카테고리의 다른 글
어셈블리어 - INC,DEC,NOP (3) | 2013.08.27 |
---|---|
어셈블리어 - ADD,SUB 함수 (1) | 2013.08.27 |
어셈블리어 - 레지스터* (0) | 2013.08.27 |
어셈블리어 - 어셈블리의 명령어 방식은? (0) | 2013.08.26 |
어셈블리어 - 어셈블리언어가 뭐죠? (0) | 2013.08.25 |
어셈블리어 - 레지스터*
레지스터가 뭐죠?
레 지스터 뒤에 * 표시를 한 건 그만큼 중요하단 뜻입니다!
레지스터는 저장공간입니다.
C/C++ 에서는 변수와 같은역활을 하며 메모리에서 연산을 할 때 사용합니다.
기억장치들 중 속도가 가장 빠르며 사용이 편리하지만 이름은 정해져있습니다.
레지스터도 각각의 용도에따라 나뉘어져있는데요.
그 종류를 알아볼거에요
EA(Accumulator)X
흔히 계산용도(사칙연산)로 쓰입니다.
계산할 땐 이 변수를 가장 많이 자주 쓰죠
ED(Data)X
이것도 EAX와 같은 연산으로 쓰입니다.
EAX를 쓰고있어서 부족할 때 땜빵,덤(?) 으로 쓰인다고 합니닼
EC(Count)X
루프문 반복문 을 사용할 때 카운팅의 역활을 한다고 합니다.
C언어로 예를 들어보면 for문에서 변수 i(Index) 의 역활을 하죠.
하지만 카운팅을 하지않을 땐 EAX EDX 처럼 보통 저장공간으로 연산으로
사용해도 무방하다고 합니다.
EBX
이 레지스터도 별거 없어요 ㅋㅋ
카운트 레지스터(ECX)처럼 특정 목적을 가진게 아니라서
연산으로 사용해도 되고 공간이 좀더 필요할때 사용해도 된답니다~
ESI,EDI
이건 약간 이해가 안가시겠지만 그래도 변수라고 생각하시면 쉽습니다.
다만 EAX~EDX는 주로 연산에 사용되지만
ESI는 문자열이나 반복 데이터 처리, 메모리옮기는데 사용됩니다.
"ESI는 시작지 인덱스"
"EDI는 목적지 인덱스 "
이 말이 재대로 축약된 말인거같습니다.
이처럼 어려운게 전혀 없게 설명을 해놨지만 놓친 부분이 있을 수도 있습니다.
그래도 이 정도로 이해만 했다면 충분히 알고 있는거라고 말할 수 있습니다 ^^
'어셈블리어' 카테고리의 다른 글
어셈블리어 - INC,DEC,NOP (3) | 2013.08.27 |
---|---|
어셈블리어 - ADD,SUB 함수 (1) | 2013.08.27 |
어셈블리어 - MOV,LEA 명령어 (1) | 2013.08.27 |
어셈블리어 - 어셈블리의 명령어 방식은? (0) | 2013.08.26 |
어셈블리어 - 어셈블리언어가 뭐죠? (0) | 2013.08.25 |