어셈블리어에서 메모리 주소를 지정해주는 방식이 다양한 것을 볼 수 있다. 이참에 정리를 해보려 한다.
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]
'학교 공부 > 시스템' 카테고리의 다른 글
[AWS] EC2 인스턴스 생성 및 환경설정 (0) | 2021.11.03 |
---|---|
[도커 #2] 도커 이미지(docker image)란? (1) | 2021.07.28 |
[시스템] x86 시스템, 메모리 접근 모드와 동작 (0) | 2021.03.17 |
[시스템] x86 시스템, 레지스터 종류 정리(핵심/간단) (0) | 2021.03.17 |
[도커 #1] 도커란? (0) | 2020.08.31 |
댓글