#!/usr/bin/perl
if ($ARGV >= 0) {
open(SRC,"$ARGV[0]") or die("ERROR:Please assign a source data file!!!!!!!!");
}else{
print("ERROR:Please assign a source data file!!!!!!!!");
exit();
}
open(DST,">$ARGV[0].18bit") || die("ERROR:Can't open output file");
$line_num=0;
$cont="";
while(<SRC>){
$cont=$_;
$line_num++;
if($cont=~/\@([0-9A-Fa-f]+)\s+([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})/){
$r1=$1;
$r2=hex($2);
$r3=hex($3);
$r4=$r2*512*2+$r3*2;
#print "$r4\n";
$str=sprintf("%x",$r4);
if(length($str)==1) {
$align_str="0000".$str;
}elsif(length($str)==2){
$align_str="000".$str;
}elsif(length($str)==3){
$align_str="00".$str;
}elsif(length($str)==4){
$align_str="0".$str;
}else{
$align_str=$str;
}
printf DST "\@$r1 $align_str\n";
}elsif($cont=~/([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})/){
$r2=hex($1);
$r3=hex($2);
$r4=$r2*512*2+$r3*2;
#print "$r4\n";
$str=sprintf("%x",$r4);
if(length($str)==1) {
$align_str="0000".$str;
}elsif(length($str)==2){
$align_str="000".$str;
}elsif(length($str)==3){
$align_str="00".$str;
}elsif(length($str)==4){
$align_str="0".$str;
}else{
$align_str=$str;
}
printf DST "$align_str\n";
}else{
print("ERROR:This line $line_num can't be understood!!\n");
}
}
close(SRC);
close(DST);
print " Finished!!! \n ";
[Perl] perl code for memory modify
最新推荐文章于 2022-02-24 18:28:58 发布