⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 format_disasm.h

📁 Avr系列单片机反汇编器源代码.GCC编译
💻 H
字号:
/* * vAVRdisasm - AVR program disassembler. * Version 1.0 - January 2007. * Written by Vanya A. Sergeev - <vsergeev@gmail.com> * * Copyright (C) 2007 Vanya A. Sergeev * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.  * * format_disasm.h - Header file to formatting of disassembled instructions, with *  regard to the several formatting features this disasssembler supports. * */ #include "avr_disasm.h"#include "errorcodes_disasm.h"#ifndef FORMAT_DISASM_H#define FORMAT_DISASM_H/* AVR Operand prefixes * In order to keep the disassembler as straightforward as possible, * but still have some fundamental formatting options, I decided to hardcode * the operand prefixes. Feel free to change them here.  */#define OPERAND_PREFIX_REGISTER			"R"	/* i.e. mov R0, R2 */#define OPERAND_PREFIX_DATA_HEX			"0x"	/* i.e. ldi R16, 0x3D */#define OPERAND_PREFIX_DATA_BIN			"0b"	/* i.e. ldi R16, 0b00111101 */#define OPERAND_PREFIX_DATA_DEC			""	/* i.e. ldi R16, 61  */#define OPERAND_PREFIX_BIT			"" 	/* i.e. bset 7 */#define OPERAND_PREFIX_IO_REGISTER		"$"	/* i.e. out $39, R16 */#define OPERAND_PREFIX_ABSOLUTE_ADDRESS 	"0x"	/* i.e. call 0x23 */#define OPERAND_PREFIX_BRANCH_ADDRESS 		"."	/* i.e. rcall .+4 */#define OPERAND_PREFIX_WORD_DATA		"0x"	/* i.e. .DW 0x1234 *//* Enumeration for different types of formatting options supported by this disassembler. *//* Formatting Options Toggle Bits: * FORMAT_OPTION_ADDRESS_LABEL: creates address labels with the prefix set in the string addressLabelPrefix. * FORMAT_OPTION_ADDRESS: Prints the address of the instruction alongside the instruction (i.e. 1C inc R0 ) * FORMAT_OPTION_DESTINATION_ADDRESS_COMMENT: Creates a comment after every relative branch/jump/call that *  includes the destination address of the instruction. */enum AVR_Formatting_Options {	FORMAT_OPTION_ADDRESS_LABEL = 1,	FORMAT_OPTION_ADDRESS = 2,	FORMAT_OPTION_DESTINATION_ADDRESS_COMMENT = 4,	FORMAT_OPTION_DATA_HEX = 8,	FORMAT_OPTION_DATA_BIN = 16,	FORMAT_OPTION_DATA_DEC = 32,};/* See avr_disasm.c for more information on these variables. */extern int AVR_Long_Instruction;extern uint32_t AVR_Long_Address;/* Structure to hold various formatting options supported * by this disassembler. */struct _formattingOptions {	/* Options with AVR_Formatting_Options bits set. */	int options;	/* The prefix for address labels,	 * if they are enabled in options. */	char addressLabelPrefix[8];	/* Space field width for address, i.e. "001C" 	 * has an address field width of 4. */	int addressFieldWidth;};typedef struct _formattingOptions formattingOptions;/* Prints a disassembled instruction, formatted with options set in the formattingOptions structure. */int printDisassembledInstruction(FILE *out, const disassembledInstruction dInstruction, formattingOptions fOptions);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -