打印

HotC51汇编数组V1.08开始支持C语言的函数~~~

[复制链接]
1278|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HotC51|  楼主 | 2009-3-5 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*----------------------------------------------------------------------------
        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);
、、。。。。。。。。。。。。。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

306

帖子

0

粉丝