剛剛發現自己需要在C#應用程序中打開* .COM文件。 * .COM由FASM生成的文件,與assemly代碼像這樣的:使用流打開* .COM文件
組織100H
JMP開始
消息:DB 「嗨」,0DH,0AH,24H
開始: MOV DX,味精
mov ah, 09h int 21h mov ah, 0 int 16h
RET
當如Sublime textprocessors打開,它代表的是代碼這樣表示:
eb05 4869 0D0A 24BA 0201 B409 CD21 B400
CD16 C3
我試圖打開這個文件在應用這樣的代碼
string COMtext = File.ReadAllText(filename,encoding);
byte[] info = new UTF8Encoding(true).GetBytes(COMtext);
當與MessageBox.Show(info[i].ToString("x2"));
檢查它說什麼,第一個字節是EF,第二個是BF(拆分EB在一半),然後在第三個地方(BD)增加一個額外的字節。之後 - 所有事情都按計劃進行解析。 4th:05,5th:48 etc. 我該怎麼做是錯誤的,有什麼辦法可以解決它沒有解決方法(在這個階段哪一個我不清楚,因爲我不知道是否會有相同的行爲或不)
謝謝,就像一個魅力。'File.ReadAllBytes'能夠讀取多少字節? i8088程序代碼,所以它不應該超過32kb或者這樣的 – user2380317
'File.ReadAllBytes'可以讀取高達2GB的數據,IIRC。問題不在於該命令,而是因爲對於大文件,它將一次分配數組並讀取所有數據,這通常會佔用太多的內存。但是,至少在MSDOS中,COM文件被限制爲64k,所以我認爲'File.ReadAllBytes'就可以。 –