2016. 12. 9. 11:30

x86 8086 DOS 구현시 필요한 헬퍼 툴.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요.


최근 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)