当前位置:首页 > 技术心得 > 正文内容

tenx(十速)TM87系列常用宏(二)

xjtudll17年前 (2010-02-09)技术心得8800

tenx(十速)TM87系列常用宏(二)

 

接上篇:http://www.xjtudll.cn/Exp/42/


5
、位操作

位清零

;BIT清零 RAM 00~6FH 70~7FH也可用,但是浪费了两条语句                              

CLRB                          .macro REG,BIT

                                                        MRW R0,REG

                                                        .if BIT=0

                                                               ANDI* R0,1110B

                                                        .elseif BIT=1

                                                               ANDI* R0,1101B

                                                        .elseif BIT=2

                                                               ANDI* R0,1011B

                                                        .elseif BIT=3

                                                               ANDI* R0,0111B         

                                                        .endif                                                                    

                                                        MWR REG,R0

                                   .endm



1

; BIT1  RAM 00~6FH 70~7FH也可用,但是浪费了两条语句

SETB                           .macro REG,BIT

                                                        MRW R0,REG

                                                        .if BIT=0

                                                               ORI* R0,0001B

                                                        .elseif BIT=1

                                                               ORI* R0,0010B

                                                        .elseif BIT=2

                                                               ORI* R0,0100B

                                                        .elseif BIT=3

                                                               ORI* R0,1000B                                              

                                                        .endif                   

                                                        MWR REG,R0                                                

                            .endm

6、环移

左环移

;左环移 最高位保存到CF 低位填0

RLC                            .macro Reg

                                                 MRA Reg

                                                 SL0 Reg

                                   .endm

 

右环移

;右环移 最低位保存到CF 高位填0 R0所在地址不能操作

RRC                                   .macro Reg

                                                 MRW R0,Reg

                                                 SL0 R0

                                                 SL0 R0

                                                 SL0 R0

                                                 MRA R0

                                                 SR0 Reg

                                          .endm

 

7、常数赋值操作

 RAM 7FH~FFH(需索引赋值的)

;如果不用高地址,则调用方式为 MOVX ,AddrL,Num

MOVX                                .macro AddrH,AddrL,Num

                                                        .ifnblank AddrH ;判断宏的参数是否有串入

                                                               LDS R0,AddrH

                                                               MVH R0

                                                        .endif

                                                               LDS R0,AddrL

                                                               MVL R0

                                                               LDS R0,Num                                                  

                                                               MRW @HL,R0                                               

                                          .endm

 

8、程序跳转

RAM所存储的数值与常数比较

 

小于跳转

;小于跳转 可操作RAM 00~7FH   70~7FH浪费一条语句

CJSE                                  .macro Reg,Data,Address

                                                        MRW      R0,Reg

                                                        SUBI R0,Data

                                                        JNC Address                                                   

                                          .endm

 

不等跳转                            

;不等跳转  可操作RAM 00~7FH  除去R0

CJNE                                  .macro Reg,Data,Address

                                                        LDS R0,Data;Data¸øROºÍAC

                                                        EOR Reg

                                                        JNZ Address                                                   

                                          .endm

 

相等跳转                       

;相等跳转  可操作RAM 00~7FH  除去R0

CJE                                    .macro Reg,Data,Address

                                                        LDS R0,Data;Data¸øROºÍAC

                                                        EOR Reg

                                                        JZ Address                                                      

                                          .endm

 

      -1不等于0跳转                            

;-1不等于0跳转  可操作RAM 00~7FH

DJNZ                                  .macro Reg,Address      

                                                 .locallabel DJNZGO

                                                 .locallabel DJNZOUT

                                                        LDA Reg

                                                        JNZ DJNZGO

                                                        JMP DJNZOUT

DJNZGO:                                  

                                                        DEC* Reg

                                                        JNZ Address  

DJNZOUT:                  

                                                 .endm

 

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/43/

分享给朋友:

“tenx(十速)TM87系列常用宏(二)” 的相关文章

PHP:Call to undefined function bindtextdomain()

all to undefined function bindtextdomain() bindtextdomain() 是系统函数为什么会出现上面情况 我的是 PHP/5.2.9 (PHP 4, PHP 5) bindtextdomain ? Set...

OKI单片机-如何查看编译后的汇编代码

OKI单片机-如何查看编译后的汇编代码

使用OKI单片机时,有几种情况需要看汇编代码: 1、精确延时,这个用C基本上无法实现; 2、用汇编编程,但某部分程序用汇编写感觉有难度。此时先用C编写,然后查看其汇编代码,借鉴一二。 有两种方式可以看到编译后的汇编代码: 1、程序编译完成后,编译器自动生成各C文件的汇编代码 (1)能看到绝大部分汇编...

金蝶K3:直接SQL报表中进行核算项目数据授权控制的方法

--【第一步】: --根据核算项目类别ID,查询到对应核算项目的数据授权表及查看、修改、删除的权限字段名和权限掩码 --例如查出客户的数据授权表为Access_t_Organization --几乎所有的核算项目的查看、修改、删除的权限字段名和权限掩码都是以下这样: -...

C语言交换两个数

可能大家都认为交换两个数如此的简单,没必要写,没新意。例如,交换a和b两个数,教科书上一直这样写: temp=b; a=temp; b=a; 确实很简单。但是最近看到一段代码,觉得十分高超,是这样的: a^=b; b^=a; a^=b; 同样也是三句代码,但是却未...

Multisim导入MOSFET模型

文章来源:NI官网->在Multisim里导入MOSFET 模型 原文网址:http://digital.ni.com/public.nsf/allkb/E1DA418DD7A5E4A1862574B800219513 问题: 如何在Multisim器件里导入以“.MODEL&rd...

安卓弹出Dialog之后,点触摸屏幕任意区域,Dialog消失了的解决方法

参考资料: http://blog.csdn.net/liushuiwen101423/article/details/46412487 http://blog.csdn.net/u012255016/article/details/49888881 http://blog.csdn.net/jds...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。