perl code for memory modify

 1 #!/usr/bin/perl
 2 if ($ARGV >= 0) {
 3   open(SRC,"$ARGV[0]") or die("ERROR:Please assign a source data file!!!!!!!!");
 4 }else{
 5   print("ERROR:Please assign a source data file!!!!!!!!");
 6   exit();
 7 }
 8 open(DST,">$ARGV[0].18bit") || die("ERROR:Can't open output file");
 9 $line_num=0;
10 $cont="";
11 while(<SRC>){
12    $cont=$_;
13    $line_num++;
14    if($cont=~/\@([0-9A-Fa-f]+)\s+([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})/){
15      $r1=$1;
16      $r2=hex($2);
17      $r3=hex($3);
18      $r4=$r2*512*2+$r3*2;
19      #print "$r4\n";
20      $str=sprintf("%x",$r4);
21      if(length($str)==1) {
22        $align_str="0000".$str;
23      }elsif(length($str)==2){
24        $align_str="000".$str;
25      }elsif(length($str)==3){
26        $align_str="00".$str;
27      }elsif(length($str)==4){
28        $align_str="0".$str;
29      }else{
30        $align_str=$str;
31      }  
32      printf DST "\@$r1  $align_str\n";
33    }elsif($cont=~/([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})/){
34       
35      $r2=hex($1);
36      $r3=hex($2);
37      $r4=$r2*512*2+$r3*2;
38      #print "$r4\n";
39      $str=sprintf("%x",$r4);
40      if(length($str)==1) {
41        $align_str="0000".$str;
42      }elsif(length($str)==2){
43        $align_str="000".$str;
44      }elsif(length($str)==3){
45        $align_str="00".$str;
46      }elsif(length($str)==4){
47        $align_str="0".$str;
48      }else{
49        $align_str=$str;
50      }  
51      printf DST "$align_str\n";
52    }else{
53       print("ERROR:This line $line_num can't be understood!!\n"); 
54    }
55  }      
56  close(SRC);
57  close(DST);
58 
59 print "       Finished!!! \n ";

 

posted @ 2018-02-28 21:24  coole  阅读(170)  评论(0编辑  收藏  举报