文档介绍:2017/11/11
第4章 80C51单片机指令系统
1/30
第4章 80C51单片机指令系统
单片机指令系统概述
80C51单片机指令寻址方式
80C51 单片机指令分类介绍
2017/11/11
第4章 80C51单片机指令系统
2/30
单片机指令系统概述
第4章 80C51单片机指令系统
2017/11/11
第4章 80C51单片机指令系统
3/30
指令概述
指令:是CPU根据人们的意图来执行某种操作的命令。
指令系统:是计算机所能够执行的全部指令的集合。
程序:是按人们的要求所编制的指令操作序列。
程序设计语言:是编写程序的某种规则。
三类编程语言:
机器语言、汇编语言、高级语言
2017/11/11
第4章 80C51单片机指令系统
4/30
机器语言:用二进制编码表示每条指令,是计算机能直接识别和执行的语言。
汇编语言:是用助记符、符号和数字等来表示指令的程序设计语言。它与机器语言指令是一一对应的。
本章主要介绍80C51单片机的汇编语言指令系统。
2017/11/11
第4章 80C51单片机指令系统
5/30
指令格式和指令的表示形式
80C51汇编语言指令格式
[标号:] 操作码[目的操作数][,源操作数][;注释]
例如:
标号字段: 操作码操作数;注释字段
START: MOV A,#00H ;0→A
MOV R1,#10 ;10→R1
MOV R2,#00000011B ;3→R2
LOOP: ADD A,R2 ;(A)+(R2)→A
DJNZ R1,LOOP ;R1内容减1不为零,则跳转到
;LOOP一行,循环
NOP
HERE: SJMP HERE
2017/11/11
第4章 80C51单片机指令系统
6/30
指令中的常用符号
1. Rn(n=0~7)当前选中的工作寄存器R0~R7
2 . Ri(i=0,1)当前选中的、作地址指针的寄存器R0、R1
3 . #data 8位立即数
4 . #data16 16位立即数
如:MOV DPTR,#data16
5 . direct 8位片内RAM单元(包括SFR)的直接地址
如:MOV direct,#data ;#datadirect
6 . addr11
11位目的地址,用于ACALL和AJMP指令中
7 . addr16
16位目的地址,用于LCALL和LJMP指令中
2017/11/11
第4章 80C51单片机指令系统
7/30
8 . rel 补码形式的8位地址偏移量
9 . bit 片内RAM或SFR的直接寻址的位地址
10 . @ 间接地址方式中,表示间址寄存器的符号
11 . / 对位取反操作如:ANL C,/
12 . (×) 指“×”中的内容,其内容是数据; ×是地址
13 . (( ×))由“×”间接寻址单元中的内容, ×中的
内容“(×) ”是地址
如:设58H单元的数据是36H,R0的内容是58H
INC 58H ;(58H)+158H
DEC ***@R0 ;((R0))-1 (R0)
14 . 示将箭头左边的内容传送到箭头右边的单元
2017/11/11
第4章 80C51单片机指令系统
8/30
指令的字节数和指令周期
汇编语言指令对应的二进制代码格式:
单字节指令
双字节指令
三字节指令
单字节指令
1、指令码中隐含着对某一种寄存器的操作
如:指令“INC DPTR”的指令代码格式为:
A3H= 1 0 1 0 0 0 1 1
2、由指令中的rrr三位的不同编码指定某一寄存器
如:指令“MOV A,Rn”的指令代码格式为:
1 1 1 0 1 r r r
2017/11/11
第4章 80C51单片机指令系统
9/30
双字节指令
用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。
格式为:
操作码
立即数或地址
三字节指令
一个字节操作码,两个字节操作数。
格式为:
操作码
立即数或地址
立即数或地址
2017/11/11
第4章 80C51单片机指令系统
10/30
80C51单片机指令寻址方式
第4章 80C51单片机指令系统