카테고리 없음

[어셈블리 언어] ADD 명령어 ( ↔ SUB )

EARTH K 2016. 8. 31. 15:26

※ ADD  ( ↔ SUB )


:  첫번째 operand의 값을 두번째 operand의 값과 +연산하여 그 결과를 다시

첫번째 operand의 메모리 공간에 저장한다.

따라서 첫번째 operand는 저장할 수 있는 공간인 reg 혹은 mem이 되어야 한다.



ADD reg, reg                      ex) ADD EAX, EBX

ADD reg, mem                    ex) ADD EAX, [EBP-0x04]

ADD mem, reg                    ex) ADD [EBP-0x04], EAX

ADD reg, imm                     ex) ADD EAX, 0x0A

ADD mem, imm                   ex) ADD [EBP-0x0C], 0x0A




[그림 1] 소스코드와 그 실행 결과



위 소스코드에서 main함수의 스택 프레임을 그림으로 표현하면 다음과 같다.


[그림 2] main함수의 스택 프레임



 어셈블리 언어에서의 ADD a, 0x0A 은

C 언어에서의 a = a+10; 와 같다고 볼 수 있다.