real mode
리얼 주소 모드 또는 호환 모드라고도 한다
80286 이후의 x86 호환 CPU의 운영 방식
최대 1메가바이트의 메모리가 기록될 수 있다
- 리얼모드 에서는 메모리의 절대주소를 계산하여 넣어주어야 부팅시 오류를 줄여 줄 수 있다
메모리 절대주소 계산
- segment register의 주소에 16을 곱한 다음 offset을 더하면 된다
- 예제
Segment 0, offset 0x7CF 0x7CF * 16 = 0x7CF0 0x7CF0 + 0x0F = 0x7CFF
서로 다른 instruction은 다른 segment register을 사용한다
8086 segment register
CS - Code segment
SS - Stack segment
DS - Data segment
ES - Extra segment
"lodsb" 는 DS:SI register combination 을 사용
Org 0
mov ax, 0x7CF
mov ds, ax ; data segment
mov si, 0x1F ; Source Index
lodsb
0x7C0 * 16 = 0x7C00
0x7C00 + 0x1F = 0x7C1F
'kernel_programming' 카테고리의 다른 글
Assembly - 레지스터 (0) | 2022.05.16 |
---|---|
kernel programming setup in mac os (0) | 2022.05.12 |