. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
段问题1
[待解决]
回复[
3
次 ] 点击[
363
次 ]
noonoon
[帖 主]
[ 发表时间:2011-03-18 19:53 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-03-15 19:51
困惑中,还望高手多多指点。
1:段寄存器的地址系统是如何得知的?
2:段可以出现在rombios或其他系统预留的地方?
3:体统段实际是怎么分配的?
4:如何知道偏移地址是否重叠?
5:缺省段寄存器值来自何处?
6:变量定义后有一个确定的偏移地址与之对应?是怎么做到的?
7:为什么不允许两操作数都是内存型的?
8:mov d1,d2 d1是段寄存器,d2为什么不能是立即数或段寄存器了?
9:ip寄存器的值是如何获得的?
想不明白,希望高手详解。
笨人刚刚接触,谢谢
quexiao521
[第
1
楼]
[ 回复时间:2011-05-03 22:51 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:4
信誉值:0
注册日期:2011-04-27 23:01
7、这是硬件设计的问题,你不必深究
8、立即数不能直接传给段寄存器,P49上面已解释
9、Ip的值是你用指令定义的,如果你不定义,那么系统有自己预设的IP
noonoon
[第
2
楼]
[ 回复时间:2012-05-11 18:03 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-03-15 19:51
感谢同学的热心解答,不断努力中。谢谢
smmei
[第
3
楼]
[ 回复时间:2012-05-28 21:27 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:2
注册日期:2012-05-26 20:03
尝试一下:
1:段寄存器的地址系统是如何得知的?
> 这个也是由程序指定的,在代码里赋值的。CPU启动后cs:ip会有个固定初始值,从这以后我们的程序来初始各寄存器。
2:段可以出现在rombios或其他系统预留的地方?
> 可被CPU寻址到,而且可读可写的RAM都可以。
3:体统段实际是怎么分配的?
> 体统段?段的分配是一个人为的操作,实际我们编程时这部分工作由编译器为我们完成。
4:如何知道偏移地址是否重叠?
> CPU不知道
5:缺省段寄存器值来自何处?
> 来自人为的设定。可能CPU启动后某些寄存器会有默认值,但并不保证。所以我们程序用到的我们自己要设定。
6:变量定义后有一个确定的偏移地址与之对应?是怎么做到的?
> 这个工作由编译器完成。
7:为什么不允许两操作数都是内存型的?
> 硬件确实是这样设计的。所有的操作都需要通过寄存器的中转,有CPU的参与。这也是一个速度瓶颈。另可以看看DMA。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved