NASM 설치

Programming/OS Development 2009. 11. 22. 21:49

nasm.sourceforge.net 에서 다운 받던지 아니면 아래의 파일을 다운 받도록 하자.


압축을 풀고 이를 d:\nasm 에 옮기도록 하자. 그리고 환경변수를 등록하면 된다.

위와 같이 등록을 하고 난 뒤에 cmd 에서 nasm을 입력하면 아래와 같이 뜨게 되면 제대로 설정이 된 것이다.


이제 컴파일 해보도록 하자.

'Programming > OS Development' 카테고리의 다른 글

TSS( Task Statement Segment )  (0) 2009.11.29
Makefile 만들기  (0) 2009.11.22
djgpp 설치  (0) 2009.11.22
DMA & PIO  (0) 2009.09.23
클러스터( Cluster )  (0) 2009.09.23

설정

트랙백

댓글

NASM - 3

Programming/OS Development 2009. 6. 29. 17:09
21. LTR
     -> CPU의 TR register에 TSS 디스크립터의 Selector 값을 넣는 명령어. TSS 디스크립터의 B bit를 1로 Set

22. SHR
     -> Right shift. ex ) shr eax, 16 : eax를 16비트 만큼 오른쪽으로 shift.

23. POPAD <-> PUSHAD
     -> 범용 레지스터들을 Pop한다. pop EDI, ESI, EBP, (ESP), EBX, EDX, ECX, and EAX. 단, ESP 는 무시하고 Skip을 한다.

24. TIMES
     -> 반복 명령어. ex ) times 63 dd 0 : dd 0 명령어를 63번 반복 수행한다.

25. HLT( HaLT )
     -> 하드웨어 인터럽트가 CPU를 동작시킬 때까지 CPU를 정지시킨다.

26. EQU
    -> C/C++ 에서의 #define 와 같은 단순 대치 매크로 입니다.
        ex ) FLAG EQU 0xB2    = #include FLAG 0xB2

'Programming > OS Development' 카테고리의 다른 글

RGB 256 Color 색상표  (0) 2009.08.03
RGB 색상 코드 표  (2) 2009.07.19
NASM - 2  (0) 2009.06.29
VGA 관련  (0) 2009.06.19
하드 디스크 드라이버 ( Hard Disk Driver )  (0) 2009.05.29

설정

트랙백

댓글

NASM - 2

Programming/OS Development 2009. 6. 29. 17:03
11. jc
    -> jc read : 에러가 나면 다시 read로 가서 수행.
                     CF bit의 Set 여부 체크. Set 되어 있을 경우 Read 로 점프 하여 다시 디스크를 읽는다.

12. call
      -> call printf : printf 함수 호출

13. xor
     -> xor ax, ax : 같은걸 xor하면 0으로 만들어짐.  다르면 1, 같으면 0 으로 셋팅.
 
14. or
     -> or  :  같은 것을 or하면 같은 값 나옴.
 
15. ret
     -> 함수 호출 한 부분으로 돌아가기. Stack의 최상위 부분의 return 값으로 돌아간다.
     iret ( Interrupt return ) 16-bit operand size / iretd : 32-bit / iretq : 64-bit
     -> 예외나 인터럽트 핸들러 로 부터 복귀 할 때 사용하는 명령어. or nested task 로 부터 돌아오는 명령어( call 명령어에 의해 nested task 발생 - Task Switching 시에 NT 비트가 1로 Set )

16. lea
     -> lea esi, [msgKernel] : msgKernel 문자열이 있는 곳의 주소를 구한다.

17. cli <-> sti
     -> EFLAGS Register 의 IF( interrupt flag ) 비트를 0으로 clear
     -> sti : IF 비트를 1로 set. Interrupt 활성화.
 
18. cld
     -> EFLAGS Register 의 DF( direction flag ) 비트를 0으로 clear

19. lgdt
     -> gdtr 포인터에 따라 GDT를 등록시키는 명령어

20. rep movsb
     -> DS : ESI -> ES : EDI 방향으로 cx 값 만큼 복사 수행. cx 8이면 8byte.
         Move (E)CX bytes from DS:[(E)SI] to ES:[(E)DI].
     rep stosd
     -> Fill (E)CX doublewords at ES:[(E)DI] with EAX.
 

'Programming > OS Development' 카테고리의 다른 글

RGB 색상 코드 표  (2) 2009.07.19
NASM - 3  (0) 2009.06.29
VGA 관련  (0) 2009.06.19
하드 디스크 드라이버 ( Hard Disk Driver )  (0) 2009.05.29
OS 제작의 원리 그리고 Codes - Ch 6. Memory Management  (1) 2009.05.19

설정

트랙백

댓글