Hello World 부트 로더에이 코드를 사용하고 있습니다. "Hello world \ n"을 출력하는 대신 'H'를 출력하고 멈 춥니 다. 내가 부하를 인쇄 메시지를 성공적으로 사용했지만이 방법은 동등한 것으로 작동하지 않습니다 이유를 이해할 수 없습니다. 첫 번째 문자 뒤에 Hello World 부트 로더가 걸려 있습니다.
[ORG 0x7c00]
[BITS 16]
xor ax, ax ;make it zero
mov ds, ax
mov ecx, msg
bios_print:
mov al, [ecx]
add ecx,1
cmp al, 0 ;zero=end of str
je hang ;get out
cmp al,100
jge hang
mov ah, 0x0E
int 0x10
jmp bios_print
hang:
jmp hang
msg db 'Hello World', 13, 10, 0
times 510-($-$$) db 0
db 0x55
db 0xAA
편집
: 난에 [BITS (64)]를 변경 프로그램이 당신이 그것을 코딩 한 방식으로 정확하게 작동하고
왜 컴퓨터를 시작할 때'[BITS 64] '를 사용하여 컴퓨터를 시작할 때 16 비트 모드입니까? – Earlz