. : : 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