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

📄 eval_disasm.c

📁 C89c51 usb驱动程序,实现了usb转串口的功能,提供了一个虚拟的串口
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
 **********************************************************************************
 *
 *  Project Name:  AT89C5131 MCU and Hi-Tech 8051 compiler evaluation
 *
 *  File Name:  eval_disasm.c
 *
 *  Copyright 2004++ by Michael J Bauer  [www.hotkey.net.au/~mjbauer/free_IP.htm]
 *
 *  Date Created: 2004.08.26
 *
 *  This source module implements a one-pass 8051 code disassembler customised to
 *  recognise the AT89c5131 SFR enhancements and to output SFR symbollic names in
 *  place of the respective direct addresses. All other address and data
 *  operands are output as hex numbers prefixed by a dollar sign ($xx).
 *
 *  The disassembler module takes about 5.5KB of program memory.
 *
 **********************************************************************************
 */
 
#include "a89c5131.h"        /* MCU-specific definitions */
#include "intrpt.h"          /* Compiler-specific interrupt support defs (Hi-Tech C 8051) */
#include "eval_defs.h"       /* Eval common definitions */
#include "usb_vuart_lib.h"
#include "usb_drv.h"
#include "usb_cdc_enum.h"

#if  DISASM_INCLUDED         /* Module compiled if TRUE... see eval_defs.h */


const  char  * pkszMnemonic[256] =
{
/* 0 */
	"NOP",
	"AJMP %s",
	"LJMP %s",
	"RR A",
	"INC A",
	"INC %s",
	"INC @R0",
	"INC @R1",
	"INC R0",
	"INC R1",
	"INC R2",
	"INC R3",
	"INC R4",
	"INC R5",
	"INC R6",
	"INC R7",
/* 1 */
	"JBC %s, %s",
	"ACALL %s",
	"LCALL %s",
	"RRC A",
	"DEC A",
	"DEC %s",
	"DEC @R0",
	"DEC @R1",
	"DEC R0",
	"DEC R1",
	"DEC R2",
	"DEC R3",
	"DEC R4",
	"DEC R5",
	"DEC R6",
	"DEC R7",
/* 2 */
	"JB %s, %s",
	"AJMP %s",
	"RET",
	"RL A",
	"ADD A, #%s",
	"ADD A, %s",
	"ADD A, @R0",
	"ADD A, @R1",
	"ADD A, R0",
	"ADD A, R1",
	"ADD A, R2",
	"ADD A, R3",
	"ADD A, R4",
	"ADD A, R5",
	"ADD A, R6",
	"ADD A, R7",
/* 3 */
	"JNB %s, %s",
	"ACALL %s",
	"RETI",
	"RLC A",
	"ADDC A, #%s",
	"ADDC A, %s",
	"ADDC A, @R0",
	"ADDC A, @R1",
	"ADDC A, R0",
	"ADDC A, R1",
	"ADDC A, R2",
	"ADDC A, R3",
	"ADDC A, R4",
	"ADDC A, R5",
	"ADDC A, R6",
	"ADDC A, R7",
/* 4 */
	"JC %s",
	"AJMP %s",
	"ORL %s, A",
	"ORL %s, #%s",
	"ORL A, #%s",
	"ORL A, %s",
	"ORL A, @R0",
	"ORL A, @R1",
	"ORL A, R0",
	"ORL A, R1",
	"ORL A, R2",
	"ORL A, R3",
	"ORL A, R4",
	"ORL A, R5",
	"ORL A, R6",
	"ORL A, R7",
/* 5 */
	"JNC %s",
	"ACALL %s",
	"ANL %s, A",
	"ANL %s, #%s",
	"ANL A, #%s",
	"ANL A, %s",
	"ANL A, @R0",
	"ANL A, @R1",
	"ANL A, R0",
	"ANL A, R1",
	"ANL A, R2",
	"ANL A, R3",
	"ANL A, R4",
	"ANL A, R5",
	"ANL A, R6",
	"ANL A, R7",
/* 6 */
	"JZ %s",
	"AJMP %s",
	"XRL %s, A",
	"XRL %s, #%s",
	"XRL A, #%s",
	"XRL A, %s",
	"XRL A, @R0",
	"XRL A, @R1",
	"XRL A, R0",
	"XRL A, R1",
	"XRL A, R2",
	"XRL A, R3",
	"XRL A, R4",
	"XRL A, R5",
	"XRL A, R6",
	"XRL A, R7",
/* 7 */
	"JNZ %s",
	"ACALL %s",
	"ORL C, %s",
	"JMP @A+DPTR",
	"MOV A, #%s",
	"MOV %s, #%s",
	"MOV @R0, #%s",
	"MOV @R1, #%s",
	"MOV R0, #%s",
	"MOV R1, #%s",
	"MOV R2, #%s",
	"MOV R3, #%s",
	"MOV R4, #%s",
	"MOV R5, #%s",
	"MOV R6, #%s",
	"MOV R7, #%s",
/* 8 */
	"SJMP %s",
	"AJMP %s",
	"ANL C, %s",
	"MOVC A, @A+PC",
	"DIV AB",
	"MOV %s, %s",
	"MOV %s, @R0",
	"MOV %s, @R1",
	"MOV %s, R0",
	"MOV %s, R1",
	"MOV %s, R2",
	"MOV %s, R3",
	"MOV %s, R4",
	"MOV %s, R5",
	"MOV %s, R6",
	"MOV %s, R7",
/* 9 */
	"MOV DPTR, #%s",
	"ACALL %s",
	"MOV %s, C",
	"MOVC A, @A+DPTR",
	"SUBB A, #%s",
	"SUBB A, %s",
	"SUBB A, @R0",
	"SUBB A, @R1",
	"SUBB A, R0",
	"SUBB A, R1",
	"SUBB A, R2",
	"SUBB A, R3",
	"SUBB A, R4",
	"SUBB A, R5",
	"SUBB A, R6",
	"SUBB A, R7",
/* A */
	"ORL C, /%s",
	"AJMP %s",
	"MOV C, %s",
	"INC DPTR",
	"MUL AB",
	"???",               /* A5 is an undefined opcode */
	"MOV @R0, %s",
	"MOV @R1, %s",
	"MOV R0, %s",
	"MOV R1, %s",
	"MOV R2, %s",
	"MOV R3, %s",
	"MOV R4, %s",
	"MOV R5, %s",
	"MOV R6, %s",
	"MOV R7, %s",
/* B */
	"ANL C, /%s",
	"ACALL %s",
	"CPL %s",
	"CPL C",
	"CJNE A, #%s, %s",
	"CJNE A, %s, %s",
	"CJNE @R0, #%s, %s",
	"CJNE @R1, #%s, %s",
	"CJNE R0, #%s, %s",
	"CJNE R1, #%s, %s",
	"CJNE R2, #%s, %s",
	"CJNE R3, #%s, %s",
	"CJNE R4, #%s, %s",
	"CJNE R5, #%s, %s",
	"CJNE R6, #%s, %s",
	"CJNE R7, #%s, %s",
/* C */
	"PUSH %s",
	"AJMP %s",
	"CLR %s",
	"CLR C",
	"SWAP A",
	"XCH A, %s",
	"XCH A, @R0",
	"XCH A, @R1",
	"XCH A, R0",
	"XCH A, R1",
	"XCH A, R2",
	"XCH A, R3",
	"XCH A, R4",
	"XCH A, R5",
	"XCH A, R6",
	"XCH A, R7",
/* D */
	"POP %s",
	"ACALL %s",
	"SETB %s",
	"SETB C",
	"DA A",
	"DJNZ %s, %s",
	"XCHD A, @R0",
	"XCHD A, @R1",
	"DJNZ R0, %s",
	"DJNZ R1, %s",
	"DJNZ R2, %s",
	"DJNZ R3, %s",
	"DJNZ R4, %s",
	"DJNZ R5, %s",
	"DJNZ R6, %s",
	"DJNZ R7, %s",
/* E */
	"MOVX A, @DPTR",
	"AJMP %s",
	"MOVX A, @R0",
	"MOVX A, @R1",
	"CLR A",
	"MOV A, %s",
	"MOV A, @R0",
	"MOV A, @R1",
	"MOV A, R0",
	"MOV A, R1",
	"MOV A, R2",
	"MOV A, R3",
	"MOV A, R4",
	"MOV A, R5",
	"MOV A, R6",
	"MOV A, R7",
/* F */
	"MOVX @DPTR, A",
	"ACALL %s",
	"MOVX @R0, A",
	"MOVX @R1, A",
	"CPL A",
	"MOV %s, A",
	"MOV @R0, A",
	"MOV @R1, A",
	"MOV R0, A",
	"MOV R1, A",
	"MOV R2, A",
	"MOV R3, A",
	"MOV R4, A",

⌨️ 快捷键说明

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