gxworks3怎么设置寄存器初始值?

116 2024-02-29 05:35

一、gxworks3怎么设置寄存器初始值?

使用GX Developr新建一个工程文件(或打开已有工程文件)

2/6点击参数,双击PLC参数,打开Q参数设置3/6点击PLC文件勾选使用下列文件相关内存:

标准RAM文件名称:AAA(可自定义)容量:640K(根据自己需要设置,不要超超过上限)

4/6点击软元件设置文件寄存器软元件点数5/6设置完成之后,点击检查,检查参数设置是否有错误6/6最后点击结束设置,一定要点击结束设置参数才会保存!!至此,三菱Q plc文件寄存器参数已设置完毕,可以在程序中使用了

二、汇编语言寄存器都叫什么?

1、寄存器

32位寄存器有16个,分别是:

4个数据寄存器(EAX、EBX、ECX、EDX)。

2个变址和指针寄存器(ESI和EDI);2个指针寄存器(ESP和EBP)。

6个段寄存器(ES、CS、SS、DS、FS、GS)。

1个指令指针寄存器(EIP);1个标志寄存器(EFlags)。

2、数据寄存器

数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。

32位CPU有4个32位通用寄存器:EAX、EBX、ECX和EDX。对低16位数据的取存,不会影响高16

位的数据,这些低16位寄存器分别命名为AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。

4个16位寄存器又可分割成8个独立的8位寄存器(AX:ah~al、BX:bh~bl、CX:ch~cl:DX:dh~dl)。

每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可合可分”的特性,灵活地处理字/

字节的信息。

AX和al通常称为累加器,用累加器进行的操作可能需要更少时间,累加器可用于乘、除、输入/输出等操作,

它们的使用频率很高。

BX称为基地址寄存器,它可作为存储器指针来使用。

CX称为计数寄存器,在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用cl来

指明位移的位数。

DX称为数据寄存器,在进行乘、除运算时,它可以为默认的操作数参与运算,也可用于存放I/O的端口地址。

在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,但在32位CPU

中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据、保存算术逻辑运算结果,而且也可

作为指针寄存器,所以,这些32位寄存器更具有通用性。

3、变址寄存器

32位CPU有2个32位通用寄存器ESI和EDI,其低16位对应先前CPU中的SI和DI,对低16位数据的

存取,不影响高16位的数据。

ESI、EDI、SI和DI称为变址寄存器,它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器

操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

变址寄存器不可分割成8位寄存器,作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们可作一般的存储器指针使用,在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的

功能。

4、指针寄存器

32位CPU有2个32位通用寄存器EBP和ESP,其低16位对应先前CPU中的BP和SP,对低16位数

据的存取,不影响高16位的数据。

EBP、ESP、BP和SP称为指针寄存器,主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器

操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

指针寄存器不可分割成8位寄存器,作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们主要用于访问堆栈内的存储单元,并且规定:

BP为基指针寄存器,用它可直接存取堆栈中的数据。

SP为堆栈指针寄存器,用它只可访问栈顶。

5、段寄存器

段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成

的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。

32位CPU有6个段寄存器,分别如下:

CS:代码段寄存器 ES:附加段寄存器

DS:数据段寄存器 FS:附加段寄存器

SS:堆栈段寄存器 GS:附件段寄存器

在16位CPU系统中,只有4个段寄存器,所以,程序在任何时刻至多有4个正在使用的段可直接访问,在

32位微机系统中,它有6个段寄存器,所以在此环境下开发的程序最多可同时访问6个段。

32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的,有关规定

简单描述如下:

实方式:段寄存器CS、DS、ES和SS与先前CPU中的所对应的段寄存器的含义完全一致,内存单元的逻辑

地址仍为“段地址:偏移地址”的形式,为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移地址。

保护方式:在此方式下,情况要复杂得多,装入段寄存器的不再是段值,而是称为“选择子”的某个值。

6、指令指针寄存器

32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。

指令指针EIP、IP是存放下次将要执行的指令在代码段的偏移地址,在具有预取指令功能的系统中,下次要执

行的指令通常已被预取到指令队列中,除非发生转移情况,所以,在理解它们的功能时不考虑存在指令队列的情

况。

在实方式下,由于每个段的最大范围为64KB,所以,EIP的高16位肯定都为0,此时,相当于只用其低16

位的IP来反映程序中的指令的执行次序。

7、标志寄存器

1.运算结果标志位。一共6个,包括:CF进位标志位、PF奇偶标志位、AF辅助进位标志位、ZF零标志位、

SF符号标志位、OF溢出标志位。

2.状态控制标志位。一共3个,包括:TF追踪标志位、IF中断允许标志位、DF方向标志位。

以上标志位在第7章里都讲过了,在这里就不再解释了,现在讲讲32位标志寄存器增加的4个标志位。

1. I/O特权标志IOPL。

IOPL用两位二进制位来表示,也称为I/O特权级字段,该字段指定了要求执行I/O指令的特权级,如果当前

的特权级别在数值上小于等于IOPL的值,那么,该I/O指令可执行,否则将发生一个保护异常。

2. 嵌套任务标志NT。

NT用来控制中断返回指令IRET的执行。具体规定如下:

(1) 当NT=0,用堆栈中保存的值恢复EFlags、CS和EIP,执行常规的中断返回操作。

(2) 当NT=1,通过任务转换实现中断返回。

3. 重启动标志RF。

RF用来控制是否接受调试故障。规定:RF=0时,表示接受,否则拒绝。

4. 虚拟8086方式标志VM。

如果VM=1,表示处理机处于虚拟的8086方式下的工作状态,否则,处理机处于一般保护方式下的工作状态。

8、32位地址的寻址方式

最后说一下32位地址的寻址方式。在前面我们学习了16位地址的寻址方式,一共有5种,在32位微机系统

中,又提供了一种更灵活、方便但也更复杂的内存寻址方式,从而使内存地址的寻址范围得到了进一步扩大。

在用16位寄存器来访问存储单元时,只能使用基地址寄存器(BX和BP)和变址寄存器(SI和DI)来作为

偏移地址的一部分,但在用32位寄存器寻址时,不存在上述限制,所有32位寄存器(EAX、EBX、ECX、

EDX、ESI、EDI、EBP、和ESP)都可以是偏移地址的一个组成部分。

当用32位地址偏移量进行寻址时,偏移地址可分为3部分:

1. 一个32位基址寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP)。

2. 一个可乘以1、2、4、8的32位变址寄存器(EAX、EBX、ECX、EDX、ESI、EDI和EBP)。

3. 一个8位~32位的偏移常量。

比如,指令:mov ebx, [eax+edx*2+300]

Eax就是基址寄存器,edx就是变址寄存器,300H就是偏移常量。

上面那3部分可进行任意组合,省去其中之一或之二。

下面列举几个32位地址寻址指令:

Mov ax, [123456]

Mov eax, [ebx]

Mov ebx, [ecx*2]

Mov ebx, [eax+100]

Mov ebx, [eax*4+200]

Mov ebx, [eax+edx*2]

Mov ebx, [eax+edx*4+300]

Mov ax, [esp]

由于32位寻址方式能使用所有的通用寄存器,所以,和该有效地址相组合的段寄存器也就有新的规定,具体

规定如下:

1. 地址中寄存器的书写顺序决定该寄存器是基址寄存器还是变址寄存器。

如:[ebx+ebp]中的ebx是基址寄存器,ebp是变址寄存器,而[ebp+ebx]中的ebp是基址寄存器,ebx是变

址寄存器,可以看出,左边那个是基址寄存器,另一个是变址寄存器。

2. 默认段寄存器的选用取决于基址寄存器。

3. 基址寄存器是ebp或esp时,默认的段寄存器是SS,否则,默认的段寄存器是DS。

4. 在指令中,如果显式地给出段寄存器,那么显式段寄存器优先。

下面列举几个32位地址寻址指令及其内存操作数的段寄存器。

指令列举: 访问内存单元所用的段寄存器

mov ax, [123456] ;默认段寄存器为DS。

mov ax, [ebx+ebp] ;默认段寄存器为DS。

mov ebx, [ebp+ebx] ;默认段寄存器为SS。

mov ebx, [eax+100] ;默认段寄存器为DS。

mov edx, ES:[eax*4+200] ;显式段寄存器为ES。

mov [esp+edx*2], ax ;默认段寄存器为SS。

mov ebx, GS:[eax+edx*8+300] ;显式段寄存器为GS。

mov ax, [esp] ;默认段寄存器为SS。

三、verilog中寄存器的初始值问题,erilog怎么对寄存器组赋?

最简单的思路:

按照乒乓法则,把4-bit输入数据存入2组寄存器(共8-bit)。然后从8-bit中选择高位的5-bit,存入输出寄存器即可。选择的方法,就是制作一个表示最高有效位的指针。

此设计中,使用了一组变形的桶型移位器(可以理解为12到5的桶型移位器),不知是否满足你的要求。

以上设计稍加变化,可以使用2组标准的桶型移位器。

忘记乒乓法则,改用FIFO原理存入2组4-bit输入数据(4到4的桶型移位器)。之后的设计不变,但最高有效位的指针,将永远指向前4-bit。这样,输出的5-bit寄存器就构成一个8到5的桶型移位器。

四、汇编语言中SP寄存器是什么?

汇编语言中SP是堆栈寄存器。堆栈是一段按照后进先出原则组织起来的连续存储区域。用于程序保护或者恢复数据,或用于子程序调用及中断响应时保护与恢复现场。

SP是堆栈指针寄存器,存放着当前堆栈栈顶地址;

一般情况下,对SP有影响的指令,对SP的操作都是隐式的,即SP并不出现在指令操作数当中。要注意进出栈的匹配,否则将引起不可预期的后果。

五、PLC数据寄存器D300有初始值吗?

PLC数据寄存器D300本身没有初始值或者说初始值=0,它的值是通过其它指令赋予它的,或者是其它指令计算的结果通过传送指令传送给它的。 图中的指令是16位数据比较指令,其含义是当M10j接通,并当D300内的数据>=10的时候,把数据300传送到D752中。并当D300内的数据<10的时候,不传送数据。

六、汇编AL寄存器的第几位是什么意思?

8086下的寄存器是十六位的,分为高八位(AH)和低八位(AL)。

从右到左分别为D7和D0.

你的描述部分,“测试AL寄存器的D5和D0位”,应该是test AL,00100001.这条指令只改变标志寄存器,不回送值。其他的,你不会的在追问吧。

七、汇编语言新手问题,基址寄存器和变址寄存器分别是干什么的?

位移量一般由立即数提供,可以使一个8位或16位的立即数。

偏移量指的是偏移地址。位移量是偏移量的一个组成部分。为了表示偏移地址的方便和灵活,偏移地址可以由几部分构成。基址寄存器+变址寄存器可以理解为: 基址寄存器中保存一个数组的起始地址,变址寄存器中保存某个数组元素与数组起始之间的相对偏移,加在一起,就是某个元素的偏移地址。

八、汇编,标志寄存器的中断允许标志位IF有什么用?

8086中IF可以屏蔽 可屏蔽中断请求INTR如果外设有可屏蔽中断请求INTR,而此时CPU内IF=0,那么CPU不会响应中断只有可屏蔽中断请求INTR和IF有关系,内中断和不可屏蔽中断NMI,都不受IF的影响

九、汇编中的,附加段寄存器ES有什么用的?

附加段寄存器ES:存放当前执行程序中一个辅助数据段的段地址。 段寄存器 CS IPSS SP或BPDS BX、DI、SIES DI(用于串指令)

十、pr的比特率如何能恢复初始值,自己瞎调后发现不如原先的初始值但是忘记初始值是多少了?

一般1080p导出的比特率在10-12就OK,这也是你所说的初始值。比特率数值越大,视频质量越高,也就是越清晰,相对的,视频占用的储存空间也就越大。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片