亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dpic.cpp

?? PIC16C5X反匯編源代碼!只要建好表格,反匯編其實很簡單!
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//=====================================================================================
//
//	模塊:	反匯編PIC16C5X
//
//	版本:	1.00
//
//	日期:	2007-07-10
//
//	作者:	施探宇
//
//	說明:	dpic -n rom.bin src.asm
//
//=====================================================================================
#include "stdafx.h"

//	保存標號個數
#define MAX_LABELS			256

//	代碼地址上限
#define MAX_ADDRESS			0x400

//	最長代碼字節(字節對齊)
#define CODE_MAX_BYTES		4

//  普通代碼長度(字節對齊)
#define CODE_BYTES			2

//	代碼位數(實際指令位數)
#define CODE_BITS			12

//	專用指令識別碼
#define CODE_GOTO_ID		0x0a00
#define CODE_CALL_ID		0x0900

//	狀態寄存器地址
#define REG_STATUS_ID		0x03

//	長整型,所有指令都要改長,這樣改成別語言就方便;
typedef unsigned long		UINT64;
typedef unsigned int		UINT32;
typedef unsigned short		UINT16;
typedef unsigned char		UINT8;
typedef unsigned char		BYTE;

//-----------------------------------------------------------------------------------
//	列表
//-----------------------------------------------------------------------------------
typedef struct tagDASM
{
	//	代碼值
	UINT64	CodeData;
	//	代碼位
	UINT64	CodeMask;
	//	寄存器位
	UINT64	RegsMask;
	//	比特位
	UINT64	BitsMask;
	//	數據位
	UINT64	DataMask;
	//	輸出格式
	_TCHAR *pCodeFmt;
}DASM_TBL;

//-----------------------------------------------------------------------------------
//	代碼轉換有優先順序:格式為 printf("CODE %S,%S,%S",REG,BIT,DAT)
//-----------------------------------------------------------------------------------
// PIC指令有方向指令,ADDWF 0x06,W,ADDWF 0x05,F
// 共32調指令.
DASM_TBL tblCode[]=
{
	//  CODE-ID CO-MASK RG-MASK BI-MASK DA-MASK FORMAT
	//	沒有操作數,(5)
	{	0x0000,	0x0fff,	0x0000,	0x0000,	0x0000,	_T("NOP")},
	{	0x0002,	0x0fff,	0x0000,	0x0000,	0x0000,	_T("OPTION")},
	{	0x0003,	0x0fff,	0x0000,	0x0000,	0x0000,	_T("SLEEP")},
	{	0x0004,	0x0fff,	0x0000,	0x0000,	0x0000,	_T("CLRWDT")},
	{	0x0040,	0x0fff,	0x0000,	0x0000,	0x0000,	_T("CLRW")},

	//	單操作數,不指定方向(3)
	{	0x0000,	0x0ff8,	0x0007,	0x0000,	0x0007,	_T("TRIS    %s")},
	{	0x0020,	0x0fe0,	0x001f,	0x0000,	0x0000,	_T("MOVWF   %s")},
	{	0x0060,	0x0fe0,	0x001f,	0x0000,	0x0000,	_T("CLRF    %s")},

	//	單操作數,需指定方向(13)
	{	0x0080,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("SUBWF   %s,%s")},
	{	0x00c0,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("DECF    %s,%s")},
	{	0x0100,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("IORWF   %s,%s")},
	{	0x0140,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("ANDWF   %s,%s")},
	{	0x01c0,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("ADDWF   %s,%s")},
	{	0x0200,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("MOVF    %s,%s")},
	{	0x0260,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("COMF    %s,%s")},
	{	0x0280,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("INCF    %s,%s")},
	{	0x02c0,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("DECFSZ  %s,%s")},
	{	0x0300,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("RRF     %s,%s")},
	{	0x0340,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("RLF     %s,%s")},
	{	0x0380,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("SWAPF   %s,%s")},
	{	0x03c0,	0x0fc0,	0x001f,	0x0020,	0x0000,	_T("INCFSZ  %s,%s")},

	//	位操作,雙操作數(4)
	{	0x0400,	0x0f00,	0x001f,	0x00e0,	0x0000,	_T("BCF     %s,%s")},
	{	0x0500,	0x0f00,	0x001f,	0x00e0,	0x0000,	_T("BSF     %s,%s")},
	{	0x0600,	0x0f00,	0x001f,	0x00e0,	0x0000,	_T("BTFSC   %s,%s")},
	{	0x0700,	0x0f00,	0x001f,	0x00e0,	0x0000,	_T("BTFSS   %s,%s")},

	//	立即數操作,單操作數(7)
	{	0x0800,	0x0f00,	0x0000,	0x0000,	0x00ff,	_T("RETLW   %s")},
	{	0x0900,	0x0f00,	0x0000,	0x0000,	0x00ff,	_T("CALL    %s")},
	{	0x0a00,	0x0e00,	0x0000,	0x0000,	0x01ff,	_T("GOTO    %s")},
	{	0x0d00,	0x0f00,	0x0000,	0x0000,	0x00ff,	_T("IORLW   %s")},
	{	0x0c00,	0x0f00,	0x0000,	0x0000,	0x00ff,	_T("MOVLW   %s")},
	{	0x0e00,	0x0f00,	0x0000,	0x0000,	0x00ff,	_T("ANDLW   %s")},
	{	0x0f00,	0x0f00,	0x0000,	0x0000,	0x00ff,	_T("XORLW   %s")},
};

//-----------------------------------------------------------------------------------
//	寄存器名稱
//-----------------------------------------------------------------------------------
_TCHAR *arrRegs[]=
{
/*0x00*/	_T("INDF"),
/*0x01*/	_T("TMR0"),
/*0x02*/	_T("PCL"),
/*0x03*/	_T("STATUS"),
/*0x04*/	_T("FSR"),
/*0x05*/	_T("PORTA"),
/*0x06*/	_T("PORTB"),
/*0x07*/	_T("PORTC"),
};

//-----------------------------------------------------------------------------------
//	狀態位
//-----------------------------------------------------------------------------------
_TCHAR *arrStatus[]=
{
/*0x00*/	_T("C"),
/*0x01*/	_T("DC"),
/*0x02*/	_T("Z"),
/*0x03*/	_T("P"),
/*0x04*/	_T("T"),
/*0x05*/	_T("GP0"),
/*0x06*/	_T("GP1"),
/*0x07*/	_T("RST"),
};

//-----------------------------------------------------------------------------------
//	默認文件名稱
//-----------------------------------------------------------------------------------
_TCHAR *pStart = _T("");
_TCHAR *pBinFile = _T("rom.bin");
_TCHAR *pSrcFile = _T("src.asm");
_TCHAR buff[]=_T("0x0000");

//	文件指針
FILE *fpBin;
FILE *fpSrc;

//	默認起始地址:
int iCodeStart = 0;

//	參數序號
int idArgv = 1;

//	指令緩沖區
BYTE pCodeBuff[CODE_MAX_BYTES];

//	存儲標號和函數地址
UINT64 useLabels[MAX_LABELS];
UINT64 posLabels = 0;

//	顯示幫助
void ShowHelp();

//	狀態名
_TCHAR *GetStatuName(UINT64 nBits);

//	寄存器名
_TCHAR *GetRegname(UINT64 nReg);

//	登記標號
int Preparse(UINT64 lCode);

//	代碼分析
int ParseCode(UINT64 lLine,UINT64 lCode,FILE *fpOut);

//	查找已登記標號
int FindLabel(UINT64 lLine);

//	文件分析
int ParseFile(int iStart, FILE *pIn,FILE *pOut);

//=====================================================================================
//	開始函數
//=====================================================================================
int main(int argc, _TCHAR* argv[])
{
	//	判斷參數
	if(argc < 2 || argc > 4)
	{
		ShowHelp();
#ifdef _DEBUG
		getchar();
#endif
		return -1;
	}

	//	默認指向第一個參數
	idArgv = 1;
	pStart = argv[idArgv];

	//	是否有地址參數?
	if(pStart[0] == '-')
	{
		iCodeStart = atoi(&pStart[1]);
		idArgv ++;
	}

	if(argc > idArgv )
	{
		pBinFile = argv[idArgv ];
	}

	if(argc > idArgv + 1)
	{
		pSrcFile = argv[idArgv +1];
	}
	
	fpBin = fopen(pBinFile,"rb");
	if(!fpBin)
	{
		printf("Can't open bin file: %s!\n",pBinFile);
#ifdef _DEBUG
		getchar();
#endif
		return -1;
	}

	fpSrc = fopen(pSrcFile,"w+a");
	if(!fpSrc)
	{
		fclose(fpBin);
		printf("Can open src file: %s!\n",pSrcFile);
#ifdef _DEBUG
		getchar();
#endif
		return -1;
	}

	//	顯示抬頭
	printf(_T(" PIC16C5X DISASM TOOLS(C) Version 1.00\n"));
	printf(_T("---------------------------------------------------------------\n"));
	printf(_T(" Code start:  %x.\n"),iCodeStart);
	printf(_T(" Input file:  %s.\n"),pBinFile);
	printf(_T(" Output file: %s.\n"),pSrcFile);
	printf(_T("---------------------------------------------------------------\n"));
	printf(_T(" QQ:190376601,TEL:13751152175              --Aleck.Shi\n"));

	//	分析文件
	ParseFile(iCodeStart,fpBin,fpSrc);

	fclose(fpBin);
	fclose(fpSrc);

	//	處理完畢!
	printf(_T(" Processed done!\n"));

#ifdef _DEBUG
	getchar();
#endif
	return 0;
}

//=====================================================================================
//	顯示幫助
//=====================================================================================
void ShowHelp()
{
	printf(_T(" PIC16C5X DISASM TOOLS(C) Version:1.00\n"));
	printf(_T("---------------------------------------------------------------\n"));
	printf(_T(" usage:dpic [-code address] <bin file> [src file]\n"));
	printf(_T("   exp:dpic rom.bin\n"));
	printf(_T("       dpic -2 rom.bin\n"));
	printf(_T("       dpic -10 rom.bin src.asm\n"));
	printf(_T("---------------------------------------------------------------\n"));
	printf(_T(" QQ:190376601,TEL:13751152175                     ----Aleck.Shi\n"));
}

//=====================================================================================
//	文件分析
//=====================================================================================
int ParseFile(int iStart, FILE *fpIn,FILE *fpOut)
{
	UINT64 lCodePos = 0;
	UINT64 lCode = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区中文字幕在线| 91精品国产综合久久久蜜臀粉嫩 | 卡一卡二国产精品| 一区二区三区 在线观看视频| 国产欧美日本一区二区三区| 日韩精品中文字幕在线一区| 日韩视频永久免费| 欧美大片在线观看| 久久久一区二区三区| 久久久国产综合精品女国产盗摄| 久久嫩草精品久久久久| 国产亚洲综合在线| 国产精品国产a| 亚洲一区二区三区四区中文字幕 | 欧美精品乱人伦久久久久久| 在线播放一区二区三区| 日韩欧美不卡在线观看视频| 2020国产精品自拍| 国产精品黄色在线观看| 亚洲一区中文日韩| 经典一区二区三区| 波多野结衣一区二区三区 | 3d成人h动漫网站入口| 日韩欧美国产一区二区三区| 国产三区在线成人av| 亚洲婷婷综合久久一本伊一区| 亚洲国产成人精品视频| 国内精品伊人久久久久av影院 | 国产精品亚洲一区二区三区妖精| 国产激情一区二区三区| 色成人在线视频| 精品欧美一区二区在线观看| 国产精品久久国产精麻豆99网站| 丝袜美腿亚洲一区| 高清在线成人网| 91.xcao| 久久久国产精品不卡| 亚洲最大成人综合| 国产在线看一区| 成人免费毛片aaaaa**| 91一区一区三区| 精品久久久久一区| 亚洲午夜国产一区99re久久| 国产a区久久久| 日韩一区二区在线观看视频播放| 亚洲天堂久久久久久久| 老司机午夜精品99久久| 在线亚洲人成电影网站色www| 欧美一级二级三级乱码| 亚洲女子a中天字幕| 国内精品写真在线观看| 91麻豆精品国产自产在线观看一区| 国产女人18水真多18精品一级做| 天天色综合天天| 97精品超碰一区二区三区| 久久嫩草精品久久久久| 奇米精品一区二区三区四区| 欧美性色黄大片| 亚洲三级在线免费观看| 懂色中文一区二区在线播放| 日韩免费视频一区| 天堂精品中文字幕在线| 欧洲av在线精品| 亚洲天天做日日做天天谢日日欢| 处破女av一区二区| 精品国产伦一区二区三区免费| 日韩av电影天堂| 欧美日韩免费一区二区三区| 亚洲美女淫视频| av在线不卡免费看| 亚洲欧洲精品天堂一级| av日韩在线网站| 18成人在线观看| gogo大胆日本视频一区| 中文字幕av资源一区| 粉嫩av一区二区三区| 国产午夜精品福利| 国产成人精品综合在线观看 | 粉嫩一区二区三区性色av| 精品免费视频.| 精品一区二区在线免费观看| 精品少妇一区二区三区日产乱码 | 亚洲不卡在线观看| 欧美视频一区二区| 亚洲777理论| 日韩精品资源二区在线| 国产真实乱子伦精品视频| 久久网这里都是精品| 国产成人免费高清| 亚洲免费在线看| 欧美午夜宅男影院| 日韩激情视频网站| 久久亚洲免费视频| www.成人在线| 亚洲一区二区三区四区的| 欧美一区二区视频免费观看| 国内成人精品2018免费看| 国产精品看片你懂得| 91年精品国产| 免费成人在线播放| 国产精品乱码一区二区三区软件 | 日韩av中文字幕一区二区 | 成人18视频在线播放| 综合激情成人伊人| 在线不卡中文字幕播放| 国产高清无密码一区二区三区| 国产精品视频在线看| 欧美日韩一区二区在线视频| 麻豆免费精品视频| 国产精品看片你懂得| 欧美精品少妇一区二区三区| 懂色av噜噜一区二区三区av| 亚洲不卡一区二区三区| 欧美刺激午夜性久久久久久久| 不卡在线观看av| 日本不卡一区二区| 亚洲视频每日更新| 精品理论电影在线观看| 欧美午夜一区二区三区| 国产69精品一区二区亚洲孕妇 | 久久人人97超碰com| 91欧美激情一区二区三区成人| 麻豆国产欧美日韩综合精品二区| 亚洲女性喷水在线观看一区| 精品久久久久久亚洲综合网 | 欧美日韩视频第一区| 国产一区激情在线| 亚洲成人福利片| 国产精品午夜在线观看| 日韩欧美国产午夜精品| 欧美日韩情趣电影| 成人ar影院免费观看视频| 久久aⅴ国产欧美74aaa| 亚洲高清免费一级二级三级| 国产欧美精品一区二区三区四区 | 国产日韩欧美a| 欧美精品亚洲二区| 在线影院国内精品| av色综合久久天堂av综合| 国产一区二区三区最好精华液| 日韩黄色片在线观看| 亚洲丝袜另类动漫二区| 国产精品素人一区二区| 久久久777精品电影网影网 | 国产欧美中文在线| 制服丝袜av成人在线看| 欧美高清视频一二三区 | av资源网一区| 波多野结衣一区二区三区 | 精品国产一区二区三区久久影院| 欧美日韩精品综合在线| 在线观看视频一区二区| 91国模大尺度私拍在线视频| 91麻豆免费在线观看| av影院午夜一区| 99视频国产精品| 91天堂素人约啪| 99国产精品视频免费观看| 99热这里都是精品| 91成人在线免费观看| 欧美三级资源在线| 欧美精品色一区二区三区| 91麻豆精品国产自产在线观看一区 | 91精品国产欧美一区二区18| 欧美高清视频www夜色资源网| 91精品国产综合久久久久| 6080日韩午夜伦伦午夜伦| 日韩精品一区二区三区视频在线观看| 日韩欧美中文字幕公布| 精品久久久久久久久久久久久久久 | 国产精品视频麻豆| 亚洲男人天堂av网| 午夜天堂影视香蕉久久| 男女男精品视频| 国产精品资源在线看| 成人国产免费视频| 欧美日韩精品一区二区三区| 日韩亚洲欧美一区| 久久精品夜色噜噜亚洲aⅴ| 国产精品不卡视频| 亚洲成a人在线观看| 久久99精品久久久久久国产越南 | 亚洲激情综合网| 天堂va蜜桃一区二区三区漫画版| 美女在线观看视频一区二区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 伊人一区二区三区| 日韩电影免费在线| 成人精品免费网站| 欧美久久高跟鞋激| 久久免费的精品国产v∧| 亚洲码国产岛国毛片在线| 久久精工是国产品牌吗| k8久久久一区二区三区| 欧美大片免费久久精品三p| 国产精品久久免费看| 免费看黄色91| 欧美性一级生活| 国产日韩亚洲欧美综合| 青青草97国产精品免费观看 |