内存操作数和寄存器操作数
答案:1 悬赏:60 手机版
解决时间 2021-11-25 07:55
- 提问者网友:一抹荒凉废墟
- 2021-11-25 03:44
内存操作数和寄存器操作数
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-11-25 04:11
这样跟你说吧,内存操作数在内存中,你可以认为就是内存条。寄存器操作数是在CPU内。内存中的数据经过寄存器读入CPU,进入数据的运算。追问MOV DS,AX ;这是寄存器寻址
MOV BX,DS:[1234H] ;这是存储器操作数的直接寻址。 疑问是DS,BX不都是寄存器里面的东西吗?怎么关乎存储器的事情,是不是数据存在存储器里,存储器被分为好几块,把要操作的数据存储的位置号放在DS里面,后面那个1234H是存储在那一块里面的存储单元位置?是这样理解吗?请指导一下这段寄存器名称,什么段超越前缀。。谢谢。追答理解的很正确,你很有潜能。
存储器中存放的数据都有自己的地址。通过地址就可以把存储器中的数据读到寄存器中。用你的例子前面加一句语言来说明。
MOV AX,5000H
MOV DS,AX
5000H 是一个段地址,这个段地址不能直接传送到段寄存器DS中(这是MOV指令的规则),这样就必须通过寄存器(这里用的是AX寄存器)送到DS寄存器中。DS寄存器中有了数据,再运行
MOV BX,DS:[1234H]
由(DS)=5000H 可计算出
物理地址为16d×(DS)+1234H=16d×5000H+1234h=50000H+1234H=51234H 。 命令的的最后结果就是把物理地址为51234H的存储单元中的操作数据放入BX中。 这样就把存储器中地址为DS:[1234H]的存储单元中的内容送给BX寄存器。 DS中存入数据的目的是为了能得到存储器的地址,进而取出存储器中的内容,所以关乎存储器的事了。
名称:段寄存器共有四个分别是:代码段CS 、数据段DS、 堆栈段SS 、 附加段DS。
段跨越前缀: 数据也可以放在数据段DS以外的其他段中,这时就要加上段跨越前缀。 如MOV AX,ES:[1000H] 意思就是把附加段ES,地址为ES:[1000H]中的数据送到AX寄存器中。
MOV BX,DS:[1234H] ;这是存储器操作数的直接寻址。 疑问是DS,BX不都是寄存器里面的东西吗?怎么关乎存储器的事情,是不是数据存在存储器里,存储器被分为好几块,把要操作的数据存储的位置号放在DS里面,后面那个1234H是存储在那一块里面的存储单元位置?是这样理解吗?请指导一下这段寄存器名称,什么段超越前缀。。谢谢。追答理解的很正确,你很有潜能。
存储器中存放的数据都有自己的地址。通过地址就可以把存储器中的数据读到寄存器中。用你的例子前面加一句语言来说明。
MOV AX,5000H
MOV DS,AX
5000H 是一个段地址,这个段地址不能直接传送到段寄存器DS中(这是MOV指令的规则),这样就必须通过寄存器(这里用的是AX寄存器)送到DS寄存器中。DS寄存器中有了数据,再运行
MOV BX,DS:[1234H]
由(DS)=5000H 可计算出
物理地址为16d×(DS)+1234H=16d×5000H+1234h=50000H+1234H=51234H 。 命令的的最后结果就是把物理地址为51234H的存储单元中的操作数据放入BX中。 这样就把存储器中地址为DS:[1234H]的存储单元中的内容送给BX寄存器。 DS中存入数据的目的是为了能得到存储器的地址,进而取出存储器中的内容,所以关乎存储器的事了。
名称:段寄存器共有四个分别是:代码段CS 、数据段DS、 堆栈段SS 、 附加段DS。
段跨越前缀: 数据也可以放在数据段DS以外的其他段中,这时就要加上段跨越前缀。 如MOV AX,ES:[1000H] 意思就是把附加段ES,地址为ES:[1000H]中的数据送到AX寄存器中。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯