nask
-
[NASK] Assembly 명령어Programming/OS : OSASK 2008. 11. 28. 10:26
; 자료형의 크기 DB ; "Data Byte"의 약어로 1Byte DW ; "Data Word"의 약어로 2Byte DD ; "Data Double-Word"의 약어로 4Byte CYLSEQU10; #define CYLS 10 ; 패딩 RESB10 ; "Reserve Byte"의 약어로 10바이트를 띄워놓는다 (0x00) RESB0x1FE - $ ; $는 선두로부터 몇바이트 떨어져이는지 ; 명령어 ORG0x7c00 ; 실행시에 PC의 메모리내의 어디에 로딩되는지 ($를 좌우) MOVAX,0 ; AX = 0 MOVBYTE[678], 123 ; BYTE[]캐스팅, '데이터크기[주소]' ADDSI, 1 ; SI += 1 CMPAL, 0 ; AL과 0의 비교 HLT ; CPU정지명령 ; JUMP명령 entry..
-
[NASK] 메모리 주소지정 방식 (세그먼트 레지스터)Programming/OS : OSASK 2008. 11. 28. 10:25
BIOS들이 설계된 시대에는 CPU는 32비트 레지스터를 붙이는것이 어려웠기 때문에 보조적인 역할을 하는 세그먼트레지스터라는것을 만들었습니다. 그리고 메모리의 번지를 지정할 때 이 세그먼트 레지스터를 사용하게 되었습니다 MOV AL, [ES:BX] 와 같이 사용하며 EX * 16 + BX 로 계산합니다. ES레지스터로 번지를 대략 정한후 BX로 세세하게 지정 세그먼트 레지스터의 종류 ES -------- 엑스트라 세그먼트 (Extra Segment: 덤 세그먼트) CS -------- 코드 세그먼트 (Code Segment) SS -------- 스택 세그먼트 (Stack Segment) DS -------- 데이터 세그먼트 (Data Segment) FS -------- 명칭없음 (덤 세그먼트 2) G..