寄存器地址

合集下载

特殊寄存器地址

特殊寄存器地址
Local Word(LW)
地址
說明
注釋
9000
配方資料索引位址
RWI和RBI利用這個索引位址來訪問配方資料(讀/寫)
9002~9003
數值輸入最大值
當啟動數值輸入時輸入的數值的最大值.當沒啟動數值輸入時置爲0. (讀)
9004~9005
數值輸入最小值
當啟動數值輸入時輸入的數值的最小值.當沒啟動數值輸入時置爲0. (讀)
9016
本地時間星期
BCD碼,有效值範圍0-6(讀/寫)
9020
Object queue item
number
如果object queue item number超過1000,那麽這是一個比較複雜的HMI程式,觸摸屏將自動控制PLC通信頻寬.但是如果這是由本地資料引起的,那麽您的程式就需要重新設計了.
60040
通信口類型
0:232
1:485
60041
串列傳輸速率
0:9600
1:19200
2:38400
3:57600
4:115200
60042
資料位元
0:7
1:8
60043
校驗位
0:無
1:偶校驗
2:奇校驗
60044
停止位
0:1 Bit
1:2 Bit
60045
人機站號
60046
PLC站號
60047
多台人機互連
9044
Recipe Word儲存至系
統參數
置ON執行此功能,系統會自動置OFF.
只有特定的Recipe Word會儲存至系統參數,詳細請參照系統保留Recipe Word說明.(寫)
9045

寄存器的地址

寄存器的地址

寄存器的地址
读芯⽚的寄存器定义⽂档的时候,每个寄存器都定义了各⾃的地址。

这个地址看起来和内存的地址是⼀样⼀样的。

那中间有什么关联呢?其实没啥⼤的关联,只不过寄存器的地址和内存的地址都是在CPU的寻址空间中。

简单的说寄存器的地址指向的就是寄存器,跟其他什么什么的没有关系。

访问寄存器的⽅式和访问内存的⽅式⼀样⼀样的。

不过要注意⼀下,这种⽅式只适应⼤多数的嵌⼊式芯⽚。

对于X86芯⽚来说,访问寄存器是有特别的指令的。

设备驱动程序要直接访问外设或其接⼝卡上的物理电路,这部分通常都是以寄存器的形式出现。

外设寄存器也称为I/O端⼝,通常包括:控制寄存器、状态寄存器和数据寄存器三⼤类。

根据访问外设寄存器的不同⽅式,可以把CPU分成两⼤类。

⼀类CPU(如M68K,Power PC 等)把这些寄存器看作内存的⼀部分,寄存器参与内存统⼀编址,访问寄存器就通过访问⼀般的内存指令进⾏,所以,这种CPU没有专门⽤于设备I/O的指令。

这就是所谓的“I/O内存”⽅式。

另⼀类CPU(典型地如X86)将外设的寄存器看成⼀个独⽴的地址空间,所以访问内存的指令不能⽤来访问这些寄存器,⽽要为对外设寄存器的读/写设置专⽤指令,如IN和OUT指令。

这就是所谓的” I/O端⼝”⽅式。

但是,⽤于I/O 指令的“地址空间”相对来说是很⼩的。

事实上,现在x86的I/O地址空间已经⾮常拥挤。

《汇编语言》寄存器物理地址(第二章第二节)

《汇编语言》寄存器物理地址(第二章第二节)

DS ES SS CS 地 址 加 法 IP 器 地 址 总 线 AB
本课件由汇编网()制作提供
物理地址PA = 段地址 + 偏移地址 = ( 段寄存器 ) × 10H + 偏移地址 或段寄存器的内容左移4位,加上偏移地址
例:某内存单元的段地址由DS、偏移地址由BX给出。
2.5 16位结构的CPU

概括的讲,16位结构描述了一个CPU具有 以下几个方面特征:

1、运算器一次最多可以处理16位的数据。 2、寄存器的最大宽度为16位。 3、寄存器和运算器之间的通路是16位的。


2.6 8086CPU给出物理地址的方法


8086有20位地址总线,可传送20 位地址,寻址能力为1M。 8086内部为16位结构,它只能传送 16位的地址,表现出的寻址能力却 只有64K。
2.7 “段地址×16+偏移地址=物理地址” 的本质含义

两个比喻说明:

说明“基础地址+偏移地址 = 物理地址” 的思想:第一个比喻 说明“段地址×16+偏移地址=物理地址” 的思想:第二个比喻 8086CPU就是这样一个只能提供两张3位 数据纸条的CPU。

2.8 段的概念

错误认识:

内存被划分成了一个一个的段,每一个 段有一个段地址。
通用寄存器
数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)
5
2.1 通用寄存器



8086CPU所有的寄存器都是16位的, 可以存放两个字节。 AX、BX、CX、DX 通常用来存放一般 性数据被称为通用寄存器。 下面以AX为例,我们看一下寄存器的 逻辑结构。

寄存器寻址指令

寄存器寻址指令

字节3 HIGH DATA
字节1
字节2
字节3 字节4 字节5 字节6
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 LOW HIGH DISP DISP LOW HIGH
操作码 D W MOD REG R/M 或 DATA 或 DATA DATA DATA
P67
MOV SP,BX
1000101 1 1 1
(3) POP 出栈操作指令
指令格式:POP 目标
指令功能:目标 ((SP)+1,SP)) SP (SP)+2
SS
栈顶
POP BX 56H 78H
POP AX 12H 34H
78H 56H
34H
12H
SP
栈底
堆栈(Stack)
POP指令
汇编语句
例子
说明
POP reg16 POP CX
16位寄存器
绝大多数双操作数指令,除非特别说明,目的操作数与源操作 数必须类型一致,否则为非法指令
MOV AL,050AH MOV AL,BX 寄存器有明确的字节或字类型,有寄存器参与的指令其操作数 类型就是寄存器的类型 对于存储器单元与立即数同时作为操作数的情况,必须显式指 明;byte ptr指示字节类型,word ptr指示字类型
栈底
汇编语句
例子
说明
PUSH reg16 PUSH BX
16位寄存器
PUSH mem16 PUSH WORD PTR[BX] 16位寻址方式
PUSH seg
PUSH DS
任何段寄存器
例:现场保护恢复
push ax push bx push ds ... pop ds pop bx pop ax

寄存器与7种寻址方式

寄存器与7种寻址方式

一、寄存器总共有14个16位寄存器,8个8位寄存器通用寄存器:数据寄存器:AH(8位) AL(8位) AX(16位) (AX和AL又称累加器)BH(8位) BL(8位) BX(16位) (BX又称基址寄存器,唯一作为存储器指针使用寄存器)CH(8位) CL(8位) CX(16位) (CX用于字符串操作,控制循环的次数,CL 用于移位)DH(8位) DL(8位) DX(16位) (DX一般用来做32位的乘除法时存放被除数或者保留余数)指针寄存器:SP 堆栈指针(存放栈顶地址)BP 基址指针(存放堆栈基址偏移)变址寄存器:主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移,即作为存储器(短)指针使用。

作为通用寄存器,它们可以保存16位算术逻辑运算中的操作数和运算结果,有时运算结果就是需要的存储单元地址的偏移.SI 源地址(源变址寄存器)DI 目的地址(目的变址寄存器)控制寄存器:IP 指令指针FLAG 标志寄存器①进位标志CF,记录运算时最高有效位产生的进位值。

②符号标志SF,记录运算结果的符号。

结果为负时置1,否则置0。

③零标志ZF,运算结果为0时ZF位置1,否则置0。

④溢出标志OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。

溢出时OF位置1,否则置0。

⑤辅助进位标志AF,记录运算时第3位(半个字节)产生的进位值。

⑥奇偶标志PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。

当结果操作数中1的个数为偶数时置1,否则置0。

段寄存器CS 代码段IPDS 数据段SS 堆栈段SP BPES 附加段二、七种寻址方式:1、立即寻址方式:操作数就包含在指令中。

作为指令的一部分,跟在操作码后存放在代码段。

这种操作数成为立即数。

立即数可以是8位的,也可以是16位的。

例如:指令: MOV AX,1234H则: AX = 1234H2、寄存器寻址方式:操作数在CPU内部的寄存器中,指令指定寄存器号。

寄存器的物理地址的概述

寄存器的物理地址的概述

3.2.1 寄存器概述ARM微处理器有37个32位长的寄存器,其中包括30个通用寄存器,6个状态寄存器和一个程序计数器寄存器(PC)。

如图3.2所示,ARM微处理器中将这37个寄存器分成不同的组,在ARM微处理器的每种工作模式下只能使用其中一组寄存器。

我们知道,ARM微处理器共有7种模式,其中用户模式和系统模式拥有物理空间上完全相同的寄存器,而其它5种异常模式都有一些自己独立的寄存器。

从图上可以看出,在用户和系统模式下可以使用R0-R15和CPSR共17个寄存器;在FIQ模式下可以使用R0-R15,CPSR,CPSR共18个寄存器,其中R8-R14以及SPSR寄存器是FIQ模式专有寄存器,其它寄存器和用户模式共用相同的物理寄存器;在IRQ、SVC、Undef、Abort模式下可以使用的寄存器都是18个(R0-R15,CPSR,SPSR),其中R13,R14,CPSR是各个模式专有的,其它和用户模式共用相同的物理寄存器。

可见,ARM内核中一共有37个物理上独立的寄存器,在每一种处理器模式中只能访问一组相应的寄存器。

在每组寄存器中:R13通常用作栈指针寄存器(SP),每一种模式有自己的R13,所以允许每一种异常都有自己的栈指针。

R14用作连接或返回地址寄存器(LR),每一种模式有自己的R14。

R15用作程序计数器(PC),用来保存读取指令的地址。

CPSR (Current Program Status Register) 存储ARM微处理器当前的状态和模式标志。

SPSR (Saved Program Status Register)异常模式下的CPSR的备份寄存器,当一个异常发生时保存当前的CPSR值。

结合连接寄存器可使处理器返回先前的状态。

ARM微处理器这样组织寄存器的好处在于当各种异常发生的时候,每种异常模式都可以保存一些重要的数据,使异常处理程序完成之后返回异常前的程序时不会破坏原有的寄存器或状态。

各种寄存器位地址

/* - IO51.H -Special header for the 8051/52/31/32 processors.Version 4.00 [IANR]*/#pragma language=extended/*===============================*//* Predefined SFR Byte Addresses *//*===============================*/sfr P0 = 0x80;sfr P1 = 0x90;sfr P2 = 0xA0;sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98;sfr SBUF = 0x99;sfr T2CON = 0xC8;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD;/*For W77E58*/sfr ROMMAP = 0XC2;sfr CKCON = 0X8E;sfr PMR = 0XC4;sfr TA = 0XC7;sfr P4 = 0XA5;/*==============================*//* Predefined SFR Bit Addresses *//*==============================*//*========PSW========*/ bit CY = 0xD7;bit AC = 0xD6;bit F0 = 0xD5;bit RS1 = 0xD4;bit RS0 = 0xD3;bit OV = 0xD2;bit P = 0xD0;/*========TCON=======*/ bit TF1 = 0x8F;bit TR1 = 0x8E;bit TF0 = 0x8D;bit TR0 = 0x8C;bit IE1= 0x8B;bit IT1= 0x8A;bit IE0= 0x89;bit IT0= 0x88;/*========IE=========*/ bit EA = 0xAF;bit ET2 = 0xAD;bit ES = 0xAC;bit ET1 = 0xAB;bit EX1 = 0xAA;bit ET0 = 0xA9;bit EX0 = 0xA8;/*========IP=========*/ bit PT2 = 0xBD;bit PS = 0xBC;bit PT1 = 0xBB;bit PX1 = 0xBA;bit PT0 = 0xB9;bit PX0 = 0xB8;/*========P3=========*/ bit RD = 0xB7;bit WR = 0xB6;bit T1 = 0xB5;bit T0 = 0xB4;bit INT1= 0xB3;bit INT0= 0xB2;bit TXD = 0xB1;bit RXD = 0xB0;/*========SCON========*/ bit SM0 = 0x9F;bit SM1 = 0x9E;bit SM2 = 0x9D;bit REN = 0x9C;bit TB8 = 0x9B;bit RB8 = 0x9A;bit TI = 0x99;bit RI = 0x98;/*========T2CON=======*/bit TF2 = 0xCF;bit EXF2= 0xCE;bit RCLK= 0xCD;bit TCLK= 0xCC;bit EXEN2 = 0xCB;bit TR2 = 0xCA;bit C_T2 = 0xC9;bit CP_RL2= 0xC8;/*========PORT1========*/bit P10 = 0x90;bit P11 = 0x91;bit P12 = 0x92;bit P13 = 0x93;bit P14 = 0x94;bit P15 = 0x95;bit P16 = 0x96;bit P17 = 0x97;/*========PORT3========*/bit P30 = 0xB0;bit P31 = 0xB1;bit P32 = 0xB2;bit P33 = 0xB3;bit P34 = 0xB4;bit P35 = 0xB5;bit P36 = 0xB6;bit P37 = 0xB7;/*==============================*//******* Interrupt Vector Definitions *****//*==============================*/interrupt [0x03] void EX0_int (void); /* External Interrupt 0 */ interrupt [0x0B] void T0_int (void); /* Timer 0 Overflow */interrupt [0x13] void EX1_int (void); /* External Interrupt 1 */ interrupt [0x1B] void T1_int (void); /* Timer 1 Overflow */interrupt [0x23] void SCON_int (void); /* Serial Port */interrupt [0x2B] void T2_int (void); /* Timer 2 Overflow */interrupt [0x2B] void T2EX_int (void); /* Negative Transition on T2EX */。

间接寻址和地址寄存器指令


地址寄存器指令的缺点
缺乏灵活性
地址寄存器指令直接使用寄存器中的地址作为操作数的地址,这使 得程序在处理不同情况时缺乏灵活性。
可扩展性差
由于地址寄存器指令直接使用寄存器中的地址,当数据结构发生变 化时,可能需要修改整个程序以适应新的数据结构。
增加编程难度
由于地址寄存器指令直接使用寄存器中的地址,因此需要程序员手 动管理寄存器的值,这增加了编程的难度和出错的风险。
要点二
中断处理
在处理硬件中断时,地址寄存器指令 用于指定中断处理程序的入口地址。 当发生中断时,系统会自动跳转到该 地址执行中断处理程序。
要点三
直接内存访问( DMA)
在直接内存访问操作中,地址寄存器 指令用于指定要传输数据的起始地址 。通过设置地址寄存器的值,DMA 控制器可以直接在内存和设备之间传 输数据,而不需要CPU的干预。
随着云计算技术的普及,间接寻址和 地址寄存器指令将逐渐云端化,通过 将指令执行的结果存储在云端,实现 数据共享和远程控制,提高应用的灵 活性和可扩展性。
应用领域拓展
物联网
随着物联网技术的不断发展,间 接寻址和地址寄存器指令将在物 联网领域得到广泛应用,如智能 家居、智能农业等,通过指令控 制各种设备的运行,提高智能化 水平和生活质量。
指令格式
指令格式通常包括操作码、 寄存器号和可能的修饰符。
寄存器号指定了要使用的地 址寄存器,如AX、BX、CX 等。
操作码指定了要执行的操作 ,如加法、减法、乘法等。
修饰符可能包括间接寻址、 变址寻址等,用于指定如何 访问内存单元。
03
CATALOGUE
间接寻址与地址寄存器指令的比较
相似之处
选择依据
编程语言和指令集

寄存器PLC地址与寄存器modbus协议地址

寄存器PLC地址与寄存器modbus协议地址寄存器PLC地址指存放于控制器中的地址,这些控制器可以是PLC,也可以使触摸屏,或是⽂本显⽰器。

PLC地址⼀般采⽤10进制描述,共有5位,其中第⼀位代码寄存器类型。

第⼀位数字和寄存器类型的对应关系如表1所⽰。

PLC地址例如40001、30002等。

寄存器modbus协议地址指通信时使⽤的寄存器地址,在实际编程中,由于寄存器PLC地址前缀的区分作⽤,所以只需说明后4位数,⽽且需转换为4位⼗六进制地址。

例如PLC地址40001对应寻址地址0x0000,40002对应寻址地址0x0001,寄存器寻址地址⼀般使⽤16进制描述。

再如,PLC寄存器地址40003对应协议地址0002,PLC寄存器地址30003对应协议地址0002。

在实际编程中,由于前缀的区分作⽤,所以只需说明后4位数,⽽且需转换为4位⼗六进制地址。

⽀持 Modbus 协议的设备或软件,使⽤时⽤户直接设置或看到的应 当是 Modbus 数据地址。

Modbus 地址所访问的数据,是通过各种 “功能”读写⽽来。

功能码是 Modbus 地址的底层。

如果 Modbus 通 信的⼀⽅提供的所谓 Modbus 协议只有功能码,则需要注意了解此 功能号与 Modbus 地址间的对应关系。

使⽤ modbus 地址时应注意下述问题:1)40001~4xxxx 是美国 modicon 公司和 ge 公司 plc 使⽤的 modbus 地址,它是基于1的地址,即同类元件的⾸地址为1。

西门⼦plc 的 modbus 地址是基于0的地址。

2)美国的 modbus 地址左起第2位⽤来表⽰元件的类型,例如 i0.0的 modbus 地址为010001。

因为数据类型已经包含在功能码中了,西门⼦的 i0.0的 modbus 地址实际上为000000, i2.0的 modbus 地址为 000016(或⼗六进制数16#0010) ,⽽不是010017。

modbus地址对应表

Modbus协议定义的寄存器地址是5位十进制地址,即:
线圈(DO)地址:00000~09999
触点(DI)地址:10000~19999
输入寄存器(AI)地址:30000~39999
输出寄存器(AO)地址:40000~49999
由于上述各类地址是唯一对应的,因此有些资料就以其第一个数字区分各类地址,即:0x代表线圈(DO)类地址,1x代表触点(DI)类地址、3x代表输入寄存器(AI)类地址、4x代表输出寄存器(AO)类地址。

在实际编程中,由于前缀的区分作用,所以只需说明后4位数,而且需转换为4位十六进制地址。

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。

Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。

Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。

Modbus比其他通信协议使用的更广泛的主要原因有:
对供应商来说,修改移动本地的比特或字节没有很多限制
Modbus允许多个(大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。

在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Cisco 路由器寄存器配置
配置目的:寄存器配置用于更改路由器启动过程。

启动位由4位16进制寄存器组成
格式:0xABCD
赋值范围从0x0到0xFFFF
0x2102 :工业默认值
0x2142 :从FLASH中启动,但不使用NVRAM中的配置文件(用于口令恢复)
0x2101 :从Boot RAM中启动,应用于更新系统文件
0x2141 :从Boot RAM中启动,但不使用NVRAM中的配置文件
其中C位的第三位为1时表示关闭Break键,反之表示打开Break键。

0x141:表示关闭Break键,不使用NVRAM中的配置文件,并且从系统默认的ROM中的系统中启动。

0x0040:表示允许路由气读取NVRAM中的配置文件。

监视命令功能
o:以位的形式显示实际配置的当前起作用的寄存器,
o Displays the virtual configuration register, currently in effect, wi
th a de script ion of the bits
o/r:重置实际配置的寄存器为以下值:
?9600 (端口速率)
?Break是否有效
?是否忽略NVRAM中的配置
?是否从ROM 中启动
如:o/r 0x2102
表B-1 寄存器配置定义表
位顺序十六进制意义
00 to 03 0x0000 to 0x000F 启动字段
06 0x0040 使得系统软件忽略NVRAM中的内容
07 0x0080 OEM位开启
08 0x0100 Break键关闭
10 0x0400 IP广播到所有域
11 to 12 0x0800 to 0x1000 Console口速率
13 0x2000 如果网络启动失败,默认从ROM中启动
14 0x4000 IP broadcasts do not have net numbers
15 0x8000 启动诊断信息同时忽略NVRAM内容
(1)工业默认寄存器位 0x2102。

这个只有以下几个部分组成
bit 13 = 0x2000, bit 8 = 0x0100, and bits 00 到 03 (参照 TableB-2) = 0
x0002.
表 B-2 启动为注视 (配置寄存器位 00 到 03)
启动位的意义
0x0:启动后停留在bootstrap状态
0x1:从 ROM 中启动
0x2到0xF:指定默认的启动文件启动系统,
表B-3 Console口速率设定表速率 12位 11位
9600 0 0
4800 0 1
1200 1 0
2400 1 1。

相关文档
最新文档