글
NASM - 1
Programming/OS Development
2009. 3. 11. 23:10
1. mov
-> mov di, 0 : di 에 0을 넣어라.
-> [label], ax : label 의 부분에 ax값을 넣어라.
2. add
-> add di, 2 : di 에 2를 더하라.
3. jnz
-> jnz paint : ZF가 ON이면 다음 줄로, OFF 이면 Paint 로 점프
cx 레지스터 - 화면 전체에 그릴때 값을 저장하는 레지스터(?)
-> mov di, 0 : di 에 0을 넣어라.
-> [label], ax : label 의 부분에 ax값을 넣어라.
2. add
-> add di, 2 : di 에 2를 더하라.
3. jnz
-> jnz paint : ZF가 ON이면 다음 줄로, OFF 이면 Paint 로 점프
cx 레지스터 - 화면 전체에 그릴때 값을 저장하는 레지스터(?)
cx 레지스터 가 0이 되면 CPU의 Flag Register에 있는 Zero Flag가 ON이 된다.
4. byte[ : ]
-> byte형의 포인터. ex) mov byte[ es : edi ], 0x06 : es : edi 에 byte만큼 써라. es : edi에서 byte만
큼의 문자
5. inc / dec
-> inc edi : edi 를 1 증가 / dec edi : edi 를 1 감소
6. jmp
-> 특정 위치로 Jump. $ : 현재 행의 주소값.( 현재 줄 )
7. db
-> byte형의 포인터. ex) mov byte[ es : edi ], 0x06 : es : edi 에 byte만큼 써라. es : edi에서 byte만
큼의 문자
5. inc / dec
-> inc edi : edi 를 1 증가 / dec edi : edi 를 1 감소
6. jmp
-> 특정 위치로 Jump. $ : 현재 행의 주소값.( 현재 줄 )
7. db
-> db 0x40 : 1byte 를 0x40 으로 쓰기.
8. dw
-> dw 0xFFFF : 2byte 를 0xFFFF 로 쓰기
9. dd
-> dd 0xFFFFFFFF : 4byte 쓰기.
10. int
-> int 0x13 : interupt를 걸어서 BIOS 에 있는 프로그램을 실행하는 BIOS CALL 명령어.
0x13 은 어느 섹터부터 몇 개의 섹터를 읽어라는 뜻.
8. dw
-> dw 0xFFFF : 2byte 를 0xFFFF 로 쓰기
9. dd
-> dd 0xFFFFFFFF : 4byte 쓰기.
10. int
-> int 0x13 : interupt를 걸어서 BIOS 에 있는 프로그램을 실행하는 BIOS CALL 명령어.
0x13 은 어느 섹터부터 몇 개의 섹터를 읽어라는 뜻.
'Programming > OS Development' 카테고리의 다른 글
naked 함수 (0) | 2009.05.11 |
---|---|
Stack Frame (0) | 2009.05.11 |
Segmant and Offset (0) | 2009.03.08 |
Real Mode, Protected Mode (0) | 2009.03.08 |
1. 부트스트랩 (0) | 2009.03.08 |