蛋疼的计组实验,8086汇编语言,找出8086/8088指令系统所有指令的操作码的编码,没学会,就去搞了点副业,复习了下C++文件操作。
实验要求生成一个in.txt文件,然后用debug
in.txt内容示例如下,要输入512行,手动的话直接累死掉了,所以编程了。
e 100 00
u 100 101
e 100 01
u 100 101
e 100 02
u 100 101
e 100 03
u 100 101
e 100 04
u 100 101
用c++生成in.txt
#include
#include
using namespace std;
int main()
{
ofstream out;
out.open("in.txt");
int a,b;
for(a=0;a<16;a++)
for(b=0;b<16;b++)
{
out<<"e 100 "<
debugout.txt后,生成的out.txt文件示例如下:
-e 100 00
-u 100 101
0B3E:0100 0000 ADD [BX+SI],AL
-e 100 01
-u 100 101
0B3E:0100 0100 ADD [BX+SI],AX
-e 100 02
只想要指令部分,所以又得动用c++了:
#include
#include
#include
using namespace std;
int main()
{
ifstream din;
ofstream dout;
din.open("out.txt");
dout.open("out1.txt");
string str;
while(getline(din,str)) //整行读取字符串
{
if(str[0]=='0'&&str[1]=='B'&&str[8]=='0')
dout<
把需要的部分复制到新文件中,如下:
0B3E:0100 0000 ADD [BX+SI],AL
0B3E:0100 0100 ADD [BX+SI],AX
0B3E:0100 0200 ADD AL,[BX+SI]
0B3E:0100 0300 ADD AX,[BX+SI]
0B3E:0100 0400 ADD AL,00
0B3E:0100 050000 ADD AX,0000
0B3E:0100 06 PUSH ES
0B3E:0100 07 POP ES
0B3E:0100 0800 OR [BX+SI],AL
0B3E:0100 0900 OR [BX+SI],AX
0B3E:0100 0A00 OR AL,[BX+SI]
0B3E:0100 0B00 OR AX,[BX+SI]
0B3E:0100 0C00 OR AL,00
0B3E:0100 0D0000 OR AX,0000
0B3E:0100 0E PUSH CS
生成文件倒是好看了,可是看不懂啊,头大!
发表回复