第3章 8051指令系统与 编程基础 2 1
1 第3章 8051指令系统与 编程基础 1
第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.78051汇编语言程序设计基础 2
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.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 循环程序设计 3
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 循环程序设计
内容概要 凡是8051内核的单片机均使用8051的汇编语言指令系统。介绍 指令系统寻址方式 对111条基本指令按功能分类详细讲解。 指令--一是CPU按照人们的意图来完成某种操作的命令,它以英 文名称或缩写形式作为助记符。 汇编语言指令-一一用助记符、符号地址、标号等表示的书写程 序的语言。 熟知并掌握8051指令系统的各类指令是AT89S51/52单片机汇 编语言源程序的设计基础。 4
4 内容概要 凡是8051内核的单片机均使用8051的汇编语言指令系统。介绍 指令系统寻址方式 对111条基本指令按功能分类详细讲解。 指令---是CPU按照人们的意图来完成某种操作的命令,它以英 文名称或缩写形式作为助记符。 汇编语言指令---用助记符、符号地址、标号等表示的书写程 序的语言。 熟知并掌握8051指令系统的各类指令是AT89S51/52单片机汇 编语言源程序的设计基础
3.1指令系统概述 简明、易掌握、效率较高的指令系统,复杂指令集。 按所占字节分,分三种: (1)单字节指令49条; (2)双字节指令45条; (3)三字节指令17条。 按执行时间来分,分三种: (1)1个机器周期(12个时钟振荡周期)的指令64条; (2)2个机器周期指令45条; (3)4个机器周期一乘、除指令。 5
5 3.1 指令系统概述 简明、易掌握、效率较高的指令系统,复杂指令集。 按所占字节分,分三种: (1)单字节指令49条; (2)双字节指令45条; (3)三字节指令17条。 按执行时间来分,分三种: (1)1个机器周期(12个时钟振荡周期)的指令64条; (2)2个机器周期指令45条; (3)4个机器周期——乘、除指令。 5
12MHz晶振,每个机器周期为1μs。 AT89S52一大特点是在硬件结构中有一个位处理机,一个处理 位变量的指令子集。 3.2指令格式 指令格式:指令的表示方法。 指令通常由两部分组成:操作码和操作数。 操作码一指令进行什么操作。 操作数一指令操作的对象。可能是一具体数据,也可能是 指出到哪里取得数据的地址或符号。 指令长度不同,格式也就不同。 6
6 12MHz晶振,每个机器周期为1µs。 AT89S52一大特点是在硬件结构中有一个位处理机,一个处理 位变量的指令子集。 3.2 指令格式 指令格式:指令的表示方法。 指令通常由两部分组成:操作码和操作数。 操作码——指令进行什么操作。 操作数——指令操作的对象。可能是一具体数据,也可能是 指出到哪里取得数据的地址或符号。 指令长度不同,格式也就不同。 6
(1)单字节指令:操作码和操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字节是操作数 (3)三字节指令:操作码占一个字节,操作数占二个字节。 3.3指令系统的寻址方式 寻址方式一一在指令中说明操作数所在地址的方法。 一般说,寻址方式越多,功能就越强,灵活性则越大,指令系 统就越复杂。 寻址方式所要解决的主要问题就是如何在整个存储器和寄存器 的寻址空间内快速地找到指定的地址单元。 下面介绍指令系统7种寻址方式。 7
7 (1)单字节指令:操作码和操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字节是操作数 。 (3)三字节指令:操作码占一个字节,操作数占二个字节。 3.3 指令系统的寻址方式 寻址方式——在指令中说明操作数所在地址的方法。 一般说,寻址方式越多,功能就越强,灵活性则越大,指令系 统就越复杂。 寻址方式所要解决的主要问题就是如何在整个存储器和寄存器 的寻址空间内快速地找到指定的地址单元。 下面介绍指令系统7种寻址方式。 7
1.寄存器寻址方式 指令中的操作数为某一寄存器的内容。 例如:MOVA,Rn ;(R)→A,n=0≈7 把Rn中的源操作数送入到累加器A中。由于指令指定了从寄存 器R中取得源操作数,所以称为寄存器寻址方式。 2.直接寻址方式 指令中直接给出操作数的单元地址,该单元地址中的内容就 是操作数,直接的操作数单元地址用“direct”表示。 例如:MOVA,direct “direct”就是操作数的单元地址。 8
8 1.寄存器寻址方式 指令中的操作数为某一寄存器的内容。 例如:MOV A,Rn ;(Rn)→A,n =0~7 把Rn中的源操作数送入到累加器A中。由于指令指定了从寄存 器Rn中取得源操作数,所以称为寄存器寻址方式。 2.直接寻址方式 指令中直接给出操作数的单元地址,该单元地址中的内容就 是操作数,直接的操作数单元地址用“direct”表示。 例如: MOV A,direct “direct”就是操作数的单元地址。 8
例如:MOV A,40H 表示把内部RAM4OH单元(direct)的内容传送到A。指令 中源操作数(右边的操作数)采用的是直接寻址方式。 指令中两个操作数都可由直接寻址方式给出。 例如: MOV direct1,direct2 具体指令:MOV42H,62H 把片内RAM中62H单元的内容送到片内RAM中的42H单元中。 直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式。 9
9 例如: MOV A,40H 表示把内部RAM 40H单元(direct)的内容传送到A。指令 中源操作数(右边的操作数)采用的是直接寻址方式。 指令中两个操作数都可由直接寻址方式给出。 例如: MOV direct1,direct2 具体指令:MOV 42H,62H 把片内RAM中62H单元的内容送到片内RAM中的42H单元中。 直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式。 9
3.寄存器间接寻址方式 寄存器中存的是操作数地址,即先从寄存器中找到操作数的地 址,再按该地址找到操作数。 为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方 式中,应在寄存器名称前面加前缀标志“@”。 例如:MOVA,@Ri ;=0或1 其中,R的内容为4OH,即把内部RAM4OH地址单元中的内容 传送给A。 10
10 3. 寄存器间接寻址方式 寄存器中存的是操作数地址,即先从寄存器中找到操作数的地 址,再按该地址找到操作数。 为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方 式中,应在寄存器名称前面加前缀标志“@” 。 例如:MOV A,@Ri ;i=0或1 其中, Ri的内容为40H,即把内部RAM 40H地址单元中的内容 传送给A。 10