풀어서 설명하자면, 현재 어셈블리어로 GRUB의 stage1 파일을 만들고 있습니다.
어셈블리어가 파싱되어 기계어로 바이너리에 들어가겠지요?
근데 기계어를 직접 박아버릴 수 있습니다.
.byte 0xa0나 .word x 처럼요.
기계어로 a0가 들어가고, 매크로에 전달된 (x)의 값이 word 크기만큼
바이너리에 쓰이게 되지요.
나중에 바이너리가 실행되어 저 명령을 처리할 때
a0는 명령으로 다음 값을 'AL 레지스터에 한 바이트 저장해라' 정도의 의미가 될테고,
결국 저 명령 수행 후에는 x에 해당하는 변수값의 한 바이트가 AL 레지스터에 저장되어 있을 것입니다.
--------------------------------------
Go to the U-City
----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------
그냥 기계어 입니다.
mov al, [x]라고 보시면 됩니다.
간단하죠?
우왕 고수시군요 @.@
풀어서 설명하자면, 현재 어셈블리어로 GRUB의 stage1 파일을 만들고 있습니다.
어셈블리어가 파싱되어 기계어로 바이너리에 들어가겠지요?
근데 기계어를 직접 박아버릴 수 있습니다.
.byte 0xa0나 .word x 처럼요.
기계어로 a0가 들어가고, 매크로에 전달된 (x)의 값이 word 크기만큼
바이너리에 쓰이게 되지요.
나중에 바이너리가 실행되어 저 명령을 처리할 때
a0는 명령으로 다음 값을 'AL 레지스터에 한 바이트 저장해라' 정도의 의미가 될테고,
결국 저 명령 수행 후에는 x에 해당하는 변수값의 한 바이트가 AL 레지스터에 저장되어 있을 것입니다.
--------------------------------------
Go to the U-City
----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------
감사합니다.
두분 답변 감사합니다. 이해가 되네요.. 감사합니다.
댓글 달기