x86 8086 DOS 구현시 필요한 헬퍼 툴.
안녕하세요.
최근 DOS 관련되서 작업을 진행하고 있습니다.
PC-DOS 가 아닌 MS-DOS 계열입니다.
1차 목표는 터보C로 작성된 Hello World의 바이너리를 C#에서 로드 한후,
각종 레지스트에 정보를 읽어 들여서 어떻게 구현이 되는지 눈으로 보는게 목표 인데요.
일단 Binary 관련되서 OPCODE로 변환을 해야 하는데,
그 작업과 연결되서 일을 수월하게 할려면 몇가지 툴이 필요 할꺼 같기에 기록 차원에서 남겨 둡니다.
- 해당 OPCODE 별 Encoding/Decoding 관련 리턴 시키는 기초 함수 작성 필수(OPCODE 설계 관련 분석)
- x86 관련 OPCODE의 지시문(1) (EX - 89 MOV Ew Gw , 8a MOV Gb Eb)
- (1) 위의 지시문을 파싱 할 수 있는 툴(2)
- (2) 의 툴에서 나온 값을 토대로 구현언어별(C#,Java,C,C++..) 코드 Generator(3)
- (3) 의 경우 각 OPCODE별 쏟아낼수 있는 코드와, 중복되지 않는 함수를 쏟아낼수 있는 2가지 패턴 적용 해야됨.
- 타 disassembler 의 코드와 비교를 위한 검증 툴(4)
- (4)의 경우 1차 목표는 해당 OPCODE의 Address 와 읽어 들인 바이트 수 비교.
-(4)의 경우 2차 목표는 위의 1차 목표 충족 후 필수 구성 Disassembled 된 결과값 비교.
무작정 시작한 방식인데요.
위의 방식을 토대로 따르다 보면 타 CPU 관련된 아키텍된것도 구현 하는데 시간을 많이 줄일수 있네요.
감사 합니다.
2016/12/13 추가 합니다.
- (4) 의 경우에서 읽어 들인 바이트 수 가 정확히 매치 되었습니다.(2016/12/12)
'관련자료' 카테고리의 다른 글
Kodi 에서 SMB 설정시 참고할 사항입니다. (0) | 2018.01.26 |
---|---|
InstallShield 에서 기존 Product 삭제 후 재설치 되는 옵션. (0) | 2017.05.01 |
업데이트 모듈을 자체 제작 할 경우 고려해야 할 사항. (0) | 2016.09.27 |
원리금 균등 상환 공식 (0) | 2016.08.16 |
Java Load Class From Jar File. (0) | 2016.04.10 |