课题MCS-51型单片机的寻址方式

更新时间:2023-10-04 02:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

广告灯设计——软件部分

课 题 MCS-51型单片机的寻址方式

授课方式:讲授 教学目的:

1.让学生了解汇编语言指令的格式; 2.让学生掌握单片机指令的7种寻址方式。 重点、难点:

1.单片机的格式和指令中的常用符号; 2.单片机指令7种寻址方式的特点和区别。 教学过程 : 一、导入

前段时间我们学习了单片机的硬件方面的内容,这次课开始我们就要开始接触软件方面的内容。试想舞台灯光的控制,不同灯的点亮来实现不同的场景需求,如果我们从分析8个指示灯全部电亮为切入点,那么要实现这个要求,我们首先要学习的8051单片机的软件语言形式。所以这次课我们的主要内容学习什么是指令以及它的一些表示形式以及单片机的7种寻址方式,为我们后续的控制目标打下基础。 二、概 述

指令:是指示计算机执行某种操作的命令。

指令系统:一台计算机所具有的全部指令的集合,称为指令系统。 程序: 是各种指令的有序组合。 三、指令的表示形式及汇编 1.指令的表示形式

指令可以用汇编语言和机器语言两种形式表示。设计者编写、阅读和修改程序时,采用汇编语言格式。当计算机执行程序时,则采用机器语言形式。

指令的汇编语言形式是用助记符表示各条指令,用助记符编写的程序称为汇编语言程序(或称源程序)。 2.汇编

汇编语言编写的程序要转换成计算机能执行的机器码表示的程序,这种转换称为汇编。反之,称为反汇编。常用的汇编方法有两种:一是手工汇编,二是机器汇编。

四、指令的格式及编码

1

广告灯设计——软件部分

1.汇编语言的语句格式

汇编语言的语句即所用指令的格式如下:

[标号:]操作码 [目的操作数] [,源操作数] [;注释]

其中,带方括号[ ]的部分可以根据实际情况取舍。标号与操作码之间用“:”作分隔符,也可以加上若干空格。操作码和操作数之间可以用空格作分隔符。操作数与操作数之间以“,”分隔。注释之前用“;”作分隔符。

(1) 标号 标号是表示该指令位置的符号地址,标号后必须加“:”。 (2) 操作码 操作码表示指令所实现的操作功能,操作码助记符由表示指令操作功能的英文缩写组成。

(3) 操作数 操作数指出了参加操作的数据来源和操作结果存放的位置。 (4) 注释 注释是对语句的解释说明,必须以“;”为开始。 2.指令编码格式

令编码格式即机器语言指令格式。指令按编码长短可以分为如下3种编码格式:

(1) 单字节指令 (2) 双字节指令 (3) 三字节指令 五、常用符号

为了便于学习和阅读指令,MCS-51的指令系统中,采用了以下符号: 1.Rn(n=1~7) :指当前选中的工作寄存器组R0~R7中之一。

2.Ri(i=0~1) :指当前选中的工作寄存器组中能用作间址寄存器的R0、R1。 3.# data :8位立即数。 4. # data16 :16位立即数。

5. direct :片内RAM单元(包括SFR)的直接地址。 6. addr11 :11位目的地址。 7. addr16 :16位目的地址。

8. rel :补码形式表示的8位地址偏移量。以下一条指令第一字节地址为基址,地址偏移量范围为-128~+127。

9. bit :片内 RAM 或SFR的直接寻址位地址。 10.@ :间接寻址方式中,表示间址寄存器的符号。

11./ :位操作指令中,表示对该位先求反再参与操作,但不影响该位原值。

2

广告灯设计——软件部分

12.C :最高位进位或借位标志位或布尔处理器的累加器 13.(×): 表示由×所指地址单元或寄存器中的内容。

14.((×)):表示以×所指地址单元或寄存器中的内容为地址的存储单元中的内容。

15.→ :数据传送方向。 六、寻址方式

MCS-51单片机指令主要有以下7种寻址方式: 1.立即寻址

在这种寻址方式中,操作数为立即数,即操作数直接出现在指令中。操作数为8位或16位数据,用符号“#”表示标识,以区别直接地址。 例1 MOV A, #3AH ; 3AH→A

这条指令是把3AH这个数送入累加器A中。

ROM

? A 操作码 74H 操作数 3AH ? 3AH 3AH 图1

2.直接寻址

直接寻址就是在指令中直接给出了操作数的地址。 例2 MOV A,70H ;(70H)→A

这条指令把70H单元内容3AH送入累加器A中

图2

3.寄存器寻址

ROM

? 内部RAM 操作码 E5H 操作数 70H ? 70H ? A 3AH ? 3AH 3

广告灯设计——软件部分

寄存器寻址是指定某一可寻址的寄存器的内容为操作数。 例3 MOV A,R5 ;(R5)→A

ROM

? 低三位 为101 R5 61H A 操作码 EDH ? 61H 图3

4.寄存器间接寻址

寄存器间接寻址是把指令中指定的寄存器的内容作为操作数的地址。 例4 MOV A, @R1 ;((R1))→A

ROM

内部RAM

? 最低位 为1 R1 75H ? 3FH ? A 操作码 E7H ? 75H 图4 3FH 5.变址间接寻址

变址间接寻址是以某个寄存器的内容为基地址,然后在这个基地址的基础上加上地址偏移量形成真正的操作数地址。

例5 MOVC A, @A+PC ;((A)+(PC))→A

MOVC A, @A+DPTR ;((A)+(DPTR))→A

A DPTR ROM

02F1H +

0302H ? 1AH ? A 1AH

11H 图5

6.相对寻址

相对寻址是将程序计数器PC的当前值(是指执行完这条相对转移指令后的下一条指令的地址)为基准,与指令中的偏移量相加,其结果作为指令的转移地

4

广告灯设计——软件部分

址。指令给出的偏移量有正负号,它在指令中以补码形式给出,所转移的范围为-128~+127。

例6 JC rel

这条指令表示若(C)=0,则不跳转,程序继续向下执行;若(C)=1,则以PC中的当前值为基地址,加上偏移量rel后所得到的结果为该转移指令的目的地址。

+2 +30H PC 0100H ROM

? 源地址

0100H 40H

0101H 30H 0102H ?

PC 0132H 0132H 目的地址

? 图6

正向跳转时:

rel=目的地址-源地址-2=地址差-2

反向跳转时,目的地址小于源地址,rel用负数的补码表示:

rel=(目的地址-(源地址+2))补 =FFH-(源地址+2-目的地址)+1

=FEH-│地址差│ 7.位寻址

位寻址是指对片内RAM的位寻址区和某些有位地址的特殊功能寄存器进行位操作时的寻址方式。

例7 MOV C,07H

CLR ACC.0

第一条指令功能是把内部RAM 20H单元的D7位(位地址为07H)的内容传到位累加器C中,第二条指令功能是将累加器A的D0位(位地址为E0H)清0。

5

广告灯设计——软件部分

内部RAM

? 20H 1000 0000 ? (07H)=1 C 1 图7

小结:

1.编程者阅读、编辑、修改用汇编语言源程序,单片机直接运行机器语言程序。现一般采用汇编软件将汇编语言源程序转化为机器语言。 2.51系列单片机7种寻址方式的特点和区别。

6

本文来源:https://www.bwwdw.com/article/oibd.html

Top