📄 text1.cpp
字号:
#include "string.h"
#include "stdio.h"
#include <stdlib.h>
#define SIZE 0xffff
//typedef unsigned int UINT16;
struct Item8
{
// UINT16 Addr;
unsigned int Addr;
unsigned int Data;
};
struct Item32
{
unsigned char Swich;
struct Item8 Data8[4];
};
void main(void)
{
FILE *InHex;
FILE *OutTxt32;
struct Item32 Data32[SIZE];
char TempChar;
// UNINT16 Addr;
unsigned int Addr;
unsigned int Length;
unsigned int i,j;
unsigned int sub1,sub2;
InHex = fopen("asm51.hex","r");
OutTxt32 = fopen("Out32.txt","w");
for(i=0;i<SIZE;i++) Data32[i] = {0,{{0,0},{0,0},{0,0},{0,0}}};
while(! feof(InHex))
{
TempChar = fgetc(InHex);
if(TempChar == ':')
{
for(i=0;i<2;i++)
{
TempChar = fgetc(InHex);
if(i==0) Length = ((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30) << 4;
if(i==1) Length = ((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30) + Length;
}
for(i=0;i<4;i++)
{
TempChar = fgetc(InHex);
if(i==0) Addr = ((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30) << 12;
if(i==1) Addr = (((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30) << 8) + Addr;
if(i==2) Addr = (((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30) << 4) + Addr;
if(i==3) Addr = ((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30) + Addr;
}
fgetc(InHex);
fgetc(InHex);
for(i=0;i<Length;i++)
{
sub1 = Addr && 0xfffffffc;
sub2 = Addr && 0x00000003;
Data32[sub1].Swich = 1;
Data32[sub1].Data8[sub2].Addr = Addr;
TempChar = fgetc(InHex);
Data32[sub1].Data8[sub2].Data = ((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30) << 4;
Data32[sub1].Data8[sub2].Data = ((int)TempChar > 0x39 ? (int)TempChar - 0x37 : (int)TempChar - 0x30);
}
}
}
}
for(i=0;i<SIZE;i++) fprintf(OutTxt32,"@%d %d%d%d%d",Data32[i].Addr,Data32[i].Data8[0].Data,Data32[i].Data8[1].Data,Data32[i].Data8[2].Data,Data32[i].Data8[3].Data);
fclose(InHex);
fclose(OutTxt32);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -