최근 메신저 학습, 여기에 내가 배우고 전체 코드입니다 뭐죠 : 부팅하는 방법을 알고있는 경우어셈블리 "조직 XXXX"의 사용은
org 07c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db "Hello, OS!"
times 510-($-$$) db 0
dw 0xaa55
매우 간단한 코드 시스템. 결과는 화면에 표시되는 Hello OS!
이라는 줄입니다. 제가 알지 못하는 유일한 것은 첫 줄입니다 : org 07c00h
,이 책은 코드 줄을 사용하여 컴파일러가 7c00h 자리에 주소를 찾을 수있게했지만 설명은 다음과 같습니다. 매우 애매한, 그리고 난 정말 모르겠다 여기에 그것의 사용은 뭐죠. 무슨 intheworld 라인 org 07c00h
여기합니까? 나는 그 줄을 지우려고하고, nasm을 사용하여 bin
파일을 만든 다음 bochs를 사용하여 bin 파일을 부팅합니다. 이전 버전과 다른 점은 없습니다 : "안녕하세요 OS!" 너무 화면에 표시됩니다. 첫 번째 라인이 아무것도하지 않는다고 말할 수 있을까요? intheworld org xxxx
의 용도는 무엇입니까?
정확하게 책의 내용을 의미합니다. 이해가되지 않는다면 기본 사항을 다시 검토해야합니다. 특히 메모리가 어떻게 작동하는지 이해해야합니다. –
[nasm manual] (http://www.nasm.us/doc/nasmdoc7.html#section-7.1.1)은 "ORG 지시문의 기능은 NASM이 프로그램이 메모리에로드 될 때 시작됩니다. " 나는. 어셈블러가 독자적으로 알아낼 수없는 무언가를 말하고 있습니다. 프로그램의 어떤 주소에로드 될 것입니다. – user786653
@ 칼 : 그리고 처음에는 도움이되고 친절한 것이 무엇인지 이해하고, 사람들로 하여금 열 받게하는 대신에 그들을 계몽하게하는 방법에 대해 이해해야합니다. – SasQ