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. Busybox制作ARM(iTOP4412) 根文件系统

    本记录来源与自身操作过程. 1.制作环境 PC环境:外部Winows8.1 内部则为vmware11+ubuntu12.04 嵌入式设备:iTOP4412 交叉工具:arm-none-linux-gn ...

  2. windows下面使用nssm设置新的服务实现开机自启等

    1.下载: http://nssm.cc/download/?page=download 2.解压: 根据自己的系统选择相应的32bit或者64bit,然后将相应的可执行文件拷贝到系统环境中.配置环境 ...

  3. ORM框架之------Dapper,Net下无敌的ORM

    一,介绍:Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省力,这 ...

  4. net core体系-web应用程序-4net core2.0大白话带你入门-7asp.net core日志组件(Logger和Nlog)

    asp.net core日志组件   日志介绍 Logging的使用 1. appsettings.json中Logging的介绍 Logging的配置信息是保存在appsettings.json配置 ...

  5. plink命令

    用plink远程登陆link主机执行脚本,但是无法执行sudo命令 完成后自己关闭 plink   -l  root   192.168.1.21  df -h plink.exe  -ssh  -p ...

  6. awk介绍

    awk 是一个强大的文本处理工具,它将文本逐行读入,并进行切片,默认以空白格为分割符,对单个切片进行分析,处理. 用法: awk '{pattern + action}' {filenames} 尽管 ...

  7. Linux 文件夹相关常用命令

    Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf  -r  就是向下递归,不管有多少级目录,一并删 ...

  8. centos6.5安装/升级到python2.7

    https://www.cnblogs.com/harrymore/p/9024287.html

  9. csrf技巧

    Burpsuite,在数据包处右键,Engagement tools – Generate CSRF PoC,可生成csrf payload

  10. 利用反射编写私有 Private 方法的单元测试

    利用反射编写私有 Private 方法的单元测试 最近在添加一个新feature时,鉴于要给自己的代码一是增加代码的强壮性,二是增加代码测试的覆盖率.但是遇到了有些方法是 Private 的,但是在调 ...