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