第三章 MCS-51单片机的指令系统
第二节 寻址方式
Ⅱ、
复习
预应力混凝土预制梁农业生态学考研国际私法笔记专题二标点符号数据的收集与整理
旧课(共计3 min)
§3-1 MCS-51单片机指令系统概述
1、指令和指令系统的概念?
答:指令是指计算机完成某种操作的命令;
指令系统是指一台计算机所有指令的集合。
2、指令中两个基本部分各自的含义?
答:操作码
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
明指令要执行的操作;
操作数表示参与操作的数据或数据所存放单元的地址。
3、三种类型操作数可作为源操作数还是目的操作数?
答:立即数操作数:只可作为源操作数
寄存器操作数、存储器操作数:即可作源操作数,也可作为目的操作数
◆教师提问
第1、2题询问基础差的学生,可帮助其树立学习的信心
第3题请中等水平学生回答
◆学生回答
Ⅲ、导入新课(共计2min)
单片机通常使用的是面向机器的汇编语言编写程序,这与我们平时所用的面向过程的高级语言有很大的区别,比如用高级语言(BASIC语言),编写求“10+20”结果的语句,可用如下三句语句实现: X = 10 Y = 20 Z = X+Y。
用BASIC语言编写如上程序时,编程者只要知道10存放在X单元,20存放在Y单元,结果存放在Z单元中,至于它们的具体地址则根本不需要关心。而用汇编语言编程时,要针对系统的硬件环境编程,数据的存放、传送、运算都要通过指令来完成,编程者必须至始至终十分清楚操作数的位置,以便将它们传送至适当的空间去操作。因此,如何寻找存放操作数的空间地址和提取操作数就变得尤为重要,这就是我们今天要学习的内容——寻址方式。
本节内容是《单片机原理与应用》中“汇编语言编程”关键章节“指令系统”的重要基础知识。
大家在学习时,务必要严谨、细致、注意力集中,做好笔记,尝试运用归纳方法进行分析和思考。
◆举 例
为讲授新课作铺垫
说明两种程序设计语言的区别,以引出本节课的内容
◆介绍知识结构
强调学习方法
Ⅳ、新课教学(共计34 min)
§3-2 寻址方式
(2个概念及7种寻址方式介绍)(2 min)
寻址就是寻找操作数的地址。
寻址方式就是如何确定操作数所在的地址,并把它们提取出来的方法。它是汇编语言程序设计中最基本的内容之一,必须十分熟悉,牢固掌握。
在MCS-51系统中,有7种寻址方式:(1) 立即寻址;(2) 直接寻址;(3) 寄存器寻址;(4) 寄存器间接寻址;(5)变址寻址;(6) 相对寻址;(7)位寻址。
一、立即寻址 Immediate Addressing (9min)
概念:在指令的操作码后面直接给出实际操作数,由于操作数随同指令一起取得,无需再去其它单元寻找,故称立即寻址。
提问:立即数操作数在书写时注意点是什么?
回答:立即数操作数在书写时须加“#”作为前缀。
备注:在立即数前必须要加“#”。
访问的存储空间: ROM。
提问:大家分析一下,为什么立即寻址访问的空间是ROM?
导入:程序是有指令构成的,而指令中的立即数与指令又有何关系呢?
回答:立即数存放在指令中。
强调:立即数是指令的一部分,而指令又是程序的组成部分,因此,其可访问的空间是ROM。
其涉及空间如下图所示:
举例:
例1:MOV A, #3AH ;A(3AH,将立即数3AH送累加器A
例2: MOV DPTR,#5678H ;DPTR(5678H,将立即数5678H送到数据指针DPTR
二、直接寻址 Direct Addressing(7min)
概念:在指令中直接给出操作数所在存储单元的地址,称为直接寻址。
访问的存储空间:(1)内部RAM低128B;(2)专用寄存器。其涉及空间如下图所示:
举例:
例1: MOV A, 3AH ; A((3AH),将内部RAM中3AH单元的内容送到累加器A,3AH加括号表示3AH单元的内容。
提问:本句指令与立即寻址例1有何区别?
答:立即寻址例1 指令中“3AH”有“#”作为前缀,而直接寻址例1指令中“3AH”没有。
例2:MOV A, DPH ; DPH字节地址为83H
MOV A, 83H ;83H是DPH的单元地址
这两种方法等价,即这两句指令经过汇编以后,其机器码完全相同。通常,编程者倾向于寄存器名称。
三、寄存器寻址 Register Addressing(7min)
概念:由指令指出某一个寄存器中的内容作为操作数,称为寄存器寻址。
访问的存储空间:(1)工作寄存器R0~R7;(2)A、B、DPTR。
其工作寄存器结构示意图如下:
分析:由于工作寄存器区共有4组,如果不做如何设置,在寄存器寻址必然会出现4个单元的重叠,因此,我们在是使用寄存器寻址前,必须进行当前工作寄存器区的选择,即“4选1操作”,这是由程序状态字寄存器PSW中RS1、RS0控制的。
当前工作寄存器区的选择对应表
PSW.4(RS1)
PSW.3(RS0)
当前工作寄存器区
R0—R7
0
0
0区(00H-07H)
0
1
1区(08H-0FH)
1
0
2区(10H-17H)
1
1
3区(18H-1FH)
提问:假设 PSW中的RS1、RS0 = 00,此时R1的是何地址?为什么?
回答:因为当前工作寄存器区为工作寄存器区0,其R0-R7对应地址为00H~07H,所以,R1的具体地址为01H。
举例:
例:MOV A,R1 ;A ( R1,寄存器R1中的内容传送至累加器A
四、寄存器间接寻址 Register Indirect Addressing(9min)
概念:操作数所在的单元地址存放在寄存器中,在指令中只给出了存放单元地址的寄存器,由于地址是通过寄存器间接获得的,故称为寄存器间接寻址.
强调“间接”的含义:寄存器中存放的不是操作数,而是操作数所在的单元地址。
备注:为了对寄存器寻址和寄存器间接寻址加以区别,在MCS-51系统中,用寄存器名前加“@”符号的方法,来表示寄存器间接寻址。
访问的存储空间:(1)内部RAM低128B;(2)外部RAM。
其涉及空间如下图所示:
强调:
内部RAM低128B使用的间址寄存器是@R0、@R1;
外部RAM使用的间址寄存器是@R0、@R1(针对其低256 B)或@DPTR(针对其全部64KB)。
举例:
例1:MOV R0,#31H
MOV A, @R0 ; A ( ((R0))是把R0寄存器所指的那个片内RAM单元中的内容传送给A,设(31H)=20H,指令运行后,则(A)=20H。
强调:由于寄存器R0中存放的不是操作数,而是操作数所在存储单元的地址,因此R0的外侧必须加上两层括号,即((R0))。
例2:MOV DPTR, #3456H
MOVX A, @DPTR ;A (((DPTR))是把 DPTR寄存器所指的那个片外RAM单元中的内容传送给 A,设(3456H)=99H,指令运行后 ( A )=99H。
说明:MOVX是针对外部RAM访问的指令。
提问:此例中为何不用R0、R1,而用DPTR作为间址寄存器?
点拨:大家可从其外部RAM单元的地址分析。
回答:因为处于外部RAM地址为单元的地址已超出了R0、R1的查找范围,故使用DPTR作为间址寄存器。
强调:当外部RAM单元的地址是低256个单元时,才可选用R0、R1作为间址寄存器;而使用DPTR则可访问外部RAM全部的64KB空间。
◆教师讲解
◆知识链接
◆教师讲解
◆教师设问
◆学生回答
着重强调立即数的书写要求
◆诱导学生分析
◆教师导入
◆学生回答
◆教师强调
◆教师分析
通过图形,构建学生对存储器的空间结构
◆举例说明
课件演示指令操作示意图,帮助学生了解立即寻址的特点,熟悉专用寄存器
◆教师讲解
◆分析示意图
强化学生对直接寻址方式涉及存储器空间的印象
◆举例说明
课件演示指令操作示意图
◆教师设问
◆学生回答
着重强调两种寻址方式的区别
◆教师点拨
联系实际,用学校的名称和地址打比方
◆教师讲解
◆分析示意图
强调当前工作寄存器区的选择,必须在寄存器寻址前完成
◆教师分析
为何需要PSW中RS1、RS0两位进行控制
◆说明当前工作寄存器区选择设置方法
◆教师设问
询问基础较好的学生
◆学生回答
◆举例说明
课件演示指令操作示意图
◆教师讲解
◆教师点拨
说明“间接”的内涵
强调符号“@”
◆分析示意图
通过图形中的地址,对比两部分空间的大小
着重强调不同空间对应的间址寄存器
◆举例说明
课件演示指令操作示意图
强调@符号,以及指令解释中R0及DPTR外侧两层括号的含义
◆教师设问
◆教师点拨
◆学生回答
强调应根据外部RAM单元的地址,来选用间址寄存器。
Ⅴ、课堂练习及总结(共计4min)
1、练习:判断下列指令中源操作数的寻址方式,并归纳其特点?
1、MOV A, #50H
2、MOV A, 50H
3、MOV A, R1
4、MOV A, @R1
2、小结:四种寻址方式的特点及其区别。
◆学生讨论回答
◆教师点拨
通过归纳总结,启发学生得出寻址方式特点,突出本节重点
◆教师小结
(备注:板书中黑体字为各寻址方式概念的概要。)
§3-2 寻址方式
概念:1、寻址
2、寻址方式
一、立即寻址。 “#”
1、概念:“立即数”
2、访问的空间:ROM
二、直接寻址。
1、概念:“存储单元的地址”
2、访问的空间:
⑴内部RAM的低128B
⑵专用寄存器(SFR)
三、寄存器寻址。
1、概念:“寄存器包含操作数”
2、访问的空间:
⑴寄存器R0~R7
⑵A、B、DPTR
四、寄存器间接寻址。 “@”
1、概念:“寄存器包含操作数所在单元的地址”
2、访问的空间:
⑴内部RAM的低128B(@R0、@R1)
⑵外部RAM 低128B(@R0、@R1)
全部64KB(@DPTR)
�
�
�
�