选择题: 答案:(1)E 填空题: 答案:2、512K、奇数地址、BHE 总线请求(输入)/允许总线请求(输出)、/ 中有多少位地址总线? 它的寻址范围是多少? 答:8086/的地址总线共有20位,最大可寻址空间为1MB。 什么是巴士? 一般微型计算机有哪些总线? 答:总线是一种常用的信息通路,用于微机系统之间、系统各模块之间、或模块内部以及芯片内各部分之间传输信息。 它是计算机用来传输信息的一组电线。 它将各种组件连接成一个整体。 公交车的分类方法有很多种。 根据总线在微机中的不同位置(或根据总线上信息传输范围的不同),微机包括片内总线、片间总线、系统内总线和系统外总线四种类型。 水平总线。 8086/这两个部分是什么? 各部分主要由什么组成? 答:8086/分为两部分:总线接口单元(BIU)和执行单元(EU)。 其中:BIU包括:4个16位段地址寄存器(CS、DS、SS、ES); 16位指令指针寄存器IP; 20位地址加法器; 指令队列寄存器; 内部寄存器; 输入输出总线控制逻辑; EU包括:16位通用数据寄存器(AX、BX、CX、DX); 16位特殊用途寄存器(BP、SP、SI、DI); 16位标志寄存器FR; 什么是指令? 队列? 8086/命令队列的作用是什么? 它们的长度是多少字节? 答:指令队列是一组用于临时存储指令的寄存器。 它的读写按照“先进先出”的原则进行。
在8086/中,只要指令队列未满,BIU就从外部存储器中取出指令放入指令队列中; 另一方面,只要指令队列不为空,EU就可以取出指令队列中已经存在的指令来执行。 这样,BIU和EU重叠并行运行,大大提高了CPU的利用率,降低了CPU对内存和I/O口访问速度的要求。 指令队列缓冲区长度为 6 个字节,而之前仅为 4 个字节。 8086/中有多少个通用寄存器? 有多少个索引寄存器? 有多少个指针寄存器? 通常哪些寄存器可以用作地址寄存器? 答:8086/中文有:16位通用寄存器AX、BX、CX、DX、BP、SP、SI、DI; 1个指针寄存器BP、SP; 其中BX、BP、SI、DI也可作为地址寄存器。 8086/ 中有哪些标志? 它们的含义和作用是什么? 答:8086/中有9个标志位,其中DF、IF、TF为控制标志位,其余6位为状态标志位。 它们的含义和作用如下: CF()进位标志:算术运算结果是否产生进位或借位(字节运算的最高位为D位;字运算的最高位为D15位) ),则CF=1,否则CF=0。 PF(/)奇偶校验标志:如果运算结果包含偶数个1,则PF=1,否则PF=0。
该标志主要用在数据通信中,检测数据传输是否有错误。 AF()辅助进位标志:用于反映一个字节的低位(字的低字节)是否有进位(借位)。 当有进位(借位)时,AF=1,否则AF=0。 该标志位主要用于实现BCD码算术运算所需的二进一十调整。 ZF()零标志:如果运算结果为0,则该标志为1; 否则ZF=0。 SF()符号标志:由于补码运算的最高位为符号位,因此与运算结果的最高位具有相同的状态(字节运算为D位,字运算为D15位)。 当运算结果为负时,SF=1; 否则SF=0。 OF()溢出标志:当有符号数的加减运算结果超出有符号数可以表示的数值范围(-128~127或-32768~+32767)时,发生溢出,OF=1,否则 OF=0 。 DF()方向标志位:该标志位用于控制字符串操作指令的地址指针的步进方向。 每次执行字符串操作指令时,都需要调整地址(字节操作加1减1,字操作加2或减2)。 方向标志DF决定地址是递增还是递减。 如果DF=1,则字符串地址递减; 如果DF=0,则递增。 IF()中断使能标志:也称为打开中断标志。
如果IF=1,则允许CPU接受来自外部可屏蔽中断源的中断请求; 如果IF=0,则表示CPU不响应请求。 IF 对不可屏蔽中断和 CPU 内部中断请求没有影响。 TF() 陷阱标志:也称为跟踪标志。 如果TF=1,则CPU处于单步执行模式。 在该工作模式下,CPU每执行一条指令,就会自动产生一个类型1的内部中断,可以用来检查该指令的执行情况。 什么是堆栈? 它是干什么用的? 堆栈指针的用途是什么? 举个例子来说明栈的操作。 答:栈是按照后进先出(LIFO)原则访问数据的存储区域。 堆栈的作用是在调用子程序(或切换到中断服务程序)时,及时、正确地保存断点和相关寄存器、标志,并保证相继正确返回。 堆栈指针SP可用于实现堆栈区域的自动管理。 例如:要将AX寄存器的内容压入堆栈,使用push指令(将SP的原始值设置为1000H)。 操作过程如下: 第一步:先放入SP-lSP,然后将AH(高字节)发送到SP指向的单元(即SP=1FFFH); 第二步:再次制作SP-1SP,并将AL(低位字节)发送到SP指向的单元(此时SP=1FFEH); 数据弹出操作与推送过程相反:弹出时先弹出AL内容,然后修改SP+1SP; 然后弹出AH内容,然后修改SP+1SP。
10、对于8086/组成的系统,如何建立堆栈的位置? 栈首地址(即SS是栈底吗?为什么?答:8086/8088系统中栈的位置是由SS和SP初始化后确定的:(SS)*16决定了栈的地址栈段的起始单元,即栈段的首地址;(SS)*16+(SP的初始值)决定了栈段最后一个单元的地址,即栈底the stack; (SS)*16+(SP的当前值)决定了栈段当前可用单元的地址,即栈顶,显然栈首地址不是最低地址栈的结构,一般来说,在栈所在的内存区域,栈底为高地址,栈初始化后,没有数据压入后,栈底和栈顶重叠 当数据压入栈时,栈顶地址总是小于栈底地址,且位于低地址端。 11、8086和8088有什么区别? 答:8086和8088的区别主要体现在以下几个方面:首先,8086的指令队列可以容纳6个字节,每个总线周期从内存中取出一个字节的指令代码填充到队列中。 8088只能保存4个字节,每个总线周期只能取出1个字节。 指令代码。 其次,8086外部数据总线宽度为16位,而8088外部数据总线宽度只有8位。 注:8086和8088外部数据总线的宽度不同会造成系统地址线和数据线连接方式的差异。 三、其他不同的引脚定义:(1)AD15~AD,在8086中,是地址/数据复用器,而在8088中,AD15~AD改为A15,仅用作地址线; (2) 引脚 34 和 28 具有不同的定义。
12.8086/工作在最小模式时:CPU访问内存时使用什么信号? CPU访问外设接口时,使用哪些信号? 当HOLD有效并被响应时,CPU的哪些信号被设置为A:8086/工作在最小模式时,如果访问内存,需要使用以下信号:M/IO、ALE、DT/、 DEN、READY、BHE、WR、RD、AD ~ AD15。 如果访问外设,需要使用以下信号:M/IO、ALE、DT/、DEN、READY、WR、RD、AD~AD15 当 HOLD 有效并得到响应时,所有三态输出线8086/8088 CPU 会处于浮空状态,即被设置为高阻,8086/8088 CPU 会放弃对总线的控制。 这些三态输出线包括大部分地址/数据总线和控制总线,如M/IO、DT/、DEN、WR、RD、INTA 8086/。 工作在最大模式时,S可以代表CPU的哪些状态? RQ/GT 信号的用途是什么? 答:当8086/8088 CPU工作在最大模式时,S状态信号被8288总线控制器解码,产生访问内存和I/O端口所需的控制信号。 状态输入 CPU 总线周期 8288 输出命令 中断响应 INTA 端口 IORC 端口 IOWC、AIOWC 取指令 MRDC 读存储器 MRDC 写存储器 MWTC、AMWC GT 和 RQ GT 用于 8086/8088 和其他使用总线的处理器(如 8087/8089)提供仲裁机制。
14. 尝试指出下列操作后的各个状态标志,并解释进位标志和溢出标志的区别: (1) 1278H + 3469H 答案:CF=0 AF=1 ZF=0 SF=0 PF=1 (2) 54E3H-27A0H 答案:CF=0 AF=0 ZF=0 SF=0 PF=0 (3) 3881H+3597H 答案:CF=0 AF=0 ZF=0 SF=0 PF=1 (4) 01E3H -01E3H 答案:CF=0 AF= 0 ZF=1 SF=0 PF=1 其中进位标志CF用于判断无符号数运算是否超出数的表示范围,溢出标志OF用于判断判断带符号数运算是否超出了数的表示范围。 奇偶校验标志PF只能判断结果的低8位中“1”的个数是奇数还是偶数。 15.什么是逻辑地址? 什么是物理地址? 他们之间有什么联系呢? 各自用在什么地方? 答:逻辑地址由两个16位部分组成,即段基地址和偏移量。 一般程序中出现的地址都是以逻辑地址的形式表示的; 物理地址是20位地址,这是表示存储的唯一方式。 每个字节空间单元的地址一般只出现在地址总线上。 由于8086/中的寄存器只有16位长,程序无法直接存储20位物理地址,而必须依靠逻辑地址,即用两个16位寄存器来表示物理地址。 它们之间的关系是:物理地址=段基地址*16+偏移量; 另外,一个物理地址可以对应多个逻辑地址。