
汇编语言中的操作数寻址方式问题.存储器和寄存器问题?高手请进
首先段寄存器CS.DS.ES.SS是cpu的寄存器还是单独与cpu的存储器?以DS为例1。如果DS是存储器那么MOVAX,DS.存储器寻址方式.操作数是DX,证明DX是寄...
首先段寄存器CS.DS.ES.SS是cpu的寄存器还是单独与cpu的存储器?以DS为例
1。如果DS是存储器那么MOV AX,DS.存储器寻址方式.操作数是DX,证明DX是寄存器.
2。如果DS是寄存器那么MOV AX,[2000]指令是直接寻址方式.默认段为DS.那么就是从[DS*10H+2000]的地址单元中取出操作数给AX,在这一过程中我们把DS当做是存储器,这种寻址方式叫做存储器寻址方式.那然还有几种存储器的寻址方式,给这个差不多.都是以段寄存器为默认存储单元的.
所以我很不解,这个存储器寻址方式和寄存器存储方式到底有什么区别?
第一句话是CS.DS.ES.SS是cpu的寄存器还是单独于cpu之外的存储器,有点歧义不好意思
各位的回答我有看到,很专业啊.高手们再问一下:
操作数的寻址方式中有寄存器寻址方式和存储器寻址方式,那它们的的区别?
这两种寻址方式的源操作数不都是在段寄存中或通用寄存器中吗?,为什么后一种方式说是存储器寻址方式????? 展开
1。如果DS是存储器那么MOV AX,DS.存储器寻址方式.操作数是DX,证明DX是寄存器.
2。如果DS是寄存器那么MOV AX,[2000]指令是直接寻址方式.默认段为DS.那么就是从[DS*10H+2000]的地址单元中取出操作数给AX,在这一过程中我们把DS当做是存储器,这种寻址方式叫做存储器寻址方式.那然还有几种存储器的寻址方式,给这个差不多.都是以段寄存器为默认存储单元的.
所以我很不解,这个存储器寻址方式和寄存器存储方式到底有什么区别?
第一句话是CS.DS.ES.SS是cpu的寄存器还是单独于cpu之外的存储器,有点歧义不好意思
各位的回答我有看到,很专业啊.高手们再问一下:
操作数的寻址方式中有寄存器寻址方式和存储器寻址方式,那它们的的区别?
这两种寻址方式的源操作数不都是在段寄存中或通用寄存器中吗?,为什么后一种方式说是存储器寻址方式????? 展开
6个回答
展开全部
首先内存和寄存器都是可以存放数据的
而寄存器是就那么几个,不可能把所有数据都放在寄存器里
寄存器里面是有值的,如果直接丢给CPU运算,就是寄存器寻址。
如果把寄存器里面的数当作地址编号,跟据编号在内存里找到另一个数,就是存储器寻址。
CS,DS,ES,SS是CPU的寄存器
MOV AX,DS 都是寄存器寻址方式(它们本身都有值)。
MOV AX,[2000] 这个指令有两种寻址方式
AX表式寄存器寻址方式,[2000]表示直接寻址方式(存储器寻址方式的一种)
反正只要带上中括号的全是存储器寻址方式,而寄存器寻址就只有一种(例如:AX)
而寄存器是就那么几个,不可能把所有数据都放在寄存器里
寄存器里面是有值的,如果直接丢给CPU运算,就是寄存器寻址。
如果把寄存器里面的数当作地址编号,跟据编号在内存里找到另一个数,就是存储器寻址。
CS,DS,ES,SS是CPU的寄存器
MOV AX,DS 都是寄存器寻址方式(它们本身都有值)。
MOV AX,[2000] 这个指令有两种寻址方式
AX表式寄存器寻址方式,[2000]表示直接寻址方式(存储器寻址方式的一种)
反正只要带上中括号的全是存储器寻址方式,而寄存器寻址就只有一种(例如:AX)

2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光...
点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
展开全部
你说了一大堆,老实说我看了头大,没明白你说的什么意思
但是我知道,你一定没有明白CPU分段的含义,建议你看看内部结构,理解一下寻址空间,数据线有几根,地址线有几根。
给你举个简单的例子:
一个孩只能认识200以内的数,但是现在有1000个房间(从0开始依次编号),他的伙伴就在其中的一个房间里(假定560号房间),现在你告诉他他的伙伴在560号房间,让他去找吧。想想,这样能行嘛,他根本就不认识560,怎么办???怎么解决??
那好,尝试一下这样,把这1000个房间分成10个区域,0-99,100-199,200-299……900-999分别对应0,1,2,3,4,5,6,7,8,9号区,然后你告诉他他的小伙伴在5号区,第60个房间里(相对于5号区的偏移量,即相对于500的偏移量),很显然这样他就能很容易找到他的伙伴。
那1000个房间就是CPU的内存,那个0,1,....9号区就是段
很显然,区号(段)*100+段内编号(偏移量)就等于实际物理地址
这样你就可以随意寻址,比如实际物理地址是560号房间,你可以告诉他在5号区,偏移60的位置,你也可以告诉他在4号区,偏移160的位置,只要这个偏移量不超过小孩的识数能力就行。
这也就是同意实际物理地址,可以通过不同的寻址指向的解释
但是我知道,你一定没有明白CPU分段的含义,建议你看看内部结构,理解一下寻址空间,数据线有几根,地址线有几根。
给你举个简单的例子:
一个孩只能认识200以内的数,但是现在有1000个房间(从0开始依次编号),他的伙伴就在其中的一个房间里(假定560号房间),现在你告诉他他的伙伴在560号房间,让他去找吧。想想,这样能行嘛,他根本就不认识560,怎么办???怎么解决??
那好,尝试一下这样,把这1000个房间分成10个区域,0-99,100-199,200-299……900-999分别对应0,1,2,3,4,5,6,7,8,9号区,然后你告诉他他的小伙伴在5号区,第60个房间里(相对于5号区的偏移量,即相对于500的偏移量),很显然这样他就能很容易找到他的伙伴。
那1000个房间就是CPU的内存,那个0,1,....9号区就是段
很显然,区号(段)*100+段内编号(偏移量)就等于实际物理地址
这样你就可以随意寻址,比如实际物理地址是560号房间,你可以告诉他在5号区,偏移60的位置,你也可以告诉他在4号区,偏移160的位置,只要这个偏移量不超过小孩的识数能力就行。
这也就是同意实际物理地址,可以通过不同的寻址指向的解释
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先要明白程序是从内存读入,送到寄存器,再由CPU处理,那些段寄存器都是集成在CPU内部的.但是寻址方式中也有直接从内存中读入数据.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cs ds es ss 是8086/8088 cpu里面的寄存器
1.要问什么 ? ax存的是ds段段基址
2.存储器寻址方式我还没听说过 一共好像7个寻址方式 只有立即数寻址和寄存器寻址不是在内存操作的 其他5种都是内存来找操作数的
你说的这个存储器寻址方式和寄存器存储方式到底有什么区别? 没看懂你想问什么
---------------------------------------------------------------------------------------
寻址方式在内存寻址的有直接寻址 就是你那条 mov ax,[2000] 2000d是你的地址 直接写出地址 所以是直接寻址
操作数存在2000,2001的存储单元 默认是ds段 但你把ax和[2000]调换一下 就需要加段跨越前缀了
还有寄存器间接寻址
如果你把2000先存在bx中 然后用 mov ax,[bx] 那么就是寄存器间接寻址
寄存器间接寻址 只能用 bx,bp,si,di来存地址 bp默认es段
寄存器相对寻址 = 寄存器间接寻址 + 偏移量
比如 mov ax,[bx+10h]
基址加变址寻址
有4种形式
bx + si或di
bp +si或di
比如:
mov ax,[bx][si]
相对基址加变址 = 基址加变址 + 偏移量
比如 mov ax,10h[bx][si]
1.要问什么 ? ax存的是ds段段基址
2.存储器寻址方式我还没听说过 一共好像7个寻址方式 只有立即数寻址和寄存器寻址不是在内存操作的 其他5种都是内存来找操作数的
你说的这个存储器寻址方式和寄存器存储方式到底有什么区别? 没看懂你想问什么
---------------------------------------------------------------------------------------
寻址方式在内存寻址的有直接寻址 就是你那条 mov ax,[2000] 2000d是你的地址 直接写出地址 所以是直接寻址
操作数存在2000,2001的存储单元 默认是ds段 但你把ax和[2000]调换一下 就需要加段跨越前缀了
还有寄存器间接寻址
如果你把2000先存在bx中 然后用 mov ax,[bx] 那么就是寄存器间接寻址
寄存器间接寻址 只能用 bx,bp,si,di来存地址 bp默认es段
寄存器相对寻址 = 寄存器间接寻址 + 偏移量
比如 mov ax,[bx+10h]
基址加变址寻址
有4种形式
bx + si或di
bp +si或di
比如:
mov ax,[bx][si]
相对基址加变址 = 基址加变址 + 偏移量
比如 mov ax,10h[bx][si]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般讲存储器专指内存,但寄存器也是存储数据的器件(存储器),是CPU的一部分,段寄存器也不例外
MOV AX,DS
源操作数和目标操作数均为寄存器寻址
MOV AX,[2000]
源操作数使用直接寻址
目标操作数使用寄存器寻址
广义的存储器指一切可以用于存储数据的器件,但汇编中存储器一般专指主存储器,即内存
MOV AX,DS
源操作数和目标操作数均为寄存器寻址
MOV AX,[2000]
源操作数使用直接寻址
目标操作数使用寄存器寻址
广义的存储器指一切可以用于存储数据的器件,但汇编中存储器一般专指主存储器,即内存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询