1.寻址图解

2.直接寻址

直接寻址包括两大类,绝对地址寻址和符号地址寻址

绝对地址:由一个标识符和存储器位置组成。
例如:I 0.0 Q 1.7 PIW 256 PQW 512 MD 20 T 15 C 16 DB1.DBB 10 L1 0.0 

符号地址 :给绝对地址分配有意义的符号名,使得程序可读性。

例如: Q4.0 符号名 ’Motor_On’

3.间接寻址

间接寻址分为两大类 存储器间接寻址寄存器间接寻址

3.1 存储器间接寻址又分为 16位 指针存储器间接寻址和 32位 指针存储器间接寻址

3.1.1 16位指针存储器间接寻址

16位地址指针用于定时器、计数器、程序块(DB、FC、FB)的寻址,16位指针可被看做一个无符号的整数

(0~65535),它表示定时器(T),计数器(C),数据块(DB、DI)或程序块(FB、FC)的块号

寻址格式:  区域标识符[16位地址指针]

举例:

L   1
T   MW0
A   I0.0
L   S5T#10S
SD   T[MW0]
//

3.1.2 32位指针存储器间接寻址

32位地址指针用于 I、Q、L、数据块等存储器中,位、字节、字、双字的寻址,32位的地址指针可以使用一个双字表示,

第 0 位~第2位作为寻址操作的位地址,第 3 位到第18位作为寻址操作的字节地址,第19位~第31位没有定义,32位指针的格式如下:

存储器32位指针仅用于内部区域寻址

寻址格式表示为:地址存储器标识符[32位地址指针]

举例1:

T   MD[LD0]

MD 为区域标识符及访问宽度,LD0为一个32位指针

举例2:

32位内部区域指针可用常数表示,表示为P#字节.位。如常数

P# 10.3   表示指向第10个字节的第3位指针常数

举例3:

若将一个32位整型转换为字节指针常数,从上述指针格式可以看出,应该要把该数左移3位

或是乘8 即可。

L   L#100  //ACCU0装入32位整型 100

SLD   3    //左移3位

T        LD0   //LD0得到 P#100.0 指针常数

3.2 寄存器间接寻址

通过CPU地址寄存器AR1 和AR2寻址方式称为寄存器间接寻址,分为内部区域间接寻址和交叉区域寻址

3.2.1内部区域间接寻址

32位地址指针用于 I、Q、L、数据块等存储器中,位、字节、字、双字的寻址,32位的地址指针可以使用一个双字表示,

第 0 位~第2位作为寻址操作的位地址,第 3 位到第18位作为寻址操作的字节地址,第19位~第31位没有定义,32位指针的格式如下:

该间接寻址表示格式  :存储器标识符[ARX,地址偏移量]

举例1:

L   MW [AR1,P#2.0]

'MW'为被访问的存储器及访问宽度,'AR1'为地址寄存器1,P#2.0 为地址偏移量

3.2.2交叉区域寄存器间接寻址

包含有存储器区域信息的指针称为交叉区域指针

交叉区域指针格式如下:

交叉区域指针常数表达格式: P# 存储器  字节 . 位

举例1:

P#Q10.5

P#DB1.DBX32.0

交叉区域寻址表示为:  访问宽度[ARx,偏移量]

举例2: L  P#M20.0

    TAR1

    L 1234

    T  W[AR1,P#2.0]

PLC300寻址指令的更多相关文章

  1. [计算机组成原理][实验十.R-I-J型指令CPU设计实验总结]

    总算解决一大心头之患了,比想象中容易,通宵两夜,刷完了十个实验,这个实验就是最后的了.感慨颇多.特地写篇总结. 想做一件事,就立马去做把.你会发现没那么困难,往往最大的困难,是心里的困难. 培养了HD ...

  2. 计算机组成原理--64位CPU装载32位操作系统,它的寻址能力还是4GB吗?

    借由这个问题,今天我们就把 32 位 CPU.64 位 CPU.32 位操作系统.64 位操作系统之间的区别与联系彻底搞清楚.对于这个问题,博主也是一知半解了好长时间啊~ 基本概念 32位的CPU与6 ...

  3. ARM指令集(上)

    ADuC702x可以用两套指令集:ARM指令集和Thumb指令集.本小节介绍ARM指令集.在介绍ARM指令集之前,先介绍指令的格式. A.2.1  指令格式         (1)基本格式       ...

  4. MMU讲解

    MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器.物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制 ...

  5. Linux内核完全注释之编程语言和环境(一)

    as86汇编器 1.来源与对于linux的用途 as86来源minix-386开发的intel 8086.80386汇编编译程序和链接程序,他主要为linux创建16位的启动引导扇区程序boot/bo ...

  6. ARM指令系统

    转载自:http://cxb4224.blog.163.com/blog/static/191224151201110220325976/ ARM处理器的工作状态和工作模式 工作状态 ARM处理器一般 ...

  7. 进程和cpu的相关知识和简单调优方案

    进程就是一段执行的程序,每当一个程序执行时.对于操作系统本身来说,就创建了一个进程,而且分配了相应的资源.进程能够分为3个类别:     1.交互式进程(I/O)     2.批处理进程 (CPU) ...

  8. 【十分钟教会你汇编】MIPS编程入门(妈妈说标题要高大上,才会有人看>_<!)

    无意中找到一篇十分好用,而且篇幅也不是很大的入门教程,通篇阅后,再把“栗子”敲一遍,基本可以有一个比较理性的认识,从而方便更好地进一步深入学习. 废话不多说,上干货(英语好的直接跳过本人的渣翻译了哈— ...

  9. Android ARM汇编语言

    简介 ARM是Advanced RISC Machine的首字母缩写,它可以称之为一家嵌入式处理器的提供商,也可以理解为一种处理器的架构,还可以将它作为一套完整的处理器指令集. 原生程序与ARM汇编语 ...

随机推荐

  1. 试验IFTTT同步发微博

    没啥 测试下同步发微博    

  2. vue生命周期探究(一)

    前言 在使用vue开发的过程中,我们经常会接触到生命周期的问题.那么你知道,一个标准的工程项目中,会有多少个生命周期勾子吗?让我们来一起来盘点一下: 根组件实例:8个 (beforeCreate.cr ...

  3. [转] HTML5+规范:device(管理设备信息)

    http://blog.csdn.net/qq_27626333/article/details/51815310 Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI.IMSI.型号 ...

  4. Evaluation map and reflexive space

    For a normed space \(X\), an isometric isomorphism can be defined from \(X\) to its second dual spac ...

  5. vue 中如何对公共css、 js 方法进行单文件统一管理,全局调用

    1.前言 最近,为公司开发交付的一个后台管理系统项目,我使用了 Vue 框架进行开发实践. 模块化.组件化.工程化的开发体验非常好.良好的 api,优雅的设计,对于工程师非常友好. 但是由于模块比较多 ...

  6. 利用Flume将MySQL表数据准实时抽取到HDFS

    转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...

  7. 简单的使用Nginx框架搭建Web服务器~

    系统环境Debian 8,内核版本 一.首先来安装nginx服务程序:  1.安装nginx服务需要的相关程序(记得在root权限下操作下面的指令) aptitude install libpcre3 ...

  8. Django之Models(二)

    Django之Models(二) 创建一对多的关系 一个出版商可以有多本出版的书 一本书只有一个出版商 创建一对多的语法: 字段名= models.ForeignKey(关联表(类名),on_dele ...

  9. PAT (Advanced Level) Practise 1004 解题报告

    GitHub markdownPDF 问题描述 解题思路 代码 提交记录 问题描述 Counting Leaves (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 1600 ...

  10. UVA 815 Flooded!

    题意:来自:https://blog.csdn.net/lecholin/article/details/70186673 思路: ①数组存每个网格的高度,然后排序,做题时想象为上面的柱状图. ②注意 ...