- 论坛徽章:
- 0
|
处理一段文本文件
R2 <- R1 + (R3)
opcode op_add_21_3
comment proc_opcode := "01100010"; -- R2 <- R1+(R3)
a: MDR <- mem[PC], PC <- PC + 1
b: MAR_SRC <- R3, MAR_LOAD <- 1, ADDR_SEL <- 1, MDR_INST <- 0, PC_INC <- 0, R2_PENDING <- 1
c: MDR_SRC <- MEM, MDR_LOAD <- 1, MDR_INST <- 0, PC_INC <- 0, R2_PENDING <- 1
d: ALUs1_SRC <- R1, ALUs2_SRC <- MDR, ALU_FUNC <- alu_add, ALUOUT_DEST <- R2, ALUOUT_LOAD <- 1
e: WB_DEST <- R2, REG_LOAD <- 1
参考一位朋友的程序,还是不变化的输出,毛病出在哪里呢??
#!c:/perl/bin/perl
@ARGV = glob "C:\in.txt" or die "no file found";
while (<> {
if(/^([a-z]): *(.*)/ ){
if(/MDR_LOAD <- 1, MDR_INST <- 0/)
{
@line = split(/:/, $_);
$n=ord($line[0]);
print "$line[0] line[1]";
next;
}
$need = $_;
@line2 = split(/:/,$need);
if(ord($line2[0]) >; $n)
{
if(ord($line2[0]) == $n+1)
{
print ",$line2[1],MDR_HAZARD <- 1";
next;
}else{
$b = chr(ord($line2[0])-1);
print "$b line2[1]";
next;
}
}
}
print;
} |
|