>> Delete Reply from No. 0 article
No. RE: RE: RE: 제 무식을 드러낸듯 ㅡㅡ;

등록 2002-03-11 00:10:00 By localhost     조회 1
이름 박해우    

한참 덧글 달고 있었는데 .. ^^;
금세 고치셨네요 .. ^^;;;
여튼 잘 해결(?)되신듯 하여 다행이고요 ..
 열심히 분석하셔서 os공부하는 저같은 이들한테 ..
많이 도움 주셨으면 .. ;;
( 이번 학기 커리큘럼이군요 .. -_-; NachOS )
 참고로 boot.s 는 별 내용은 없었던 것으로 기억하고요 ..
( 0.0.1 에서 이것만 분석해봤죠 이파일 달랑 .. -_- )
pic칩하고 protected mode들어가는 부분만 ..
확인하시면 될것 같습니다 ..
그럼 .. ^^
  : 바보처럼..zf가 값이 0일때 1이 된다는 그 사실을
: 까먹은거 같습니다..
: 흐...커널분석을 떠나 어셈부터 새로하는게 ㅡ_ㅡ
:
: :
: : test명령은 내부적으로 and명령과 마찬가지거든요.
: : ( cmp명령은 내부적으로 sub명령과 마찬가지죠. )
: :
: : 0fffh와 and해서 0이 나와야 아래로 내려가는겁니다.
: : 한마디로 ax가 0000h, 1000h, 2000h, .. 이런 경우만 통과죠.
: : 말 그대로 64K 경계에 있나 테스트하는거라고 이해하시면 될듯합니다.
: :
: :
: : : 짐 리눅스 커널 0.01 분석하는데요
: : :
: : : boot.s파일에서
: : :
: : : | we want to load the system (at 0x10000)
: : :
: : : 	mov	ax,#SYSSEG
: : : 	mov	es,ax		| segment of 0x010000
: : : 	call	read_it
: : : 	call	kill_motor
: : : 여기서 call read_it를 했을때요
: : :
: : :
: : : read_it:
: : : 	mov ax,es
: : : 	test ax,#0x0fff
: : : die:	jne die			| es must be at 64kB boundary
: : : 	xor bx,bx		| bx is starting address within segment
: : : rp_read:
: : : ~~~~~~~~~~~~중략~~~~~~~~~~~~~~~~~~
: : :
: : : read_it: 및에 mov ax,es를 해서 ax에 0x1000이 들어가는거까지
: : : 알겠는데 왜 밑에서 test ax,#0xfff를 하는지 모르겠더라구요
: : : 바로 밑 라인 보시면 아실듯 ax가 0xfff와 같지 않다면
: : : 무조건 무한루프인데...흐 ㅡㅡ;
: : : 고수님들의 가르침 부탁드리겠습니다. 꾸벅^^
: : :
: : : --
: : : Real Freedom
: :
: : --
: : The more pure, the more fragile ..
:
: --
: Real Freedom--The more pure, the more fragile ..
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved