[시스템] 메모리 주소 지정 방식 종류
어셈블리어에서 메모리 주소를 지정해주는 방식이 다양한 것을 볼 수 있다. 이참에 정리를 해보려 한다.
1. 레지스터 주소 지정 : 레지스터의 주소 값을 직접 지정하여 복사, 가장 빠름
(ex) MOV DX, BX
2. 직접 메모리 주소 지정 : 가장 일반적인 주소 지정 방식
보통 피연산자가 메모리 위치를 참조하고, 다른 하나는 레지스터를 참조함
(ex) MOV AL, DS:[1234h]
MOV DS:[1234h], AL
3. 레지스터 간접 주소 지정 : '세그먼트 : 오프셋' 형식
(ex) MOV AL, [BX]
MOV AL, [BP+20h]
4. 인덱스 주소 지정 : 레지스터 간접 지정 방식에 변위가 더해진 메모리 주소 지정 방식
(ex) MOV AL, [BX+20h]
MOV AL, 20h [BX]
5. 변위를 갖는 베이스 인덱스 주소 지정 : 실제 주소 생성을 위해 (베이스 레지스터, 인덱스 레지스, 변위)를 결합한 피연산자 존재
(ex) MOV AL, [BX+SI+20h]
MOV AL, [BX] [SI] [20h]