刚发现自己需要在C#应用程序中打开* .COM文件。 * .COM文件由fasm生成,其组装代码如下:
org 100h
jmp start
msg:db“Hi”,0Dh,0Ah,24h
开始: mov dx,msg
mov ah, 09h int 21h mov ah, 0 int 16h
保留
当使用像Sublime这样的文本处理器打开时,它表示代码如下所示:
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)添加一个额外的字节。在此之后 - 一切都按计划解析。
4:05,5:48等
我做错了什么,有没有办法解决它而没有解决方法(在这个阶段我不清楚哪一个,因为我不知道是否会有相同的行为或者不这样做)
答案 0 :(得分:3)
您需要将文件打开为二进制流,而不是文本流。作为文本,它被编码为Unicode代理。
将File.OpenRead
与字节数组一起使用。您也可以使用File.ReadAllBytes
但我不建议使用它,因为大文件会导致OutOfMemoryException
。