ZKX's LAB

为什么立即数不能直接送段寄存器? 立即数345与t寄存器

2020-07-21知识5

汇编语言的问题,课本上说操作数可以是立即数寄存器等等以及上述形式的加减表达式,有没有人详细说一下加 51单片机的指令的第一操作数,一般是寄存器第二操作数范围就较宽,可以是数据(立即数),可以是寄存器,可以是地址,可以是含地址的单元等MOV A,#50HMOV A,R2MOV A,50HMOV A,@R0存储器寻址方式有哪些?立即数寻址和寄存器寻址是吗? 立即寻址:对应着程序存储器ROM直接寻址:对应片内数据存储器低128B寄存器寻址:对应片数据存储器中的特殊功能寄存器,主要是R0-R7,A,B,^寄存器间接寻址:对应数据存储器(片内,片外)相对寻址:ROM变址寻址:ROM位寻址:片内可以位寻址的寄存器及位寻址区(片内RAM20-2FH)8086中为什么不能将立即数直接传送到段寄存器 由于立即数直接写入段寄存器这样的指令,被翻译成机器码之后将占用更多的字节,在事先规定的指令长度范围内无法存贮下这么多的内容,因此改由先写入通用寄存器,再由通用寄存器写入段寄存器的办法代替。立即数实际上是相当占地方的立即数 寄存器操作数 存储器操作数 立即数是什么意思,最好举个例子?立即能从指令流中得到的数,MOV AX,0FFFFH;对应机器指令为:B8 FF FF,其中的0FFFFH即为立即数,它存在于指令中,可立即获得寄存器操作数是什么意思,最好举个例子?上例中的 AX 即为寄存器操作数,操作数本身存放于寄存器中,在指令中只是给出了几个位的代码来表示它具体存放在那个寄存器中。以下是一些指令的机器码和对应的汇编指令B80000 MOV AX,0000BAFFFF MOV DX,FFFFB9FFFF MOV CX,FFFFBBFFFF MOV BX,FFFF存储器操作数是什么意思,最好举个例子?那就是存放在内存器中的操作数,如:MOV SI,[2000H]中的[2000H]MOV[BX+SI+02],AX中的[BX+SI+02]这些操作数实际被存放于内存储器中,被操作或运算时需要从存贮器中取出并被CPU接受送到运算器等参与操作运算。内存操作数是什么意思,最好举个例子?没太听说,要有的话,也就和存储器操作数没有多大差别汇编语言中累加器,立即数,储存器,寄存器都是做什么用的 累加器一般就是通用寄存器,一个名字而已,没什么大用~因为你不知道累加器是什么也能用汇编里的AX,BX,CX,DX立即数就是我们能认识的数,像十进制1,2,3。十六进制的2000H等储存器和寄存器最大的区别就是储存器在CPU的外边,是外部存储单元;寄存器实在CPU里面的,例如AX,BX等。像8086只有十四个寄存器不懂再问我。望采纳~add源操作数是立即数,目标操作数可以是段寄存器吗 可以的。对段寄存器的操作,从网上抄的如下:段寄存器的操作有一些限制 –-段寄存器属专用寄存器,对他们的操作能力有限不允许立即数传送给段寄存器 MOV DS,100H;非法指令:立即数不能传送段寄存器不允许直接改变CS值 MOV CS,[SI];不允许使用的指令?不允许段寄存器之间的直接数据传送 MOV DS,ES;非法指令:不允许段寄存器间传送为什么立即数不能直接送段寄存器? 由于立即数直接写入段寄存器这样的指令,被翻译成机器码之后将占用更多的字节,在事先规定的指令长度范围内无法存贮下这么多的内容,因此改由先写入通用寄存器,再由通用寄存器写入段寄存器的办法代替。立即数实际上是相当占地方的。立即数寻址和寄存器直接寻址哪个更快? 如果采用变长指令码格式,由于要表示一定范围的立即数,立即数的指令通常需要较多的二进制位,取指时,可能需要不止一次的读内存来完成取指,因此采用变长指令码格式的时候,寄存器寻址方式的执行速度更快。但是如果采用定长指令码格式,那就是立即寻址更快了plc中立即指令和非立即指令有什么区别 立即输出指令执行到指令的位置后输出状态马上改变,非立即指令要等到把所有的程序扫描完,一直到最后统一的刷新输出映像寄存器时才改变状态。根据程序量大小两者在反应时间上有时差,毫秒级吧。

随机阅读

qrcode
访问手机版