详解西门子间接寻址讲解案例分析

合集下载

西门子数据格式以及寻址,实例讲解清晰易懂,PLC编程必修课

西门子数据格式以及寻址,实例讲解清晰易懂,PLC编程必修课

西门子数据格式以及寻址,实例讲解清晰易懂,PLC编程必修课PLC在应用时需要处理各种各样的数据,因此为了应付这些数据,它的存储单元就需要有多种格式,今天带大家了解一下,西门子1200PLC 的数据格式.西门子S7-1200 CPU中可以按照位、字节、字和双字,对存储单元进行寻址。

二进制数的一位只有0或1两种不同的取值,可以用来表示数字量或称开关量的两种不同的状态,如触点的断开和接通线圈的通电和断电等。

八位二进制数组成一个字节,其中的第0位为最低位,第七位为最高位。

两个字节组成一个字,其中的第0位为最低位,第15位为最高位。

两个字组成一个双字,其中的第0位为最低位,第31位为最高位。

西门子S7-1200 CPU,不同的存储单元都是以字节为单位, 如图所示:对位数据的寻址由字节地址和位地址组成,如I3.2,其中的区域标识符I表示输入映像区,字节地址为3,位地址为2,这种存取方式称为字节位寻址方式。

对字节的寻址,如MB2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,B表示寻址长度为一个字节,即寻址为存储区中的第二个字节。

对字的寻址,如MW2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,W表示寻址长度为一个字,即两个字节,寻址为存储区中从第二个字节开始的一个字,即字节2和字节3。

请注意,两个字节组成一个字,遵循的是低地址、高字节的原则。

以MW2为例,MB2为MW2的高字节,MB3为MW2的低字节。

对双字的寻址,如MD0,其中的区域标识符M表示为存储区,0表示寻址单元的起始字节地址,D表示寻址长度为一个双字,即两个字四个字节,寻址为存储区中从第0个字节开始的一个双字,即字节0、字节1、字节2和字节3。

寻址方式详解分类:寻址方式从大的方面可以分成直接寻址和间接寻址。

直接寻址就像甲要和乙说话直接叫乙的名字就可以了,甲直接和乙建立联。

间接寻址就像甲要和乙说话,而乙在另外一个城市,甲就写了一封信通过邮递员送给乙,甲通过邮递员间接和乙建立联系,这就叫间接寻址。

2.1.4 间接寻址_PLC职业技能培训及视频精讲——西门子STEP 7_[共2页]

2.1.4 间接寻址_PLC职业技能培训及视频精讲——西门子STEP 7_[共2页]

第2章 PLC
快速提高
189
图2.1.1 STEP 7管理界面
图2.1.2 全局符号表 图2.1.3 使用符号地址程序例 (2)局域符号
请参考本章功能和功能块相关内容。

2.1.4 间接寻址
1.存储器间接寻址
A I[MD10] //检测I 位的状态,I 的地址由MD10的值决定
= Q[MD10]
//驱动Q 位,Q 的地址由MD10的值决定 L QD[MD10] //装载QD 的数值到累加器1中,QD 的地址由MD10的值决定
上面程序中I[MD10]和Q[MD10],像这种使用存储器给定地址的寻址方式,称为存储器间接寻址。

I[MD10]和Q[MD10]中的MD10称为指针,其里面的数值代表地址,例如P#3.5。

能作为指针使用的存储器有MD 、LD 、DBD 和DID ,而且必须是双字。

存储器指针的格式如图2.1.4所示,其中0~2位是地址的位编号(0~7),3~18位是字节的编号(0~65535)。

例如在图2.1.5所示程序中,MD10 = 2#111011,0~2位的数值是3,3~18位的数值是7,所示MD10指针值是P#7.3。

使用存储器寻址,该存储器的值是操作数的地址,改变该储存器的值相当于改变了操作数的地址,在循环等程序中经常使用存储器间接寻址。

值得注意的是,如果操作数是字节、字或双字,使用存储器间接寻址时,需要确保指针代表位地址的值为零,否则会出现寻址错误。

详解西门子间接寻址 (2)

详解西门子间接寻址 (2)

详解西门子间接寻址【地址的概念】完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT 等)。

其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。

我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。

当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。

由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A其中的A是指令符,是A的操作数,也就是地址。

这个地址由两部分组成:Q:指的是映像输出区:就是这个映像输出区第二个字节的第0位。

由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:。

DB X 200 . 0其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。

这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。

给定指令操作的地址方法,就是寻址方法。

在谈间接寻址之前,我们简单的了解一下直接寻址。

所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A ,就是直接寻址,对于A这个指令来说,就是它要进行操作的地址。

这样看来,间接寻址就是间接的给出指令的确切操作数。

对,就是这个概念。

比如:A Q[MD100] ,A T[DBW100]。

程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。

间接由此得名。

西门子的间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。

在 STEP 7 (TIA 博途) 中,如何在 SCL 程序中实现间接寻址

在 STEP 7 (TIA 博途) 中,如何在 SCL 程序中实现间接寻址

在STEP 7 (TIA 博途) 中,如何在SCL 程序中实现间接寻址?S7-300/400 控制器使用SCL 有两种方法可以进行间接寻址。

•变量的间接寻址•DB 块的间接寻址变量的间接寻址类似于绝对寻址。

只是在括号内定义一个偏移量来替换掉地址值。

对于数据块的间接寻址,可以使用转换函数"WORD_TO_BLOCK_DB" 进行转换。

下图中的例子,描述了在S7-300/400 中如何使用间接寻址来访问DB 块中的数据。

图. 01如果希望通过间接寻址访问S7-300/400 的M,I 区和Q 区,需要使用指令%MX(), %MB(), %MW(), %EX(), %EB(), %EW(), %AX(), %AB()和%AW()。

在访问区域前面必须添加百分号。

如下图2 所示。

图. 02SIMATIC S7-1200/1500 控制器可使用表01 中指令来实现间接寻址。

指令描述POKE 写存储器地址POKE_BOOL 写存储器位PEEK 读存储器地址PEEK_BOOL 读存储器位POKE_BLK 写存储区表01可通过如图3 所示,使用PEEK 和POKE 指令来访问数据块中的数据。

图. 03注意PEEK 和POKE 指令无法在S7-300/400 中使用。

更多关于间接寻址及指令使用的相关信息,请参阅STEP 7 (TIA 博途) 在线帮助。

图. 04 是如何在S7-1200/S7-1500中使用"POKE_BLK" 指令实现间接寻址的例子。

源DB(标签名"DB_Number_SRC") 的数据被拷贝到目的DB (标签名"DB_Number_DES") 中。

Fig. 04表01 所列相关指令详细信息请参阅STEP 7 (TIA 博途) 在线帮助。

创建环境该FAQ 相关截图由STEP 7 (TIA 博途) V13 创建。

在S7-200中如何对于一个项目实例进行间接域寻址

在S7-200中如何对于一个项目实例进行间接域寻址

说明:
以下描述了在STEP 7 MicroWIN中可能的一种间接寻址使用.
例子中包含了OB1,一个数据块和一个状态表.
OB1包含4段程序。

500)this.width=500" border=0>
图1:在SFC功能块中的4段程序
注意第2段程序:
*AC1 中的(*)星号意味着正使用AC1所指向的地址内容,而并非AC1本身的值另一部分是数据块.
500)this.width=500" border=0>
图2:需要一个状态表用于测试和监控.
500)this.width=500" border=0>
图3:下载程序到控制器中,然后打开状态表,点击"Table Status" 观察变化.
首先保持监控当前的状态,可以看到VB200 到VB210 的值为1-10.而VB 220 之后全为空白.
当I0.0 为1时,这两点将被创建.
当I0.1为1时,从VB200 开始的连续前4个字节将被传送到VB220-VB223 中.
在第3段程序中将I0.0 置0可以分别增加1个地址字节,通过触发I0.2的上升沿可以增加多个地址字节.
在第4段程序中将I0.0 置0可以分别减少1个地址字节,通过触发I0.3的上升沿可以减少多个地址字节.
从入口条目为1109582.的"S7-200自动化系统" 手册中可以找到关于该主题的进一步信息,另外通过在线帮助输入"直接和间接寻址"也是非常有用的.。

SIEMENS STEP7 间接寻址ppt课件

SIEMENS STEP7 间接寻址ppt课件

Date: File:
2021/3/23 SSP2_03C.24
Information and Training Center Knowledge for Automation
SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: File:
2021/3/23 SSP2_03C.25
Information and Training Center Knowledge for Automation
SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: File:
2021/3/23 SSP2_03C.22
Information and Training Center Knowledge for Automation
SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: File:
2021/3/23 SSP2_03C.1
Information and Training Center Knowledge for Automation
立即寻址的例子
SIMATIC S7
SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: File:
2021/3/23 SSP2_03C.23
Information and Training Center Knowledge for Automation
SIMATIC S7
Siemens AG 2000. All rights reserved.

西门子S7-1200 PLC的间接寻址功能及实例

西门子S7-1200 PLC的间接寻址功能及实例

S7-1200指针数据- 已解决问题看了这个问题的网友还看了∙西门子模拟量电压问题西门子博图V14安装步骤∙S7-200/S7-1200/S7-300 EPLAN宏下载S7-1200 怎么实现与上位机进行Modbus_TCP/TP通讯∙打开S7-PLCSIM V13就提示几个文件签名无效,然后报错退出。

关于博图软件怎样安装∙1200PLC编程时,同样是16个位,怎样把数组转换为INT?西门子plc1200编程软件下载∙wincc与s7-1200怎么通讯1200PLC不能与PC机链接,找不到设备,输入输出,如附件IF #EXCUTE = True THENPOKE_BLK(area_src:= #AREA_SRC, (* 源数据类型:16#81:I,16#82:Q,16#83:M,16#84:DB *) dbNumber_src:= #DB_NUM_SRC, (* 源数据块:非DB=0 *)byteOffset_src:= #START_BIT_SRC, (* 源数据起始位号 DB[#DB_NUM_SRC].DBB[#START_BIT_SRC] *)area_dest:= #AREA_TYPE, (* 目标存储类型:16#81:I,16#82:Q,16#83:M,16#84:DB *)dbNumber_dest:= #DB_NUM, (* 目标数据块:非DB=0 *)byteOffset_dest:= #START_BIT, (* 目标起始位位号 DB[#DB_NUM].DBB[#START_BIT] *)count:= #BYTE_COUNT); (* 复制长度字节 *)END_IF;图片说明:回答者:sunnic - 高级技术员第7级2016-08-14 17:08:21提问者对于答案的评价:谢谢已有1人评论展开6wenhua6:你好,我按照你做的,怎么不行西门子S7-1200循环程序间接寻址的方法循环程序的关键是间接寻址,西门子S7-1200的间接寻址离不开数组。

西门子S7-300高级编程培训4间接寻址和地址寄存器

西门子S7-300高级编程培训4间接寻址和地址寄存器

Date: File:
2011-9-5 PRO2_04E.4
SITRAIN Training for
Automation and Drives
在程序中分析数据块DB相关信息 在程序中分析数据块 相关信息
用于DB寄存器的指令: 用于 寄存器的指令: 寄存器的指令
CDB:交换DB寄存器内容 :交换 寄存器内容
DB41 1.0 2.0 Meas_Value[1] Meas_Value[2]
#Ini_Value
-
32 #Counter 36 40
9.0 10.0 11.0 . . .
Meas_Value[9] Meas_Value[10] Meas_Value[11] 等等。 等等。
SIMATIC S7
Siemens AG 2001. All rights reserved.
组合指令 包含OPN D DB..) (包含 )
L DB19.DBW4
L “Values”.Number_1
A DB10.DBX4.7
的第4个字节的第 个字节的第7位开始扫描 从DB 10 的第 个字节的第 位开始扫描
SIMATIC S7
Siemens AG 2001. All rights reserved.
SITRAIN Training for
Automation and Drives
间接寻址示例
FC30:间接寻址示例 : Network(段) 1:使用间接寻址方式打开 ( :使用间接寻址方式打开DB L #dbnumber T MW 100 OPN DB[MW 100] Network (段) 2: L T L next: T L T L L -D T L LOOP P#18.0 MD 40 10 MB 50 0 DBW[MD 40] MD 40 P#2.0 MD 40 MB 50 next // 将DB号拷贝到 号拷贝到MW100 号拷贝到 // // 打开DB 打开 循环删除 // // // // // // // // // // // // 将终端地址( 将终端地址(DBW18)作为指针 ) 传送到MD 40; 传送到 ; 将循环计数器值设置为10 将循环计数器值设置为 传到MB 50中; 传到 中 装载初始值 传到DB50中; 传到 中 装载指针 并减去2个字节 并减去 个字节 然后再传回 到MD 40; ; 装载循环计数器 减去2个字节 条件满足则跳转; 个字节, 减去 个字节,条件满足则跳转;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

详解西门子间接寻址等级:弓剑手威望:0发贴:116经验:416财产:407魅力:411注册:2005-5-21【地址的概念】完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。

其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。

我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。

当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。

由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A其中的A是指令符,是A的操作数,也就是地址。

这个地址由两部分组成:Q:指的是映像输出区:就是这个映像输出区第二个字节的第0位。

由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:。

DB X 200 . 0其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。

这样,一个确切的地址组成,又可以写成:地址标识符 + 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。

给定指令操作的地址方法,就是寻址方法。

在谈间接寻址之前,我们简单的了解一下直接寻址。

所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A ,就是直接寻址,对于A这个指令来说,就是它要进行操作的地址。

这样看来,间接寻址就是间接的给出指令的确切操作数。

对,就是这个概念。

比如:A Q[MD100] ,A T[DBW100]。

程序语句中用方刮号 [ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。

间接由此得名。

西门子的间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。

【存储器间接寻址】存储器间接寻址的地址给定格式是:地址标识符+指针。

指针所指示存储单元中所包含的数值,就是地址的确切数值单元。

存储器间接寻址具有两个指针格式:单字和双字。

单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。

双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。

指针可以存放在M、DI、DB和L区域中,也就是说,可以用这些区域的内容来做指针。

单字指针和双字指针在使用上有很大区别。

下面举例说明:L DW#16#35 BX[MD2] BX[MD2] BW[MD2] 这样的寻址是错误的提法,这里做个解释:DB[MW100].DBW[MD2] 这样的寻址结构就寻址原理来说,是可以理解的,但从SIEMENS 程序执行机理来看,是非法的。

在实际程序中,对于这样的寻址,程序语句应该写成:OPN DB[WM100],L DBW[MD2]----------------- -事实上,从这个例子的中心思想来看,根本没有必要如此复杂。

但为什么要用间接寻址呢?要澄清使用间接寻址的优势,就让我们从比较中,找答案吧。

例子告诉我们,它最终执行的是把DB的某个具体字的数据传送到位存储区某个具体字中。

这是针对数据块100的1数据字传送到位存储区第1字中的具体操作。

如果我们现在需要对同样的数据块的多个字(连续或者不连续)进行传送呢?直接的方法,就是一句一句的写这样的具体操作。

有多少个字的传送,就写多少这样的语句。

毫无疑问,即使不知道间接寻址的道理,也应该明白,这样的编程方法是不合理的。

而如果使用间接寻址的方法,语句就简单多了。

【示例程序的结构分析】我将示例程序从结构上做个区分,重新输入如下:=========================== 输入1:指定数据块编号的变量|| L 100|| T MW 100===========================输入2:指定字地址的变量|| L DW#16#8|| T MD 2===========================操作主体程序OPN DB [MW 100]L DBW [MD 2]T MW[MD2]显然,我们根本不需要对主体程序(红色部分)进行简单而重复的复写,而只需改变MW100和MD2的赋值(绿色部分),就可以完成应用要求。

结论:通过对间接寻址指针内容的修改,就完成了主体程序执行的结果变更,这种修改是可以是动态的和静态的。

正是由于对真正的目标程序(主体程序)不做任何变动,而寻址指针是这个程序中唯一要修改的地方,可以认为,寻址指针是主体程序的入口参数,就好比功能块的输入参数。

因而可使得程序标准化,具有移植性、通用性。

那么又如何动态改写指针的赋值呢?不会是另一种简单而重复的复写吧。

让我们以一个具体应用,来完善这段示例程序吧:将DB100中的1-11数据字,传送到MW1-11中在设计完成这个任务的程序之前,我们先了解一些背景知识。

【数据对象尺寸的划分规则】数据对象的尺寸分为:位(BOOL)、字节(BYTE)、字(WORD)、双字(DWORD)。

这似乎是个简单的概念,但如果,MW10=MB10+MB11,那么是不是说,MW11=MB12+MB13?如果你的回答是肯定的,我建议你继续看下去,不要跳过,因为这里的疏忽,会导致最终的程序的错误。

按位和字节来划分数据对象大小时,是以数据对象的bit来偏移。

这句话就是说,0bit 后就是1bit,1bit后肯定是2bit,以此类推直到7bit,完成一个字节大小的指定,再有一个bit的偏移,就进入下一个字节的0bit。

而按字和双字来划分数据对象大小时,是以数据对象的BYTE来偏移!这就是说,MW10=MB10+MB11,并不是说,MW11=MB12+MB13,正确的是MW11=MB11+MB12,然后才是MW12=MB12+MB13!这个概念的重要性在于,如果你在程序中使用了MW10,那么,就不能对MW11进行任何的操作,因为,MB11是MW10和MW11的交集。

也就是说,对于“将DB100中的1-11数据字,传送到MW1-11中”这个具体任务而言,我们只需要对DBW1、DBW3、DBW5、DBW7、DBW9、DBW11这6个字进行6次传送操作即可。

这就是单独分出一节,说明数据对象尺寸划分规则这个看似简单的概念的目的所在。

【循环的结构】要“将DB100中的1-11数据字,传送到MW1-11中”,我们需要将指针内容按照顺序逐一指向相应的数据字,这种对指针内容的动态修改,其实就是遍历。

对于遍历,最简单的莫过于循环。

一个循环包括以下几个要素:1、初始循环指针2、循环指针自加减2、继续或者退出循环体的条件判断被循环的程序主体必须位于初始循环指针之后,和循环指针自加减之前。

比如:初始循环指针:X=0循环开始点M被循环的程序主体:-------循环指针自加减:X+1=X循环条件判断:X≤10 ,False:GO TO M;True:GO TO N循环退出点N如果把X作为间接寻址指针的内容,对循环指针的操作,就等于对寻址指针内容的动态而循环的修改了。

【将DB100中的1-11数据字,传送到MW1-11中】L L#1 //初始化循环指针。

这里循环指针就是我们要修改的寻址指针T MD 102M2: L MD 102T #COUNTER_DOPN DB100L DBW [MD 102]T MW [MD 102]L #COUNTER_DL L#2 // +2,是因为数据字的偏移基准是字节。

+DT MD 102 //自加减循环指针,这是动态修改了寻址指针的关键L L#11 //循环次数=n-1。

n=6。

这是因为,首次进入循环是无条件的,但已事实上执行了一次操作。

<=DJC M2有关于T MD102 ,L L#11, <=D的详细分析,请按照前面的内容推导。

【将DB1-10中的1-11数据字,传送到MW1-11中】这里增加了对DB数据块的寻址,使用单字指针MW100存储寻址地址,同样使用了循环,嵌套在数据字传送循环外,这样,要完成“将DB1-10中的1-11数据字,传送到MW1-11中”这个任务,共需要M1循环10次× M2循环6次 =60次。

L 1T MW 100L L#1T MD 102M1: L MW 100T #COUNTER_WM2: 对数据字循环传送程序,同上例L #COUNTER_WL 1 //这里不是数据字的偏移,只是编号的简单递增,因此+1+IT MW 100L 9 //循环次数=n-1,n=10<=IJC M1通过示例分析,程序是让寻址指针在对要操作的数据对象范围内进行遍历来编程,完成这个任务。

我们看到,这种对存储器间接寻址指针的遍历是基于字节和字的,如何对位进行遍历呢?这就是下一个帖子要分析的寄存器间接寻址的实例的内容了。

详解西门子间接寻址<4>L [MD100]LAR1与L MD100LAR1有什么区别?当将MD100以这种 [MD100] 形式表示时,你既要在对MD100赋值时考虑到所赋的值是否符合存储器间接寻址双字指针的规范,又要在使用这个寻址格式作为语句一部分时,是否符合语法的规范。

在你给出第一个例程的第一句:L [MD100]上,我们看出它犯了后一个错误。

存储器间接寻址指针,是作为指定的存储区域的确切数值单元来运用的。

也就是说,指针不包含区域标识,它只是指明了一个数值。

因此,要在 [MD100]前加上区域标识如: M、DB、I、Q、L等,还要加上存储区尺寸大小如:X、B、W、D等。

在加存储区域和大小标识时,要考虑累加器加载指令L不能对位地址操作,因此,只能指定非位的地址。

为了对比下面的寄存器寻址方式,我们这里,修改为:L MD[MD100]。

并假定MD100=8Hex,同时我们也假定MD1=Hex。

当把MD100这个双字作为一个双字指针运用时,其存储值的0-18bit将会按照双字指针的结构来重新“翻译”,“翻译”的结果才是指针指向的地址,因而MD100中的8Hex=1000B=,所以下面的语句:L MD[MD100]LAR1经过“翻译”就是:L MD1LAR1前面我们已经假定了MD1=,同样道理,MD1作为指针使用时,对0-18bit应该经过结构的“翻译”,由于是传送给AR地址寄存器,还要对24-31bit进行区域寻址“翻译”。

相关文档
最新文档