카테고리 없음
[어셈블리 언어] 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; 와 같다고 볼 수 있다.