
1 第3章 8051指令系统与 编程基础 1

2 第3章 8051指令系统与编程基础 3.1 指令系统概述 3.2 指令格式 3.3 指令系统的寻址方式 3.4 8051指令系统分类介绍 3.4.1 数据传送类指令 3.4.2 算术运算类指令 3.4.3 逻辑操作类指令 3.4.4 控制跳转类指令 3.4.5 位操作类指令 3.5 8051指令系统汇总 3.6 某些指令的说明 3.7 8051汇编语言程序设计基础

3 3.7.1 编程语言概述 3.7.2 汇编语言语句和格式 3.7.3 伪指令 3.7.4 汇编语言源程序的汇编 3.8 8051汇编语言程序设计举例 3.8.1 子程序的设计 3.8.2 查表程序设计 3.8.3 分支转移程序设计 3.8.4 循环程序设计

4 内容概要 凡是8051内核的单片机均使用8051的汇编语言指令系统。介绍 指令系统寻址方式 对111条基本指令按功能分类详细讲解。 指令-是CPU按照人们的意图来完成某种操作的命令,它以英 文名称或缩写形式作为助记符。 汇编语言指令-用助记符、符号地址、标号等表示的书写程 序的语言。 熟知并掌握8051指令系统的各类指令是AT89S51/52单片机汇 编语言源程序的设计基础

5 3.1 指令系统概述 简明、易掌握、效率较高的指令系统,复杂指令集。 按所占字节分,分三种: (1)单字节指令49条; (2)双字节指令45条; (3)三字节指令17条。 按执行时间来分,分三种: (1)1个机器周期(12个时钟振荡周期)的指令64条; (2)2个机器周期指令45条; (3)4个机器周期——乘、除指令。 5

6 12MHz晶振,每个机器周期为1µs。 AT89S52一大特点是在硬件结构中有一个位处理机,一个处理 位变量的指令子集。 3.2 指令格式 指令格式:指令的表示方法。 指令通常由两部分组成:操作码和操作数。 操作码——指令进行什么操作。 操作数——指令操作的对象。可能是一具体数据,也可能是 指出到哪里取得数据的地址或符号。 指令长度不同,格式也就不同。 6

7 (1)单字节指令:操作码和操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字节是操作数 。 (3)三字节指令:操作码占一个字节,操作数占二个字节。 3.3 指令系统的寻址方式 寻址方式——在指令中说明操作数所在地址的方法。 一般说,寻址方式越多,功能就越强,灵活性则越大,指令系 统就越复杂。 寻址方式所要解决的主要问题就是如何在整个存储器和寄存器 的寻址空间内快速地找到指定的地址单元。 下面介绍指令系统7种寻址方式。 7

8 1.寄存器寻址方式 指令中的操作数为某一寄存器的内容。 例如:MOV A,Rn ;(Rn)→A,n =0~7 把Rn中的源操作数送入到累加器A中。由于指令指定了从寄存 器Rn中取得源操作数,所以称为寄存器寻址方式。 2.直接寻址方式 指令中直接给出操作数的单元地址,该单元地址中的内容就 是操作数,直接的操作数单元地址用“direct”表示。 例如: MOV A,direct “direct”就是操作数的单元地址。 8

9 例如: MOV A,40H 表示把内部RAM 40H单元(direct)的内容传送到A。指令 中源操作数(右边的操作数)采用的是直接寻址方式。 指令中两个操作数都可由直接寻址方式给出。 例如: MOV direct1,direct2 具体指令:MOV 42H,62H 把片内RAM中62H单元的内容送到片内RAM中的42H单元中。 直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式。 9

10 3. 寄存器间接寻址方式 寄存器中存的是操作数地址,即先从寄存器中找到操作数的地 址,再按该地址找到操作数。 为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方 式中,应在寄存器名称前面加前缀标志“@” 。 例如:MOV A,@Ri ;i=0或1 其中, Ri的内容为40H,即把内部RAM 40H地址单元中的内容 传送给A。 10