/*---------------------------------------------------------------------------- HotC51汇编数组定义头文件(HotAsm.h V1.08) 最初建立时间: 2009.2.18 最近修改时间: 2009.3.5 (放弃“PK”MCS51汇编指令集) 增 添原 因: 为全面支持裸奔式实时操作系统HotTask51做准备 HotWC3发布并正式参战汇编数组,逆向世界开始昏暗。 “宏C”计划开始, 支持带参数输入输出的"数组函数"。 继续增添HotC51汇编数组扩展指令集 应 用: 可以用COM接口技术对HotC51汇编数组进行封装 封装后的代码将如同穿上铁甲的“战士”~~~ //unsigned int TRIANGLE(unsigned char val); HotASMU16 (__HotASMU8_TRIANGLE__)// {//DPTR保存的是汇编数组函数的首地址__HotASM_TRIANGLE__ //#define TriangleTable asm_MOV_A_R7(),//取unsigned char val asm_CPL_A(), asm_MOV_R7_A(), asm_SWAP_A(), asm_MOV_R6_A(), asm_RETU16(0x1234),//返回0x1234 // asm_RETU16_DPTR(),//返回dptr // asm_RETU16_AB(),//返回AB // asm_RETU16_BA(),//返回BA // asm_RET(),//返回R6R7 //TriangleTable: asm_DW(0x1234), asm_DW(0x5678) }; 未 来计 划: 首先将HotC51汇编数组做成比宏汇编更好用的接近C习惯. 逐步完善,最终全面到达“宏C”之目标。 菜农HotPower@126.com 2008.3.5 10:58 于西安大雁塔村农会 -----------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------------------------ HotASM51汇编数组指令集与MCS51汇编指令集对照表 DB(x) DB(0~0xff) //伪指令 asm_DB(250),asm_DB('1'), db 250; DW(x) DW(0~0xffff)//伪指令 asm_DW(0x1234),//大端 dw 0x1234; dw(x) dw(0~0xffff)//伪指令 asm_dw(0x1234),//小端 dw 0x3412; Rn(x) Rn(0~7) asm_MOV_A_R0(), asm_MOV_A_Rn(5), mov a,r0;mov a,r5; @ iRn(x) iRn(0~1) asm_MOV_A_iR1(), asm_MOVX_iRn_A(0), mov a,@r1;movx @r0,a; ! BIT(x) BIT(0~0x7f, 0x80~0xff) asm_CLR_BIT(0x30),asm_SETB_P0_0(), clr 30h;setb p0.0; & REG(x) REG(0~0x7f, 0x80~0xff) asm_MOV_REG_A(HotASM_B),asm_MOV_B_A(), mov b,a; //建议不要采用DATA(),由于HotASM的庞大,随时将可能被取缔 # DATA(x) DATA(0~0xff, 0~0xffff) asm_MOV_DPTR(0x250),asm_MOV_A(250) mov dptr,#0x250;mov a,#250; -------------------------------------------------------------------------------------------------------*/
void main() { unsigned int crc; unsigned char crc8; //HotC51汇编数组开始支持带参数输入输出的"数组函数" crc = wc3Function.Vtbl.TRIANGLE(0x5a); crc8 = wc3Function.Vtbl.CRCR8(0x55, 0xaa); 、、。。。。。。。。。。。。。 |