汇编伪指令注释:
1、DS ---预留存储区命令
格式:〔标号:〕 DS  表达式值
其功能是从指定地址开始,定义一个存储区,以备源程序使用。
存储区预留的存储单元数由表达式的值决定。
TMP:  DS  1
从标号TEP地址处开始保留1个存储单元(字节)。
2、BIT---定义位命令
格式:字符名称  BIT    位地址
其功能用于给字符名称定义位地址。
SPK  BIT  P3.7
经定义后,允许在指令中用SPK代替P3.7。
3、USING指令
USING指令通知汇编器使用8051的哪一个工作寄存器组。
格式:  USING  表达式(值必须为0-3,默认值为0。)
USING  0
使用第0组工作寄存器。
4、SEGMENT指令
SEGMENT 指令用来声明一个再定位段和一个可选的再定位类型。
格式:再定位段名  SEGMENT  段类型〔再定位类型〕
其中,“再定位段名”用于指明所声明的段。
“段类型”用于指定所声明的段将处的存储器地址空间。
可用的段类型有 CODE、XDATA、DATA、IDATA和BIT。
STACK_SEG  SEGMENT  IDATA
DATA_SEG SEGMENT DATA
5、RSEG---再定位段选择指令
再定位段选择指令为RSEG,用于选择一个已在前面定义过的再定位段作为当前段。格式:  RSEG  段名
段名必须是在前面已经声明过的再定位段。
DATA_SEG  SEGMENT  DATA  ;声明一个再定位DATA段
RSEG  DATA_SEG  ;选择前面声明的再定位DATA段作为当前段
6、绝对段选择指令
CSEG---绝对代码段
DSEG---内部绝对数据段
XSEG---外部绝对数据段
ISEG ---内部间接寻址数据段
BSEG---绝对位寻址数据段
格式:
CSEG  [AT 绝对地址表达式]
DSEG  [AT 绝对地址表达式]
XSEG  [AT 绝对地址表达式]
ISEG  [AT 绝对地址表达式]
BSEG  [AT 绝对地址表达式]
括号内是可选项,用来指定当前绝对段的基地址。
CSEG AT 0000H
AJMP  MAIN
7、ORG指令
ORG指令用来改变汇编器的计数器,从而设定一个新的程序起始地址。
格式:  ORG  表达式
表达式必须是绝对或简单再定位表达式。
ORG  0000H
AJMP  MAIN
设定 MAIN 程序的起始地址为 0000H。
8、END指令
END指令用来控制汇编结束。在每个汇编程序的最后一行必须有一条END指令,
并且END指令只能出现一次。
9、EQU指令
EQU 指令用于将一个数值或寄存器名赋给一个指定的符号名。
格式:符号名  EQU  表达式
或符号名  EQU  寄存器名
表达式必须是一个简单再定位表达式。
用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者
直接当做一个立即数使用。
LIMIT      EQU    1200
COUNT    EQU    R5
10、DATA 指令
DATA 指令用于将一个内部 RAM 的地址赋给指定的符号名。
格式:符号名    DATA    表达式
数值表达式的值在 0-255 之间,表达式必须是一个简单再定位表达式。
PORT1    DATA    40H
11、DB 指令
DB 指令以表达式的值的字节形式初始化代码空间。
格式: [标号:]    DB  表达式表
表达式中可包含符号、字符串、或表达式等项,各个项之间用逗号隔开,字符串应用引号括起来。
括号内的标号是可选项,如果使用了标号,则标号的值将是表达式表中第一字节的地址。DB 指令必须位于 CODE 段之内,否则将会发生错误。
TABLE:
DB  0C0H, 0F9H, 0A4H
TABLE1:
DB  " WEINA "
单片机指令大全- -
指令格式功能简述字节数周期
一、数据传送类指令
MOV  A,Rn              寄存器送累加器                  1          1
MOV  Rn,A              累加器送寄存器                  1          1
MOV  A ,@Ri            内部RAM单元送累加器  1          1
MOV  @Ri ,A            累加器送内部RAM单元  1          1
MOV  A ,#data          立即数送累加器                  2          1
MOV  A ,direct          直接寻址单元送累加器            2          1
MOV  direct ,A          累加器送直接寻址单元            2          1
MOV  Rn,#data          立即数送寄存器                  2          1
MOV  direct ,#data      立即数送直接寻址单元            3          2
MOV  @Ri ,#data        立即数送内部RAM单元  2          1
MOV  direct ,Rn        寄存器送直接寻址单元            2          2
MOV  Rn ,direct        直接寻址单元送寄存器            2          2
MOV  direct ,@Ri      内部RAM单元送直接寻址单元  2          2 MOV  @Ri ,direct      直接寻址单元送内部RAM单元  2          2 MOV  direct2,direct1    直接寻址单元送直接寻址单元      3          2
MOV  DPTR ,#data16      16位立即数送数据指针            3          2 MOVX  A ,@Ri            外部RAM单元送累加器(8位地址)    1          2 MOVX  @Ri ,A            累加器送外部RAM单元(8位地址)    1          2 MOVX  A ,@DPTR          外部RAM单元送累加器(16位地址)  1          2 MOVX  @DPTR ,A          累加器送外部RAM单元(16位地址)  1          2 MOVC  A ,@A+DPTR        查表数据送累加器(DPTR为基址)    1          2 MOVC  A ,@A+PC          查表数据送累加器(PC为基址)      1          2 XCH  A ,Rn              累加器与寄存器交换              1          1
XCH  A ,@Ri            累加器与内部RAM单元交换  1          1 XCHD  A ,direct          累加器与直接寻址单元交换  2          1
XCHD  A ,@Ri            累加器与内部RAM单元低4位交换    1          1 SWAP  A                  累加器高4位与低4位交换          1          1
POP  direct              栈顶弹出指令直接寻址单元        2          2
PUSH  direct              直接寻址单元压入栈顶            2          2
二、算术运算类指令
ADD  A,Rn              累加器加寄存器                  1          1
ADD  A,@Ri            累加器加内部RAM单元  1          1
ADD  A,direct          累加器加直接寻址单元            2          1
ADD  A,#data          累加器加立即数                  2          1
ADDC  A,Rn              累加器加寄存器和进位标志        1          1 ADDC  A,@Ri            累加器加内
部RAM单元和进位标志  1          1 ADDC  A,#data          累加器加立即数和进位标志        2          1 ADDC  A,direct          累加器加直接寻址单元和进位标志  2          1 INC  A                  累加器加1                      1          1
INC  Rn                  寄存器加1                      1          1
INC  direct              直接寻址单元加1                2          1
INC  @Ri                内部RAM单元加1                  1          1
INC  DPTR                数据指针加1                    1          2
DA    A                  十进制调整                      1          1
SUBB  A,Rn              累加器减寄存器和进位标志        1          1 SUBB  A,@Ri            累加器减内部RAM单元和进位标志  1          1 SUBB  A,#data          累加器减立即数和进位标志        2          1 SUBB  A,direct          累加器减直接寻址单元和进位标志  2          1 DEC  A                  累加器减1                      1          1
DEC  Rn                  寄存器减1                      1          1
DEC  @Ri                内部RAM单元减1                  1          1
DEC  direct              直接寻址单元减1                2          1
MUL  AB                  累加器乘寄存器B                1          4
DIV  AB                  累加器除以寄存器B              1          4
三、逻辑运算类指令
ANL  A,Rn              累加器与寄存器                  1          1
ANL  A,@Ri            累加器与内部RAM单元  1          1
ANL  A,#data          累加器与立即数                  2          1
ANL  A,direct          累加器与直接寻址单元            2          1
ANL  direct,A          直接寻址单元与累加器            2          1
ANL  direct,#data      直接寻址单元与立即数            3          1
ORL  A,Rn              累加器或寄存器                  1          1
ORL  A,@Ri            累加器或内部RAM单元  1          1
汇编判断指令ORL  A,#data            累加器或立即数                  2          1
ORL  A,direct          累加器或直接寻址单元            2          1
ORL  direct,A          直接寻址单元或累加器            2          1
ORL  direct,#data      直接寻址单元或立即数            3          1
XRL  A,Rn              累加器异或寄存器                1          1
XRL  A,@Ri            累加器异或内部RAM单元  1          1 XRL  A,#data            累加器异或立即数                2          1
XRL  A,direct          累加器异或直接寻址单元          2          1
XRL  direct,A          直接寻址单元异或累加器          2          1
XRL  direct,#data      直接寻址单元异或立即数          3          2
RL    A                  累加器左循环移位                1          1
RLC  A                  累加器连进位标志左循环移位      1          1
RR    A                  累加器右循环移位                1          1
RRC  A                  累加器连进位标志右循环移位      1          1
CPL  A                  累加器取反                      1          1
CLR  A                  累加器清零                      1          1
四、控制转移类指令类
ACCALL addr11            2KB范围内绝对调用  2          2 AJMP  addr11            2KB范围内绝对转移  2          2 LCALL  addr16            2KB范围内长调用  3          2
LJMP  addr16            2KB范围内长转移  3          2
SJMP  rel                相对短转移                      2          2
JMP    @A+DPTR          相对长转移                      1          2
RET                      子程序返回                      1          2
RET1                      中断返回                        1          2
JZ    rel                累加器为零转移                  2          2
JNZ    rel                累加器非零转移                  2          2
CJNE  A ,#data ,rel    累加器与立即数不等转移          3          2 CJNE  A ,direct ,rel  累加器与直接寻址单元不等转移    3          2 CJNE  Rn,#data ,rel    寄存器与立即数不等转移          3          2 CJNE  @Ri ,#data,rel  RAM单元与立即数不等转移  3          2 DJNZ  Rn ,rel          寄存器减1不为零转移  2          2 DJNZ  direct  ,rel      直接寻址单元减1不为零转移  3          2 NOP                      空操作                          1          1
五、布尔操作类指令
MOV    C,bit            直接寻址位送C                  2          1
MOV    bit,C            C送直接寻址位  2          1
CLR    C                  C清零  1          1
CLR    bit                直接寻址位清零                  2          1
CPL    C                  C取反  1          1
CPL    bit                直接寻址位取反                  2          1
SETB  C                  C置位  1          1
SETB  bit                直接寻址位置位                  2          1
ANL    C,bit            C逻辑与直接寻址位  2          2
ANL    C,/bit          C逻辑与直接寻址位的反  2          2
ORL    C,bit            C逻辑或直接寻址位  2          2
ORL    C,/bit          C逻辑或直接寻址位的反  2          2
JC    rel                C为1转移                        2          2
JNC    rel                C为零转移  2          2
JB    bit,rel          直接寻址位为1转移  3          2
JNB    bit,rel          直接寻址为0转移  3          2
JBC    bit,rel          直接寻址位为1转移并清该位  3          2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。