2012-11-05 2 views
1

파일을 매개 변수로 허용하는 .com 프로그램을 어떻게 만듭니 까? .com 프로그램은 명령 행 인터프리터에서 실행됩니다. 어셈블리 언어로 프로그램을 작성하려고합니다. 그게 어떻게 작동 해야하는지입니다. MS-DOS에서 수행하는이입니다 :의 프로그램이 (MS-DOS에서) 명령 줄에서 DecToHex.com 사용자 16 진수로파일을 매개 변수로 사용하는 msdos .com 프로그램을 만드는 방법

DecToHex.com afile.dec 

프로그램은 다음 afile.dec 변환을 입력하고 afile.hex

PS라는 다른 파일을 생성한다고 가정 해 봅시다 어셈블리 언어

답변

1

IIRC, MSDOS는 CS : 0080h부터 시작하는 명령 줄 매개 변수를 저장합니다.

debug.exe dectohex.com infile outfile 으로 확인할 수 있어야합니다. 그런 다음 cs : 0에서 메모리를 디스 어셈블/덤프하고 문자열을 검색하십시오.

프랭크 (Frank)가 상기 한 것처럼, asciiz는 파스칼 형식의 문자열 형식을 사용하는 MSDOS에 알려지지 않았습니다. 하나는 바이트 당 문자열 바이트를 구문 분석해야합니다. 그리고 나는 명령 행 매개 변수가있는 것으로 가정합니다. 예 : 연속 된 공백은 잘리지 않습니다.

+2

[80h]에는 먼저 "길이"의 바이트가 포함 된 다음 공백이 포함 된 다음 파일 이름이 포함됩니다. 제로 종결되지 않은 - 당신은 "오픈 파일"기능에 대한 파일 이름으로 사용하기 전에 그것을 종료해야합니다 (난 번호를 찾아봐야 겠어). 그런 다음이 파일을 사용하여 출력 파일의 이름을 만들거나 다른 매개 변수입니까? 그 파일도 열어. (두 개가 모두 닫힌 후 오류를 확인하십시오.) 입력 파일에서 버퍼로 N 바이트를 읽고, 아마 다른 버퍼로 변환하십시오. 버퍼를 출력 파일에 씁니다. 돌아가서 더 읽으십시오. 끝날 때까지. 깨끗하게 종료하십시오. 어떤 부분에 문제가 있습니까? –

+0

감사합니다. XP 나 그 이상인 지 확인해 보았습니다. –