yuanruizhang的个人空间 https://blog.eetop.cn/235025 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

mcs-51汇编指令系统

已有 587 次阅读| 2008-5-26 00:17 |个人分类:单片机

51有这些就够了,强烈推荐!

CJNE        A,direct,rel        ;if(direct)<(A),PC←(PC)+3+rel,and CY←0   ;CJNE compare instruction
;                                   ;if(direct)>(A),PC←(PC)+3+rel,and CY←1
;                                   ;if(direct)=(A),PC←(PC)+3,and CY←0
;   CJNE        A,#data,rel         ;ifdata<(A),PC←(PC)+3+rel,and CY←0
;                                   ;ifdata>(A),PC←(PC)+3+rel,and CY←1
;                                   ;ifdata=(A),PC←(PC)+3,and CY←0
;   CJNE        Rn,#data,rel        ;ifdata<(Rn),PC←(PC)+3+rel,and CY←0
;                                   ;ifdata>(Rn),PC←(PC)+3+rel,and CY←1
;                                   ;ifdata=(Rn),PC←(PC)+3,and CY←0
;   CJNE        @Ri,#data,rel       ;ifdata<((Ri)),PC←(PC)+3+rel,and CY←0
;                                   ;ifdata>((Ri)),PC←(PC)+3+rel,and CY←1
;                                   ;ifdata=((Ri)),PC←(PC)+3,and CY←0

CJNE是比较转移指令,该指令通过比较前面两个操作数的大小,如果它们的值不相等则转移,相等则继续执行。指令执行后要影响进位位CY,若操作数1小于操作数2,则CY1;若操作数1大于操作数2,则CY0

8种常用伪指令

1.ORG   16位地址                         ;此指令用在原程序或数据块的开始,指明此语句后                                                             

                                             面目标程序或数据块存放的起始地址。

2.[标号:] DB   字节数据项表             ;将项表中的字节数据存放到从标号开始的连续字                                     

                                            节单元中。例如:SEG DB 88H1007”“C”

3.[标号:]DW   双字节数据项表            ;定义16位地址表,16地址按低位地址存低位字                                    

                                             节,高位地址存高位字节。                                     

                                             例如:TAB DW  1234H7BH

4.名字 EQU 表达式  或名字=表达式         ;用与给一个表达式赋值或给字符串起名字。之                                                     

                                           后名字可用做程序地址,数据地址或立即数地址                                          

                                           使用。名字必须是一字母开头的字母数字串。                                     

                                           例如:COUNT=10 SPACE  EQU  10H

5.名字 DATA 直接字节地址                 ;给8位内部RAM单元起个名字,名字必须是一                                        

                                           字母开头的字母数字串。同一单元可起多个名字。                                    

                                            例如:ERROR  DATA  80H

6.名字 XDATA 直接字节地址                 ;给8位外部RAM起个名字,名字规定同DATA                                    

                                              伪指令。例如:IO_PORT  XDATA  0CF04H

7.名字 BIT 位指令                        ;给一可位寻址的位单元起个名字,规定同DATA                                      

                                             伪指令。例如:SWT BIT 30H

8.[标号:] END            ;指出源程序到此结束,汇编对其后的程序语句不                   

                                        予理睬.源程序只在主程序最后使用一个END

定义指令符号

layout-alt: fixed; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing=0 cellPadding=0 border=0>

符号

说明

Rn

目前所选定的寄存器组中的R0-R7寄存器

Ri

当前选中的寄存器区中可作为地址寄存器的两个寄存器R0R1i=0,1

Direct

8位直接寻址地址,可以是内存RAM地址(00H--7FH)或SFR80H--FFH

@Ri

通过R0R1做间接寻址内部RAM的地址(00H--FFH)的前缀

#data

8位立即数

#data16

16位立即数,只有DPTR中才用到

Addr 16

只用在LCALL(长指令调用,三字节)和LJMP(无条件长转移指令)指令中的16位目的地地址,可寻址64K存储器中的任何地址

Addr 11

使用在ACALL(绝对调用指令,双字节)和AJMP(无条件绝对转移指令)指令中的11位目的地地址,可寻址下一个指令算起2K内的任何地址,即目的地址必须放在与下条指令第一个字节同一个2kB程序存储器空间

DPTR

数据指针

rel

有符号的8位偏移地址(Offset Address),其范围是从下一个指令算起的-128+128字节中。负值表示地址向前推算,正值表示地址向后推算。使用在SJMP和所有条件式跳转指令中

bit

可直接位寻址的内部数据RAM20H--2FH),其中地址范围为(00H--7FH)或特殊功能积存器


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 22:29 , Processed in 0.024756 second(s), 18 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网