728x90
어셈블러 만들기
- 이전에 바이너리로 만든 helloos.img를 어셈블러 소스 코드로 만들자(내용은 바이너리와 비슷)
- 사용 어셈블러 nask 나스크, nasm보다 최적화 성능 좋음
- hellos.nas로 저장
hellos.nas
- RESB 명령으로 공백 넘어감
- nask 어셈블러 소스코드
DB 0xeb, 0x4e, 0x90, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x49, 0x50, 0x4c, 0x00, 0x02, 0x01, 0x01, 0x00
DB 0x02, 0xe0, 0x00, 0x40, 0x0b, 0xf0, 0x09, 0x00
DB 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x40, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff
DB 0xff, 0xff, 0xff, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x2d, 0x4f, 0x53, 0x20, 0x20, 0x20, 0x46, 0x41
DB 0x54, 0x31, 0x32, 0x20, 0x20, 0x20, 0x00, 0x00
RESB 16
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd, 0x0a, 0x0a, 0x68, 0x65
DB 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72
DB 0x6c, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 368
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xaa
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432
* 구글링하다가 깃헙 소스 찾음
- https://github.com/slankdev/os
nask 어셈블러로 어셈블
- 어셈블 수행
어셈블리어로 작성한 이미지 실행 결과
- 지난번에 만든 run.bat으로 돌리면 결과가 정상적으로 나옴
300x250
'컴퓨터과학 > 컴퓨터, OS' 카테고리의 다른 글
os만들기 - 6. 어셈블리어 시작하기 (0) | 2020.08.01 |
---|---|
os만들기 - 5. 첫 어셈블러 고치기 (0) | 2020.07.30 |
os만들기 - 3. 글자찍히는 부팅가능한 바이너리 이미지 만들기 (0) | 2020.07.29 |
os만들기 - 2. 에뮬레이터에서 돌리기 삽질기 feat.msys (0) | 2020.07.29 |
os만들기 - 1. 바이너리 에디터 (0) | 2020.07.28 |