51单片机汇编语言的指令格式
一个简单的循环灯实例下图中的8个发光二极管代表 8 个彩灯,让我们看看是如何实现的
STAT: MOV A , #01H ; 高电平对应的发光二极管亮
LOOP: MOV P1, A ; 从 P1 口输出到发光二极管
MOV R1, #10
DEL1: MOV R2 , #200
DEL2: MOV R3, #126
DEL3: DJNZ R3, DEL3
DJNZ R2, DEL2
DJNZ R1, DEL1
RL A
LJMP LOOP ; 左移一位 , 下一个发光二极管亮
END
汇编语言指令格式
[ 标号 ] : 操作码 [ 目的操作数 ] [ 源操作数 ] ; [ 注释 ]
↓ ↓ ↓ ↓ ↓
LOOP : MOVX A , @DPTR ; 将外部 RAM 单元内容送到 A
标号: 又称为指令地址符号。对标号有如下规定:
一般由 1 ~ 8 个 ASCII 字符组成,以字母开头,其余字符可以是字母、数字和其他特定字符。
不能使用助记符、伪指令或者寄存器的符号名称做标号。
与操作码之间用冒号分开,带方括号表示为可选项。
一个标号只能在程序中出现一次,不能重复出现。
操作码是由助记符表示的字符串,它规定了指令要完成的具体操作。
操作数指令操作的对象 . 操作数分为目的操作数(上例累加器 A) 和源操作数(上例中的 @DPTR). 目的操作数和源操作数的书写顺序不能颠倒 .
注释对指令功能的说明,以便于阅读,符号“;”后面的内容为注释。
汇编指令及其注释中常用的符号
Rn ------选中当前的工作寄存器区中的寄存器R0~R7之一
@ Ri------选中当前的工作寄存器组中的寄存器R0或R1,间接寻址前缀符号direct------直接地址,一个内部RAM单元地址或SFR地址.
#data ------------8位或16位常数,也称立即数. #为立即数前缀标志符号
addr11------------11位目的地址
addr16------------16位目的地址
rel ---------------8位地址偏移量,值在-128~+127范围内
bit---------------位地址.SFR的位地址(可用符号或名称表示)
/-----------------位操作前缀,表示该位内容求反
(×)------------表示以×为地址单元中内容
((×))--------表示以×为地址单元中内容为地址的单元中的
编辑:admin 最后修改时间:2018-05-08