/* Convert one word from memory into an equivalent assembly instruction
Copyright 2001-2005 Craig Franklin
*/
#pragma once
#include "gpregister.h"
EXDATA bool gp_decode_mnemonics;
EXDATA bool gp_decode_extended;
typedef struct {
int wreg;
int pclath;
unsigned pclath_valid;
int bank;
unsigned bank_valid;
const gp_register_table_t *proc_regs;
unsigned bsr_boundary; /* Only case of PIC16E. */
bool need_sfr_equ;
} gpdasm_fstate_t;
/* Values of the "Behavior". */
#define GPDIS_SHOW_NOTHING 0
#define GPDIS_SHOW_NAMES (1 << 0)
#define GPDIS_SHOW_FSRN (1 << 1)
#define GPDIS_SHOW_BYTES (1 << 2)
#define GPDIS_SHOW_ALL_BRANCH (1 << 3)
#define GPDIS_SHOW_EXCLAMATION (1 << 4)
FUNC(unsigned) gp_disassemble_mark_false_addresses(MemBlock_t *M, unsigned Byte_address,
pic_processor_t Processor);
FUNC(unsigned) gp_disassemble_find_labels(MemBlock_t *M, unsigned Byte_address,
pic_processor_t Processor, gpdasm_fstate_t *Fstate);
FUNC(unsigned) gp_disassemble_find_registers(MemBlock_t *M, unsigned Byte_address,
pic_processor_t Processor, gpdasm_fstate_t *Fstate,
void (_stdcall*User_data_finder)(MemArg_t *));
FUNC(void) gp_disassemble_show_data(MemBlock_t *M, unsigned Byte_address, proc_class_t Class,
unsigned Behavior, char *Buffer, size_t Buffer_length,
size_t Current_length);
FUNC(unsigned) gp_disassemble(MemBlock_t *M, unsigned Byte_address, proc_class_t Class,
unsigned Bsr_boundary, unsigned Prog_mem_size,
unsigned Behavior, char *Buffer, size_t Buffer_length,
size_t Current_length);
FUNC(unsigned) gp_disassemble_byte(MemBlock_t *M, unsigned Byte_address,
char *Buffer, size_t Buffer_length);
extern unsigned gp_disassemble_word(MemBlock_t *M, unsigned Byte_address, proc_class_t Class,
char *Buffer, size_t Buffer_length);
FUNC(unsigned) gp_disassemble_size(MemBlock_t *M, unsigned Byte_address, proc_class_t Class,
unsigned Bsr_boundary, unsigned Prog_mem_size,
unsigned Behavior, char *Buffer, size_t Buffer_length,
unsigned Size);
Vorgefundene Kodierung: ASCII (7 bit) | 2
|