c3.c

来自「C language sample code for example funct」· C语言 代码 · 共 67 行

C
67
字号
#include <stdio.h>
#include <absacc.h>

//代刚ノ fnct
void fnct0(void)
{
	volatile char i;
	i=0;
}
void fnct1(void)
{
	volatile char i;
	i=1;
}
void fnct2(void)
{
	volatile char i;
	i=2;
}
/*
void JmpTable(void)
{
	fnct0();
	fnct1();
	fnct2();
}
//ljmp instruction

*/
typedef struct {
		unsigned char OpCode;
		unsigned int  Addr;
		}LJMP_INST;
//										   
// von Neumann memory
// X: 0xE000~0xFFFF
//
// or  xdata LJMP_INST LjmpTable _at_ JmpTable;
//		
//
xdata LJMP_INST LjmpTable _at_ 0xE000;

#define XXXFnct	((void (code *) (void)) 0xE000)
LJMP_INST i;
//
// main()
//
void main(void)
{

  	// init

	LjmpTable.OpCode = 0x2;			//ljmp-opcode

	LjmpTable.Addr	 = (int)fnct2; 	//switch2 fnct2
	XXXFnct();

	LjmpTable.Addr	 = (int)fnct1;	//switch2 fnct1
	XXXFnct();

	LjmpTable.Addr	 = (int)fnct0;	//switch2 fnct0
	XXXFnct();

	
	while(1);

}

⌨️ 快捷键说明

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