模块二软件模块寻址方式_第1页
模块二软件模块寻址方式_第2页
模块二软件模块寻址方式_第3页
模块二软件模块寻址方式_第4页
模块二软件模块寻址方式_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常用指令描述符号:Rn——当前选中的寄存器组中的8个工作寄存器R0~R7(n=0~7)。Ri——当前选中的寄存器组中的2个工作寄存器R0、R1(i=0,1)。direct—8位的内部数据存储器单元中的地址。#data——包含在指令中的8位立即数。#data16——包含在指令中的16位立即数。addr16——16位目的地址。addr11——11位目的地址。rel——8位带符号的偏移量。DPTR——数据指针,可用作16位地址寄存器。bit——内部RAM或SFR中的直接位地址。A——累加器。B——专用寄存器,用于乘法和除法指令中。C——进位/借位标志位,或位处理中的位累加器。@——间接寻址寄存器的前缀,如@Ri,@DPTR。(×)——×单元中的内容。

——箭头左边的内容被箭头右边的内容所代替,即数据传送的方向。常用指令描述符号:寻址方式

1、寄存器寻址2、直接寻址3、立即寻址4、寄存器间接寻址5、基址加变址寄存器间接寻址6、相对寻址7、位寻址模块二:软件模块_寻址方式1、寻址方式:寻找地址的方式。

(操作数的地址)2、目的:如何在整个存储器空间内灵活方便及时地找到所需要的存储单元,对存储器单元进行访问(读/写)。3、指令的构成:操作码:指令要做什么;操作数或存放操作数的单元地址:操作的对象。模块二:软件模块_寻址方式4、要求:每种寻址方式的含义;每种寻址方式所寻址的范围;每种不同的存储空间可使用哪些寻址方式;能举例说明。模块二:软件模块_寻址方式1、寄存器寻址:以选定的工作寄存器(R0~R7)的内容作为操作数。寻址范围:由PSW中RS1、RS0选定的工作寄存器;部分专用寄存器:A、DPTR、Cy(位)。模块二:软件模块_寻址方式例:MOVA,R3;把R3的内容传送到A中

MOV:操作码,指明指令的作用是数据传送。

A:目的操作数,紧跟在操作码后面。

R3:源操作数,跟在目的操作数后面,两者之间以逗号作为分割符。分号及其后面的内容:注释。模块二:软件模块_寻址方式2、直接寻址:在指令中直接给出操作数的地址,即以内部RAM中的一个地址作为操作数的地址。(包括SFR)寻址范围:内部RAM的低128字节;

特殊功能寄存器SFR;位地址空间。(位寻址)模块二:软件模块_寻址方式注:低128字节:在指令中直接以单元地址形式出现;

SFR:可直接以单元地址形式给出;

也可以寄存器符号形式给出。

这是唯一能访问特殊功能寄存器SFR的寻址方式。模块二:软件模块_寻址方式例:MOVA,40H;把40H单元的内容传送到A中

MOVA,SP;把SP中的内容传送到A中比较:MOVA,R7;(R7)

(A)

MOVA,07H;(07H)(A)当使用第0组工作寄存器时,两条指令的操作数是一样的。两者的寻址方式不一样:

分别是寄存器寻址和直接寻址。模块二:软件模块_寻址方式3、立即寻址:在指令中直接给出操作数(立即数)。例:MOVSP,#60H;把60H这个数送到SP中

60H(SP)MOVDPTR,#7FFFH;把7FFFH这个数送到DPTR中,7FFFH(DPTR)模块二:软件模块_寻址方式注:

#:立即数标志;立即数的长度要与对应的目标存储单元的长度一致。立即数是指令的一部分,即程序的一部分。故寻址的对象是程序存储器。模块二:软件模块_寻址方式4、寄存器间接寻址:以某些寄存器的内容为地址,再以该地址对应的数据存储器单元的内容作为操作数。寄存器(指针):R0、R1、DPTR即以寄存器所指向单元的内容作为操作数。@:间接寻址符号。模块二:软件模块_寻址方式例:设(A)=00H,(R0)=30H,(30H)=40H

执行:MOVA,@R0;((R0))(A)

结果:(A)=40H,(R0)=30H比较:MOVA,@R0

MOVA,30H

MOVA,R0注:只可用R0、R1,其余工作寄存器不能用作间接寻址的指针。模块二:软件模块_寻址方式以R0、R1为指针,可寻址内部RAM的低128字节;

不可用于寻址SFR;

外部RAM(只能用这种寻址方式):

以R0、R1为指针,可寻址256字节;

以DPTR为指针,可寻址64K字节。寻址范围:模块二:软件模块_寻址方式5、基址加变址寄存器间接寻址:以基址寄存器的内容加上变址寄存器的内容之和作为操作数的地址进行间接寻址。相关指令:MOVCA,@A+DPTRMOVCA,@A+PCJMP@A+DPTR寻址对象:程序存储器。模块二:软件模块_寻址方式基址寄存器:DPTR、PC

16位,寻址范围64K;变址寄存器:A,8位,寻址范围256字节;基址+变址:地址在基址的基础上可在256字节范围内变化。比较:

DPTR或PC做基址寄存器的区别?模块二:软件模块_寻址方式6、相对寻址:以PC的当前值为基址,加相对偏移量,形成的新地址作为有效的目标地址。注:什么是PC当前值?用于跳转指令中

(PC)+rel

=跳转的目标地址。模块二:软件模块_寻址方式例:SJMP10H设:该指令地址为0100H

占2个字节

ROM0100H0101HPC首先,求PC当前值

(PC)=0100H+2=0102HPC0102H然后,求目标地址

(PC)=0102H+10H=0112HPC0112H程序就由0100H直接跳转到0112H继续执行。SJMP10H模块二:软件模块_寻址方式注:

实际应用中,使用跳转目标的符号地址来代替偏移量。优点:

可以不用计算两条指令之间的偏移量,且当偏移量发生改变时,也不需要修

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论