2024年4月18日发(作者:三星s21 ultra)
习题解答:
1、8086CPU从功能上看可分为哪两大部分?它们的主要作用是什么?
答:8086CPU功能结构可分为两大部分,即总线接口单元BIU(BUS INTERFASE
UNIT)和执行单元EU(Execution Unit)构成。BIU负责与存储器和外设传递数据,
具体地说,BIU从内存指定部分取出指令,送到指令队列排队;在执行指令时所需
的操作数也是由BIU从内存的指定区域取出传送到EU去执行或者把EU的执行结
果传送到指定的内存单元或外设中。EU负责指令的执行,它从指令队列中取出指令,
译码并执行,完成指令所规定的操作后将指令执行的结果提供给BIU。
2、8086CPU中有哪些通用寄存器?各有什么用途?
答:8086/8088CPU的通用寄存器包括4个数据寄存器AX、BX、CX、DX,2
个地址指针寄存器SP和BP,2个变址寄存器SI和DI。通用寄存器都能用来存放运
算操作数和运算结果,这是它们的通用功能,除此之外在不同的场合它们还有各自
的专门用途。
(1)数据寄存器
数据寄存器包括4个寄存器AX、BX、CX、DX,用于暂时保存运算数据和运
算结果,由于每个16位数据寄存器可分为2个8位数据寄存器,这4个数据寄存器
既可以保存16位数据,也可保存8位数据。
AX(accumulator)称为累加器,常用于存放算术逻辑运算的操作数,所有输入
输出指令也都通过AX与外设进行信息传输。BX(base)称为基址寄存器,常用于
存放访问内存时的基地址。CX(count)称为计数器,在循环和串操作指令中用来存
放计数值。DX(data)称为数据寄存器,在双字长(32位)乘除运算中将DX与
AX两个寄存器组合成一个双字长的数据,其中DX存放高16位数据,AX存放低
16位数据,另外在间接寻址的输入输出指令中把要访问的输入输出端口地址存放在
DX中。
(2)指针寄存器
指针寄存器包括堆栈指针寄存器SP(stack pointer)和基址指针寄存器BP(base
pointer)。SP和BP都是16位的寄存器,用来存放运算过程中的操作数,但更重要
的用途是存放堆栈地址。SP用于存放栈顶的偏移地址,即栈顶单元与栈首(第一个)
单元相应的单元数(偏移量),SS用于存放堆栈段的基地址,即堆栈首单元的基址
BP用于存放要访问的内存单元的基地址。
(3)变址寄存器
变址寄存器包括源变址寄存器SI(source index)和目的变址寄存器DI(destination
index),变址寄存器常用于指令的间接寻址或变址寻址,SI、DI一般与段寄存器DS
联用,以确定数据段中某一内存单元的实际地址。除此以外,在串操作指令中规定,
用SI存放源操作数的偏移地址,用DI存放目标操作数的偏移地址。
3、简述8086CPU系统中20位物理地址是如何形成的?
答:存储单元的20位物理地址=16位的段基地址×10H+16位的段内偏移量。段基
地址和段内偏移量又称为逻辑地址(logical address),逻辑地址常写成XXXXH:
YYYYH。其中XXXXH是段基地址,YYYYH是段内偏移量,都是16位无符号数。
4、8086CPU系统中的存储器为什么要采用分段结构?
答:8086CPU与内存间的信息交换要通过20根地址线发出20位的物理地址,但
8086CPU内部的寄存器都为16位,在程序中也只能使用16位地址,寻址范围局限
在64KB,为解决这个问题,8086CPU采用分段方法管理1MB的内存空间,即将1MB
的内存分为若干个逻辑段,每个逻辑段最大长度为64KB,各段可连续或不连续排列,
段的区域可部分重叠,也可全部重叠。8086CPU把内存分为4种逻辑段,即代码段、
数据段、堆栈段和附加段,每个段由连续的存储单元构成,当要访问逻辑段内的某
一单元时,只要给出逻辑段的起始地址以及该单元与起始地址间的距离(又称段内
偏移量EA或偏移地址,以字节数计)即可确定其物理地址。采用段基址和段内偏
移量的方式组成物理地址的优点是:满足8086系统的1MB存储空间的访问,同时
在大部分指令中只要提供16位的偏移地址即可,容易实现程序的浮动装配。
5、8086采用分段存储管理模式。已知当前执行的程序中某条指令的物理地址为
5A1F6H,IP=10F6H,则当前CS的内容为多少?
答:由物理地址与逻辑地址的关系,可知CS的内容为5910H。
6、段寄存器的作用是什么?为什么要使用段寄存器?
答:段寄存器专门存放16位的段基地址信息,它用于与偏移地址一起产生访问存储
单元的20位物理地址。
7、什么是逻辑地址?什么是物理地址?在8086系统中如何通过逻辑地址找到物理
地址?
答:逻辑地址由段基地址和段内偏移量组成,是指令中引用的形式地址,物理地址
是存储单元的20位地址,物理地址=段基地址×10H+段内偏移量。
8、标志寄存器有几个状态标志位?它们是如何定义的?
答:6个状态标识位。
进位标志位CF(carry flag):反映运算中最高有效位(字节运算为D7位,
发布者:admin,转转请注明出处:http://www.yc00.com/num/1713421213a2245611.html
评论列表(0条)