일반적으로 프로그래머는 부트 로더의 맨 처음 줄에 레지스터 (때로는 세그먼트)를 고정시켜 주며 일반적으로이를 조언합니다. 예를 들어 :부트시 기본 레지스터 및 세그먼트 값
inc cx
dec bx
inc bp
dec di
xor ax, ax
나는 내가 알고하는 것을 궁금해 : BIOS는 부팅 절차를 수행하는 동안 모든 레지스터을 지 웁니다.
부트 로더에서 레지스터와 세그먼트를 초기화하는 것이 좋은 습관입니까? 그렇다면 기본 레지스터, 세그먼트 및 포인터 값 (어쩌면 칩셋에 따라 다름)은 무엇입니까?
인텔 설명서에서는 CPU의 전원을 켤 때 각 레지스터에 포함되는 값을 지정합니다. 하지만 BIOS가 부트 로더에 손을 놓은 후 상태에 대해 묻는 중입니다. – Nayuki
고맙습니다. @ 나유키. 당신 말이 맞아요. –
부트 로더가 실행될 무렵에는 단 한 가지만 추측 할 수 있습니다 (1980 년대를 제외하고는 호환되지 않는 컴퓨터 제외). 즉, BIOS에 의해 부팅 된 드라이브 번호가 _DL_ 레지스터에 있으므로 플래그 상태, 세그먼트 레지스터 상태 및 범용 레지스터 상태에 대한 가정을하지 않아야합니다. –