导航:首页 > 软件知识 > 为什么间接寻址便于子程序返回

为什么间接寻址便于子程序返回

发布时间:2022-11-25 21:25:49

‘壹’ PLC中为什么要间接寻址直接寻址不得吗求解释

你应该是用的西门子的PLC吧,就直接拿一个应用的例子来解释吧。
例如,
直接寻址是你直接对一个区间的变量赋值或者搬移,例如MOV
500,VB100;
间接寻址是你对一个地址赋值或者搬移,例如,你先将
VB100的地址赋给AC1,指令是
MOVD
&VB100,AC1
然后再MOVD
500,*AC1。
这样的两种做法的结果相同;
这样看,感觉好像直接寻址更方便,其实不然,比如如果你是要根据条件赋值给VB100~VB200中的其中一个;
如果你用直接寻址,那么你得根据条件写一百个这样的指令;例如MOV
500,VB100;MOV
500,VB101。。。。。。
如果你用间接寻址,那么你还是用上述两句话,
MOVD
&VB100,AC1;
这时候你的AC1就相当于有了VB100的地址,你再加一句,ADDD
AC1,VB10;
之后再用MOVD
500,*AC1;以后你只需要对VB10赋值,就可以随意的进行更改你要用的VB,例如VB10
=
1的话,就相当于给VB101赋值。这样的用法在大规模的程序中,是非常方便的。

‘贰’ 简述直接寻址,间接寻址

直接寻址的对象是显式的,可能是个直接数代表内存地址,或者寄存器名;间接寻址是隐式的,直接操作数是一个寄存器,这个寄存器里的值才是真正的读写地址。比如,奥巴马是黑人,这里奥巴马就是直接寻址;现任美国总统是黑人,这就是间接寻址了。

‘叁’ 间接寻址的优点

间接寻址是不得已而用之,没有什么特别的优点。

‘肆’ 间接寻址有什么作用啊

间接寻址:你需要的操作数是存在存储器中的,每个存储单元有个地址编码,当你把这个地址编码存到某个通用寄存器中(如BX,AX,DI,SI。。。)意思就是现在寄存器中存放的是你需要的操作数在内存(存储器)中的位置,即存储单元地址,当你使用指令通过这个寄存器调用这个数据的时候就是寄存器间接寻址了 过程基本上就是“通过寄存器找到存储器中的单元地址,再通过这个地址找到该单元里面的数据”
比如指令 MOV AX,[BX] BX=0020H 存储单元0020H里面的内容是50D
那么这条指令结果就是AX=50D

‘伍’ 用汇编语言,编子程序,采用间接寻址、循环控制的方式,

寄存器间接寻址,可以这么来理解:
1、首先必须有一个操作指令,这是必须的,指令做什么。这是第一部分。
2、既然是寄存器间接寻址,当然得有作为媒介的寄存器,这是第二部分。
3、既然是间接寻址,当然得有寻址的目标,这是第三部分。

‘陆’ 间接寻址有什么作用啊

不知道不要害人。
直接寻址,告诉你的是地址,也就是地址是直接告诉你的,所以你需要的操作数是在
存储器中,存放的地址就是指令告诉你的地址。
寄存器间接寻址,寄存器中存放的是地址,也就是说地址不是直接告诉你,而是存放在寄存器中,所以说操作数也是在存储器中,地址就是寄存器中的数。
比如
mov
ah,[1000h]
这个源操作数是直接寻址,就是将数据段中有效地址为1000h中的数据传给ah。

mov
ah,[bx],如果
bx=1000h,那么这条指令的作用和上面的指令作用一样。不过由于地址是在寄存器中,而不是直接给出,所以称其为寄存器间接寻址。
需要的操作数,同样存放在存储器中。

‘柒’ 51单片机间接寻址问题

其实,这种程序纯粹是为了使用指令而故意写的,并没有什么意义。
这个程序就是为了讲间接寻址指令的使用。而目的并不是为了计算什么数。
如果就是为了计算什么数,采用什么寻址方式都行,只要能计算出来就行。
如果按你的想法来写,还可以更简化

MOV A,20H
ADD A,22H
MOV 20H,A
MOV A,21H
ADDC A,23H
MOV 21H,A
可问题是,如果数据多的时候,这种方式写程序就会很长,采用间接寻址方式程序就简单。所以,要看具体情况而定。
另外,纠正一下你的程序
MOV A,20H
MOV R0,21H;这应该是MOV R0,22H,因21H中的数是第一个数的高8位。
ADD A,R0

‘捌’ PLC中为什么要间接寻址

间接寻址是你对一个地址赋值或者搬移,直接寻址是你直接对一个区间的变量赋值或者搬移。

指令中给出的地址是存放数据的地址的地址称为间接寻址。间接寻址方式是,指令给出了存放操作数地址的存储单元的地址(也称地址指针),按照这一地址找到的存储单元中的数据才是所需要的操作数,相当于间接地取得数据。S7 - 200 PLC CPU以变量存储器(V)、局部存储器(L)或累加器(AC)的内容值为地址进行间接寻址。

可间接寻址的存储器区域有:I、Q、V、M、S、T(仅当前值)和C(仅当前值)。对独立的位( BIT)值或模拟量值不能进行间接寻址。用间接寻址方式存取数据时遵循以下步骤:建立指针、使用指针来存取数据(间接存取)和修改指针。使用方法和C语言中的指针应用基本相同。

(1)建立指针。间接寻址前,应先建立指针。指针为双字长,是所要访问的存储单元的32位的物理地址。只能使用变量存储器(V)、局部存储器(L)或累加器(AC1、AC2、AC3)作为指针,AC0不能用做间接寻址的指针。为了建立指针,必须使用双字传送指令MOVD,将存储器区中某个位置的地址移入存储器的另一个位置或累加器作为指针,即将所要访问的存储器单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身。下面这条指令创建了一个指向VB200的指针:

MOVD &VB200,AC1

“&”为地址符号,与单元组合表示所对应单元的32位物理地址,VB200只是一个直接地址编码,并不是它的物理地址。指令中的&-VB200如果改为&-VW200或&4VD200效果完全相同。 指令中的第二个地址数据长度必须是双字长,如AC、LD和VD。这里地址“VB200”要用32位表示,因而必须使用双字传送指令( MOVD)。

(2)间接存取。依据指针中的内容值作为地址存取数据。使用指针可存取字节、字、双字型的数据,下面两条指令是建立指针和间接存取的应用方法:

MOVD &VB200,AC1

MOVW *AC1,AC0

执行指令MOVW*AC1,AC0,把指针AC1中的内容值(VB200)作为地址,由于指令MOVW的标识符是“W”,因而指令操作数的数据长度应是字型,把地址VB200、VB201处2字节的内容(12 34)传送到AC0。指针处的值(即12 34),为字型数据,如图3-6所示,操作数(AC1)前面的“*”号表示该操作数( AC1)为指针。


图3-7修改指针

修改指针值时,应根据存取的数据长度来进行调整。若对字节进行存取,指针值加1(或。减1);若对字进行存取,或对定时器、计数器的当前值进行存取,指针值加2(或减2);若对双字进行存取,则指针值加4(或减4)。图3-7中,存取的数据长度是字型数据,因而指针值加2。

‘玖’ 什么是plc的间接寻址,直接寻址,指针是什么概念

直接寻址:操作数就存放在数据的地址。基本逻辑指令都是直接寻址方式。 你说的间接寻址应该是变址寻址吧,指针:指针实际上是程序发生转移时,转移去的入口地址的标号,一种为P标号,用于跳转和子程序调用的转移去的入口地址,一种为i标号,称中断指针。专用于中断服务子程序的入口地址。

‘拾’ PLC中为什么要间接寻址直接寻址不得吗求解释

因为用样的情况下,用间接寻址比直接寻址快。用间接寻址1句话的场合,如果用直接寻址,可能无法完成,或者能完成可却要写几十几百几千句。

存储器间接寻址址给定格式是:址标识符+指针。指针所指示存储单元中所包含数值,就是址确切数值单元。存储器间接寻址具有两个指针格式:单字和双字。单字指针是一个16bit结构,从0-15bit,指示一个从0-65535数值,这个数值就是被寻址存储区域编号。

(10)为什么间接寻址便于子程序返回扩展阅读

寄存器间接寻址为通过 CPU的地址寄存器AR1,AR2进行寻址。AR1,AR2 均为 32 位寄存器,寄存器间接寻址只使用 32 位指针。分为内部区域间接寻址和交叉区域寻址。

内部区域寄存器间接寻址

指针格式与存储器间接寻址的 32 位指针相同,第 0 位~ 第 2 位作为寻址操作的位地址,第 3 位~第 18 位作为寻址操作的字节地址,第 19 位 ~第 31 位没有定义,32 位指针的格式。

交叉区域寄存器间接寻址

包含有存储器区域信息的指针,称为交叉区域指针。同样,交叉区域指针为 32 位,寄存器间接寻址要使用地址寄存器 AR1 或 AR2。32 位交叉区域指针,左起 0~18 位格式与 32 位内部区域指针相同,19~23 位,27~20 位未定义,31 位为交叉区域指针标识位。

24~26 位是存储区域地址标识,8 中组合表示 8 种存储器区域。

阅读全文

与为什么间接寻址便于子程序返回相关的资料

热点内容
个人程序服务部署在哪里 浏览:820
广州万佳批发市场是哪个区 浏览:657
保定新房怎么交易 浏览:240
a醇什么产品好 浏览:557
襄阳长虹建材市场在哪里 浏览:188
如何找淘宝拼多多链接做代理 浏览:836
小程序美化美家的花怎么样 浏览:616
全家福怎么看信息 浏览:564
遥感数据处理属于什么行业 浏览:978
成都软件市场怎么样 浏览:682
男人没学历学点什么手艺或者技术 浏览:941
麦吉丽代理拿多少货 浏览:941
硒产品哪些好吸收 浏览:260
沈阳铁西市场有哪些鱼 浏览:5
量化交易系统用什么软件开发 浏览:741
如何在微信小程序办理冀时办 浏览:864
苏醒之路怎么修改数据 浏览:964
信息如何找回前一天删除的 浏览:123
广东2018中博会哪些产品 浏览:438
造船企业技术部怎么样 浏览:99