微机原理课后答案

发布 2022-09-04 22:27:28 阅读 1226

1. 选择题:

1)某微机具有16mb的内存空间,其cpu的地址总线应有( )条。

a.26 b.28 c.20 d.22 e.24

2)当reset信号进入高电平状态时,将使8086/8088 cpu的( )寄存器初始化为0ffffh。

a.ss b.ds c.es d.cs

3 )8086/8088 cpu与慢速存储器或i/o接口之间进行数据传输,为了使传送速度匹配,有时需要在( )状态之间插入若干等待周期tw。

a.t1和t2 b.t2和t3 c.t3和t4 d.随机。

答案:(1)e2)d (3)c

2. 填空题:

1)8086/8088 cpu执行指令中所需操作数地址由( )计算出( )位偏移量部分送( )由( )最后形成一个( )位的内存单元物理地址。

2)8086系统的存储体系结构中,1mb存储体分( )个库,每个库的容量都是( )字节,其中和数据总线d15~d8相连的库全部由( )单元组成,称为高位字节库,并用( )作为此库的选通信号。

3)用段基值及偏移量来指明内存单元地址的方式称为( )

4)通常8086/8088 cpu中当eu执行一条占用很多时钟周期的指令时,或者在多处理器系统中在交换总线控制时会出现( )状态。

5)在8086/8088最大方式系统中各微处理器都有两条( )引脚,其中( )比( )具有更高的优先级。

答案:a) eu,16,biu,biu,20

b) 2,512k,奇地址,

c) 逻辑地址。

d) 空闲。

e) 总线请求(输入)/总线请求允许(输出),0 ,

3. 8086/8088 cpu中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?

答:8086/8088 cpu中共有:

8个16位的通用寄存器ax、bx、cx、dx 、bp、sp、si、di;

2个变址寄存器si、di;

2个指针寄存器bp、sp;

其中bx、bp、si、di亦可作地址寄存器。

4. 什么是堆栈?它有什么用途?堆栈指针的作用是什么?举例说明堆栈的操作。

答:堆栈是一个按照后进先出(lifo)的原则存取数据的存储区域。堆栈的作用是为了在调用子程序(或转向中断服务程序)时,把断点及有关的寄存器、标志位及时正确地保存下来,并保证逐次正确返回。

利用堆栈指针sp可以实现对栈区的自动管理。

例如:要把ax寄存器中的内容压入堆栈,用入栈指令push ax(设sp原值为1000h),其操作过程如下所示:

第一步:先把sp-l→sp,然后把ah(高位字节)送入sp所指单元(即sp=1fffh);

第二步:再次使sp-1→sp,把al(低位字节)送至sp所指单元(此时sp=1ffeh);

数据出栈操作与入栈过程正相反:弹出时,先把al内容弹出,然后修改sp+1→sp;再把ah内容弹出,再修改sp+1→sp。

5. 对于由8086/8088 cpu组成的系统,堆栈的位置如何确立?堆栈的首址(即ss中的值)是不是栈底?为什么?

答:8086/8088系统中堆栈的位置由ss和sp初始化后确立:其中(ss)*16决定了堆栈段起始单元的地址,即堆栈段首址;(ss)*16+(sp初值)决定了堆栈段最后一个单元的地址,即栈底;(ss)*16+(sp现值)决定了堆栈段当前可用单元的地址,即栈顶。

显然,堆栈首址并不是栈低。一般来说,在堆栈所在的内存区内,栈底为高地址端。堆栈初始化后,未压入数据时,栈底与栈顶是重合的。

当堆栈压入数据后,栈顶地址总是小于栈底地址,位于低地址端。

6. 试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:

1)1278h+3469h

答:cf=0 af=1 zf=0 sf=0 of=0 pf=1

2)54e3h-27a0h

答:cf=0 af=0 zf=0 sf=0 of=0 pf=0

其中,进位标志cf用于判别无符号数运算是否超出数的表示范围,而溢出标志of用于判别带符号数运算是否超出数的表示范围。

奇偶标志pf只能判断结果低8位中“1”的个数为奇数还是偶数。

7. 什么是段基值?什么是位移量?它们之间有何联系?

答:段基址即段起始地址,它的高16位地址存放在段寄存器中,称之为段基值(低4位一般为0)。存储器单元所在的位置距离段起始地址的偏移量称之为位移量。

程序中一个存储单元的实际地址(即物理地址)是由这两部分共同表示的。

8. 若cs为0a000h,试说明现行**段可寻址物理空间的范围。

答: 因为8086系统中可寻址的最大逻辑段长度为64k,所以当cs为0a000h,即段基址为cs*16=0a0000h时,现行**段可寻址物理空间的范围为:0a0000h ~ 0affffh。

9. 设现行数据段位于存储器0b0000h~0bffffh单元,ds段寄存器内容为多少?

答: ds段寄存器内容为0b000h。

10. 已知当前段寄存器的基值(ds)=021fh,(es)=0a32h,(cs)=234eh,则上述各段在存储器空间中物理地址的首址及末地址号是什么?

答:数据段: 021f0h~121efh

附加段: 0a320h~1a31fh

**段: 234e0h~334dfh

11. 若(cs)=5200h时,物理转移地址为5b230h,则当cs的内容被设定为7800h,物理转移地址应为多少?

答:按题目条件可知该转移地址距cs所指**段的段基址的偏移量为9230h (即= 5b230h-52000h),因此若(cs)=7800h,则物理转移地址应为:78000h +9230h=81230h。

12. 若8086工作于最小方式,试指出当 cpu完成将ah中的内容送到物理地址为9100h的存储单元操作时,以下哪些引脚信号出现过低电平: /s7、、、m/、dt/?

答:和/s7引脚信号出现过低电平。

13. 若8086工作于最大方式,试指出当cpu完成将cl内容传送到物理地址为91003h单元的操作时,8288输出的哪些总线命令信号应变为有效(低电平)?

答:(存储器写命令)和(数据有效命令)信号应变为有效。

14. 某系统中已知当前(ss)=2258h,(sp)=0800h,说明该堆栈段在存储器中的物理地址范围。若当前堆栈中存入10个字节数据,那么sp内容应为什么值?

答:堆栈段在存储器中的物理地址范围为:22580h~22d80h,其中22580h(=2258h*16)为堆栈段的段基址,而22d80h(=2258h*16+0800h)为栈底地址。

在存入10个字节数据后sp内容应为07f6h(=0800h-0ah)。

15. 现有6个字节的数据分别为11h,22h,33h,44h,55h,66h,已知它们在存储器中的物理地址为 400a5h~400aah,若当前(ds)=4002h,请说明它们的偏移地址值。如果要从存储器中读出这些数据,需要访问几次存储器?

每次各读出哪些数据?

答:这几个字节数据的偏移地址值为:0085h~008ah(偏移地址 = 物理地址 - 段基址*16 = 物理地址 - 40020h)

数据是以字节形式存放的。如果是8088cpu,无论如何都要读6次存储器,每次分别读出一个字节。如果是8086cpu,可分为以下三种情况:

若以字节方式读数据,则每读一个字节需要访问一次存储器,共需6个总线周期;

若以字的方式读数据,由于存放格式为非规则字,故每读一个非规则字需要两个总线周期,3个非规则字仍需6个总线周期,每个总线周期读出一个字节;

若对读取方式无具体规定,则可以先读一个奇地址字节11h,然后连续读两个规则存放的字3322h、5544h,最后读偶地址字节66h,这样共需访问4次存储器。

微机原理课后答案

1.2 课后练习题。一 填空题。1 将二进制数1011011.1转换为十六进制数为 5b.8h 2 将十进制数199转换为二进制数为 11000111 b。3 bcd码表示的数,加减时逢 10 进一,ascii码用来表示数值时,是一种非压缩的bcd码。4 十进制数36.875转换成二进制是 1001...

微机原理课后答案

1.1微型计算机系统主要由哪些部分组成?1.2微型计算机中的cpu由哪些部件组成?各部件的功能是什么?参 微型计算机中的cpu由运算器 控制器 寄存器组等部件组成。其中运算器也称算术逻辑单元 alu 主要用来完成对数据的运算 包括算术运算和逻辑运算 控制器是控制部件,它能自动 逐条地从内存储器中取指...

微机原理课后答案

解释 原码 最高位为符号位,正数符号位为0,负数符号位为1。补码 正数的补码与原码相同 负数的补码 由其原码除符号位保持不变外,其余各位按位取反,末位加1而成。解 1 65 原 0100 0001b注 65 64 1 65 补 65 原 0100 0001b 注 正数补码与原码相同。2 115 原 ...