. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->汇编语言学习交流区
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测题问题  [待解决] 回复[ 6次 ]   点击[ 467次 ]  
scandy24
[帖 主]   [ 发表时间:2007-12-20 08:44 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2007-12-10 14:26
下列说法中正确的是:____ 
 1、 8086CPU采用“段地址*16+偏移地址=物理地址”的寻址模式,所以内存是由一个一个的段组成,每一个段有一个段地址。 
 2、 物理地址为ffff0H的内存单元的偏移地址可能为ffffH。 
 3、 一个段的大小可以是8Byte。 
 4、 在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。

-----
上面的题目我有些迷惑,我认为3时是正确的:
起始地址:0000
段的偏移地址是:0到7
这样段就是8个字节了。

答案4我现在的水平还不是很明白,谁能指点一下么。
mouse
[第1楼]   [ 回复时间:2007-12-20 08:56 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
段地址*16+偏移地址=物理地址

两个不同的段段地址肯定不会一样,那么物理地址的最小差距也得是16B吧

第四个问题也能推出来,楼主可以在想想~

ffff+1=0~~
scandy24
[第2楼]   [ 回复时间:2007-12-20 10:14 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2007-12-10 14:26
1说内存是由段组成的,肯定不对

2 X*16+ffff=ffff0
 x*16=ffff0-ffff
 x*16=efff1 //efff1不是16的整数倍

3  X*16+Y=Z1
(X+1)*16+Y=Z2
这样看Z2和Z1之间的确是差16B
不过段的大小为何要用这样的方式来推测呢?

论坛里面有位牛人曾经试验过段的最小值,他的方法是这样的:“我首先定义了一个空的数据段,接着定义了一个代码短,我们看看这个数据段的起始地址和代码段的起始地址不就知道了一个段的最小字节数了吗 ”。我不太明白的是为什么通过两个段的起始地址能够得知一个段的最小字节数?

4 我觉得是不对的
指令的执行决定于CS:IP的指向,只要能修改CS就可以
mov ax,XXXX
mov cs,ax
这样就能改变CPU执行指令的位置
mouse
[第3楼]   [ 回复时间:2007-12-20 10:23 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
指令的执行决定于CS:IP的指向,只要能修改CS就可以 
mov ax,XXXX 
mov cs,ax 
这样就能改变CPU执行指令的位置
----------------------
我在debug下面试了一下,这样不能改变cs啊,直接错误退出了。

我记得书上说过mov指令不能改变cs、ip。
mouse
[第4楼]   [ 回复时间:2007-12-20 10:24 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
至于第三个,我觉得如果定义一个段没有数据,也说不上段的大小了吧。
scandy24
[第5楼]   [ 回复时间:2007-12-20 11:27 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2007-12-10 14:26
……
贻笑大方了
我在debug中输入mov cs,ax的时候没有报错,以为正确了,执行的时候的确是无效指令。
4是正确的?我还是有些怀疑啊。

“我觉得如果定义一个段没有数据,也说不上段的大小了吧。”
如果定义段中,有四个字型数据,假设这个段就只能容纳这四个字型数据,能不能说该段大小就是8B呢?
mouse
[第6楼]   [ 回复时间:2008-01-01 15:08 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
“我觉得如果定义一个段没有数据,也说不上段的大小了吧。” 
如果定义段中,有四个字型数据,假设这个段就只能容纳这四个字型数据,能不能说该段大小就是8B呢?
--------------
如果只是定义了四个字型数据,但是实际上计算机给这个段分配了16个字节的空间,这个可以看看第六章的实验五,书上是通过实验教我们怎么总结出这个结论的。

至于第四题,如果没有跳转指令,也就是不能修改cs,那么变化的也只能是ip,但是ip不管怎么变也不会出了0~ffffH,也就是说程序执行的范围只能是64k的地址空间内。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved