안녕하세요 그동안 여기 수준이 너무 높은것 같아 눈팅만 했는데 결국 처음으로 글을 올리게 되는군요 이제 막 커널 공부를 시작하려고 하는데 시작하자마자 막히네요 nasm으로 부트섹터만드는걸 하고있는데 times 510-($-$$) db 0 이런 문장이 있더군요...이게 510번까지 0으로 채우라는 명령이라고 나와있는데 이게 왜이렇게되는지 잘모르겠네요 ㅜㅜ 허접스럽지만 설명좀 해주시면 감사하겠습니다~
times 510-($-$$) db 0
$는 현재 명령이 실행되고 있는 주소이고 $$는 세그먼트의 처음을 나타내는 주소입니다. 그러니까 ($-$$)는 세그먼트의 처음과 현재위치 사이의 차이가 되고 510-($-$$)는 현재 위치부터 510번 까지의 차이가 되는거죠.
결과적으로 그 차이만큼 반복(times) 해서 0을 채워넣는 결과가 됩니다.
웹 검색해 보시면 nasm 설명서가 있을 겁니다.
그책의 챕터 1 뒤장쯤에 그거 설명한 내용있습니다.
짧게 나와서 못보고 지나치신듯
511와 512바이트에 어떤 문자를 넣기 위해서 그렇게 하고 있을 겁니다. 다시 책을 읽어보세요. :-)
- 죠커's blog / HanIRC:#CN
답변 감사드립니다~^^ $$이게 세그먼트의 첫주소를 가리키는거였군요 아무리 책을 찾아봐도 $이게 현주소를 나타낸다는얘기밖에없는것같던데;; 이책으로 nasm도 같이 공부하려고 했는데 아무래도 따로 공부해야할것같군요^^;
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
$-$$
$는 현재 명령이 실행되고 있는 주소이고 $$는 세그먼트의 처음을 나타내는 주소입니다. 그러니까 ($-$$)는 세그먼트의 처음과 현재위치 사이의 차이가 되고 510-($-$$)는 현재 위치부터 510번 까지의 차이가 되는거죠.
결과적으로 그 차이만큼 반복(times) 해서 0을 채워넣는 결과가 됩니다.
웹 검색해 보시면 nasm 설명서가 있을 겁니다.
그책의 챕터 1 뒤장쯤에 그거 설명한 내용있습니다.짧게 나와서 못
그책의 챕터 1 뒤장쯤에 그거 설명한 내용있습니다.
짧게 나와서 못보고 지나치신듯
511와 512바이트에 어떤 문자를 넣기 위해서 그렇게 하고 있을 겁니다
511와 512바이트에 어떤 문자를 넣기 위해서 그렇게 하고 있을 겁니다. 다시 책을 읽어보세요. :-)
- 죠커's blog / HanIRC:#CN
답변 감사드립니다~^^$$이게 세그먼트의 첫주소를 가리키는거였군요
답변 감사드립니다~^^
$$이게 세그먼트의 첫주소를 가리키는거였군요
아무리 책을 찾아봐도 $이게 현주소를 나타낸다는얘기밖에없는것같던데;;
이책으로 nasm도 같이 공부하려고 했는데 아무래도 따로 공부해야할것같군요^^;
댓글 달기