新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 汇编语言基础

汇编语言基础

作者:时间:2013-05-04来源:网络收藏

操作码与操作数之间必须用空格分开,操作数与操作数之间必须用逗号“,”分开。带方括号的项可有可无,称为可选项。

由指令格式可见,操作码是指令的核心,不可缺少。例如一条传送指令的书写格式如为:MOV A,3AH ;(3AH)A它表示将3AH存储单元的内容送到累加器A中。

指令的长度所谓指令的长度,就是描述一条指令所需要的字节数,用一个字节能描述的指令我们叫1字节指令,同理,用两个字节描述的叫2字节指令,用三个字节描述的指令就叫3字节指令。

在这里我们对的111条指令进行了分类:1字节指令共有49条,2字节指令共有45条,3字节指令共有17条,到底哪条指令是1字节、2字节或者3字节指令,在我们后面的指令表中都可以查阅到的。这里有一个问题请大家引起注意,在前面的课程中,我们学习过指令计数器PC,PC是一个16位的计数器,那么这个指令计数器是怎样来计数的呢?

我们的指令有1字节、2字节、3字节指令。是不是每执行一个字节,这个指令计数器PC就自动加1?答案是错误的!!实际上,PC始终是跟踪着指令的,并不是以字节数来相加。在我们存放程序的ROM中,是一个字节一个字节的向后执行,但程序计数器PC并不是每加一个字节就加1,它是对特定的某一条指令执行完了之后,相应的程序计数器PC才加1,那么这条指令可能是1个字节,也可能是2个或者3个字节。这个大家要引起重视。

在学习时,先要了解某些符号的意义,现说明如下:

Rn :当前选中的工作寄存器组R0-R7(n=0-7)。它在片内数据存储器中的地址由PSW中的RS1和RS0确定,可以是00H-07H(第0组)、08H-0FH(第1组)、10H-17H(第2组)、18H-1FH(第3组)。

Ri :当前选中的工作寄存器组中可作为地址指针的两个工作寄存器R0和R1(i=0或i=1)。它在片内数据存储器中的地址由RS0及RS1确字,分别为00H、01H;08H、09H;10H、11H;18H、19H。

Direct :8位片内RAM单元(包含SFR)的直接地址

#data :代表指令中8位的常量数据

#data16 :代表指令中16位的常量数据

addr16 :LCALL与LJMP所使用的16位目的地址

addr11 :ACALL与AJMP所使用的11位目的地址

rel :指程序遇条件跳跃时的相对地址,往前最多可以跳128个字节,往后最多可以跳127个字节。

bit :特殊目的寄存器或内部数据RAM中可直接寻址的位。

@ :间接寻址方式中,表示间址寄存器的符号

/ :位操作指令中,表示对该位先取反再参与操作,但不影响该位原值。

X :片内RAM的直接地址或寄存器

(X) :在址接寻址方式中,表示直接地址X中的内容;在间接寻址方式中,表示由间址寄存器X指出的地址单元中的内容。

→ :指令操作流程,将箭头左边的内容送入箭头右边的单元内。

← :指令操作流程,将箭头右边的内容送入箭头左边的单元内。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭