好全_微机原理习题答案(最新整合版)

2025-04-29

《微机原理及应用》

习 题 参 考 答 案

微机原理课程组

2010年09月18日

习题一

1.冯.诺依曼计算机由哪几个部分组成?各部分的功能是什么?

答:冯.诺依曼在1946年提出了“存储程序”的计算机设计方案,计算机由运算器、控制器、存储器、输入设备和输出设备几个部分组成。

输入设备用来向计算机输入程序和原始数据;输出设备用来输出计算机的处理结果及程序;存储器用来存放程序和数据;运算器是对数据进行运算的部件,其主要功能是对二进制数据进行算术运算(加、减、乘、除)和逻辑运算(与、或、非、移位),故又称为算术逻辑单元;控制器是整个计算机的控制中心,其功能是控制计算机各个部件自动协调工作。 2.计算机的发展经历了哪几个时代?计算机有哪些方面的应用?

答:第一代 (1946年~1958年):电子管计算机;第二代 (1959年~1964年):晶体管计算机;第三代 (1965年~1970年):集成电路(IC)计算机;第四代 (1971年以后):大规模/超大规模集成电路(LSIC/VLSIC)计算机。

计算机应用主要有:1.科学计算;2.数据处理;3.实时控制;4.计算机辅助系统;5.人工智能;6.远程教育;7.电子商务等。

3.微型计算机系统主要由哪些部分组成?各部分的主要功能是什么?

答:微型计算机系统主要由: 微处理器、主存储器、输入/输出接口、输入/输出设备、系统总线等部分组成。

各部分的主要功能是:1.微处理器:它是微型计算机的核心部件,由运算器、控制器、寄存器等组成其主要功能是通过对指令的译码,产生微操作以控制计算机各个部件自动协调工作。2.主存储器:是微型计算机的重要组成部分之一,用于存储指令和数据。3.输入/输出接口:简称I/O接口,是微机与I/O设备进行信息传递的桥梁,即微机通过I/O接口与输入/输出设备进行信息交换。4.输入/输出设备:简称为I/O设备,人们通过I/O设备与微机进行信息交流。5.系统总线(system bus):是用来连接微处理器与其他部件的一束信号线,通过系统总线架起了微处理器与其他部件之间进行信息传递的通道。 4.什么是微型计算机的系统总线?简要说明微处理器三总线的作用。

答:系统总线是用来连接微处理器与其他部件的一束信号线,根据所传递的信息不同,可以将系统总线分为:地址总线(AB),用于传送存储器或I/O接口的地址;数据总线(DB),用于微处理器与其他部件的信息传递;控制总线(CB),用于传送各类控制信号,使外设和其它的部件在微处理器的控制下完成控制操作。 5.解释下面术语的含义。

(1) 微处理器、微型计算机、微型计算机系统

答:微处理器:它是微型计算机的核心部件,由运算器、控制器、寄存器等组成;

微型计算机:体积小、重量轻,采用超大规模集成电路VLSIC,器件数量少,便于携带(笔记本),规模化生产、产量大、价格低廉、普及面大,结构配置灵活、可靠性高;

微型计算机系统:由微型计算机构成的计算机系统。 (2)字节、字、字长

答:字节:是计算机中比较通用的基本单位,一个字节由8位二进制数位组成。

字:是计算机内部处理数据的基本单位。 字长:是是指机器一次所能处理的数据位数。 (3)主存、内存、高速缓冲存储器

答:主存:是微型计算机的重要组成部分之一,按读写性能可以分为随机存储器(简

RAM)和只读存储器(简称ROM)。

内存:通常说内存容量,指的是随机存储器,并不包括只读存储器。

高速缓冲存储器:在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用,使CPU可以以较快速度存取SRAM中的数据。 (4)RAM、ROM

答:RAM:随机存储器;ROM;只读存储器。 (5)硬件、软件

答:硬件:组成计算机的物理实体;软件:操作计算机运行的程序。

习题二

1.数制转换

(1)12=( 1100 )B=( 0C )H (2)(0F89)H=(111110001001)B=( 3977 )D (3)(67.75)D=( 1000011.11 )B=( 43.B )H (4) 96.25 =( 1100000.01 )B=( 60.4 )H (5) 10111011B =( 187 )D=( 0BB )H

(6)(0001 1000 0010.0101) B = ( 386.3125 )D =( 182.5 )H 2.写出下列二进制数的原码、反码和补码。

(1)+1111000B [X]原=01111000 [X]反=00000111 [X]补=01111000 (2)-1000000B [X]原=11000000 [X]反=10111111 [X]补=11000000 (3)-0000001B [X]原=10000001 [X]反=11111110 [X]补=11111111 (4)-0101100B [X]原=10101100 [X]反=11010011 [X]补=11010100 3.求下列数的补码 (用一个字节表示),如果用一个字表示结果如何? (1) -9 [X]补=11110111(字节) [X]补=1111111111110111(字) (2) 23 [X]补=00010111(字节) [X]补=0000000000010111(字) (3)-65 [X]补=10111111(字节) [X]补=1111111110111111(字) (4)-128 [X]补=10000000(字节) [X]补=1111111110000000(字) 4.已知[X]补 ,求X的真值。

(1)[X]补=01111111B X=+127 (2)[X]补=10000001B X=-127 (3)[X]补=10000000B X=-128 (4)[X]补=01111000B X=+120

5.试将二进制数10000100B和00001110B相加,试说明不管把这两个数看作是无符号数还是有符号数,结果都正确(看作有符号数时采用补码表示)。 10000100B 答:当作为无符号数相加时和为146,小于255结果正确, +00001110B 当作为有符号数,正数和负数相加,结果不会溢出。 10010010B

6.将有符号数10000100B和11100110B相加,判断结果是否溢出,为什么? 答:用进位位法判别溢出:CY=1,CD=0,OF=CY⊕CD=1, 10000100B 产生溢出。因为两负数相加,其和大于-128,超出了表示的范围。 +11100110B 101101010B 7.数值型数据,在加减运算中为什么采用补码表示?

答:对数值型数据,有正数也有负数,采用补码表示时,可以将符号和数值位一起进行编码,并可将减运算转化成加运算。

8.完成下列8421 BCD码与其它数制/码制的转换。 (1)(1001 0011)BCD= ( 93 )D =( 01011101 ) B

(2)(1000 0010.0101)BCD = ( 82.5 )D =( 01010010.1 ) B

(3)(0011 0111 0110.0111)BCD = ( 376.7 )D =( 101111000.1011001 ) B (4)(11010001)B=( 0010 0000 1001 )BCD

(5)(0001 1000 0010.0101) B = ( 0011 1000 0110.0011 0001 0010 0101 )BCD (6)(58.5)D= = ( 111010.1 ) B = ( 0101 1000.0101 )BCD 9.计算下列BCD码的和,并按规则进行十进制调整。

(1)98+87 (2)48+68 (3)59+84 (4)456+989 答:(1)98+87=185 10011000 个位相加和大于9,加6调整, +10000111 十位相加和产生进位,加60H调整 100011111 结果为:185 +01100110 000110000101BCD

01001000 答:(2)48+68=116

+01101000 个位相加产生进位加6调整

10110000 十位相加和大于9加60H调整

+01100110 结果为:116

000100010110BCD

答:(3)59+84=143

个位相加和大于9,加6调整 十位相加和大于9,加60H调整 结果为:143

答(4): 456+989=1445

个位、十位、百位相加和均大于9 个位、十位、百位均加加6调整 结果为:1445

10.A ~ Z、a ~ z、0 ~9的ASCII码分别是什么?空格、回车、换行、$、?、+、-的ASCII码是什么?

答:ASCII码用16进制表示

A ~ Z的ASCII码为:41H-5AH; a ~ z的ASCII码为:61H-7AH; 0 ~ 9的ASCII码为:30H-39H; 空格的ASCII码为:20H; 回车的ASCII码为:0DH; 换行的ASCII码为:0AH; “$”的ASCII码为:24H; “?”的ASCII码为:3FH; “+”的ASCII码为:2BH; “-”的ASCII码为:2DH。

01011001 +10000100 11011101 +01100110 000101000011BCD 010001010110 +100110001001 110111011111 +011001100110 0001010001000101BCD

11.什么是组合的BCD码?什么是非组合的BCD码? 答:组合的BCD码是用一个字节表示2位BCD码;

非组合的BCD码一个字节仅在低四位表示1位BCD码。

12.简述汉字的编码规则。

答:GB2312国标字符集呈二维表,分成94行×94列,行号称为区号,列号称为位号。每一个汉字或符号在码表中都有各自一个惟一的位置编码,该编码就是字符所在的区号(行号)及位号(列号)的二进制代码(7位区号在左、7位位号在右,共14位),也称为汉字的区位码。因此,字符集中的任何一个图形、符号及汉字都用唯一的区位码表示。

为了不影响已经约定好的数据通信规程,将区位码的区号和位号都加 32(即 100000),变换成对应的国标码。

习题三

1.8086CPU由哪两部分组成?他们的主要功能各是什么?8086CPU与8088CPU的主要区别是什么?

答:由指令部件EU和总线接口部件BIU组成。

EU功能:EU只负责执行指令。其中的算术逻辑单元(ALU)完成16位或8位的二进制运算,运算结果可通过内部总线送到通用寄存器组或BIU的内部寄存器中等待写入存储器。16位暂存器用来暂存参加运算的操作数。经ALU运算后的结果特征送入标志寄存器FR中保存;EU中的控制器负责从BIU的指令队列中取指令,并对指令进行译码,根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。

BIU功能:总线接口单元BIU负责与存储器或I/O端口打交道,正常情况下,BIU通过地址加法器形成指令所在存储器中的物理地址后,启动存储器,从给定地址的存储器中取出指令代码送指令队列中等待执行,一旦指令队列中空出2个字节,BIU将自动进人读指令操作以填满指令队列。只要收到EU送来的操作数地址,BIU将立即形成操作数的物理地址,完成读/写操作数或运算结果的功能。

答:8086CPU与8088CPU的主要区别:

① 8088 BIU中指令队列长度仅有4个字节;

② 8088 BIU通过总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器组之间的数据总线宽度也是8位,而EU内部总线仍是16位,所以把8088 CPU称之为准16位微处理器。

2.8086内部的并行操作体现在哪里?

答:EU执行指令时,不必访问存储器去取指令,而是直接从指令队列中取得指令代码,并分析执行它。BIU通过地址加法器形成指令所在存储器中的物理地址后,启动存储器,从给定地址的存储器中取出指令代码送入指令队列中等待执行。这两个过程是并行进行的。

3.8086CPU中有哪些寄存器?各有什么用途?

答:① 通用寄存器组:4个16位通用寄存器,AX、BX、CX、DX,称作通用数据寄存器。可用来存放16位的数据或地址,另有隐含的专门用法;2个指针寄存器:SP和BP。它们均用来存放段内偏移地址;2个变址寄存器:SI和DI。这两个寄存器常用在字符串操作中,并分别用来存放源操作数的段内偏移量和目标操作数的段内偏移量。

② 段寄存器组:

CS:代码段寄存器,存放代码段的基地址,要执行的指令代码均存放在代码段中; DS:数据段寄存器,存放数据段的基地址,指令中所需操作数常存放于数据段中; SS:堆栈段寄存器,存放堆栈段的基地址,堆栈操作所需的数据存放于堆栈段中; ES:附加段寄存器,存放附加段的基地址,附加段也是用来存放存储器操作数的。

③ 标志寄存器FR:

表示运算的特征或控制CPU的操作。 ④ 指令指针寄存器IP:

用来存放将要执行的下一条指令代码在代码段中的偏移地址,在程序运行过程中,BIU可修改IP中的内容,使它始终指向将要执行的下一条指令

4.标志寄存器FR中有哪些标志位?它们的含义和作用是什么? 答:标志寄存器FR

① 进位标志位CF:运算结果最高位若产生进位或借位,该标志置1,否则置0。 ② 奇偶标志位PF:运算结果中1的个数为偶数,该标志置1,否则置0。

③ 辅助进位标志位AF:加法/减运算中,若第3位有进/借位,AF=1,否则AF=1。 ④ 零标志位ZF:运算指令执行之后,若结果为0,则ZF=1,否则ZF=0。

⑤ 符号标志位SF:它和运算结果的最高位相同。有符号运算时最高位表示符号,SF=1为负,SF=0为正。

⑥ 溢出标志OF:若本次运算结果有溢出,则OF=1,否则OF=1。

⑦ 中断标志位IF:该标志用于控制可屏蔽的硬件中断。IF = 0,可接受中断;IF = 0中断被屏蔽,不能接受中断。该标志可用指令置1或置0(复位)。

⑧ 方向标志位DF:该标志位用于指定字符串处理指令的步进方向。当DF = 1时,字符串处理指令以递减方式由高地址向低地址方向进行;当DF = 0时,字符串处理指令以递增方式,由低地址向高地址方向进行。该标志可用指令置位或清零。

⑨ 单步标志位TF:TF = 1,表示控制CPU进人单步工作方式,此时,CPU每执行完一条指令就自动产生一次内部中断。单步中断用于程序调试过程中。

5.为达到下述目的,各应判定哪个标志位并说明其状态。 (1)两数相减后比较大小;

答:无符号数A-B,判CF。A≥B时 CF=0;A≤B时 CF=1。 有符号数A-B,判SF和OF。A≥B时SF⊕OF=0;A<B时:SF⊕OF=1。 (2)比较两数是否相等;

答:判ZF。当A=B时,ZF=1。 (3)两数运算后是正数还是负数?

答:对有符号数,判SF。当SF=1时,结果为负数;当SF=0时,结果为正数。 (4)两数相加后是否产生溢出?

答:对有符号数,判OF。当OF=1时,结果产生溢出;当OF=0,结果无溢出。 6.什么是逻辑地址?它由哪两部分组成? 答:在8086系统中,16位的地址称为逻辑地址。包括了段内“偏移地址”和“段基址”。 7.8086系统的存储器的逻辑地址和物理地址之间有什么关系?

答:物理地址为20位,是由“段基址”和“偏移地址”组成,其关系为:

物理地址=段基址×16+偏移地址 8.“最小模式”和“最大模式”系统的主要区别是什么?各有什么主要特点?

答:最小模式是指单机系统,即系统中只有8086/8088一个微处理器。在这种系统中,8086/8088CPU直接产生所有的总统控制信号。

最大模式系统中包含有两个或多个处理器,可构成多机系统,其中一个为主处理器8086/8088 CPU。其它处理器称为协处理器,它们是协助主处理器进行工作的。在最大模式系统中,系统所需控制信号由总线控制器8288提供。

两种模式的最主要区别体现在8086 CPU的部分管脚(24~31引脚)具有不同的功能。

9.8086系统中存储器为什么要分段?各逻辑段之间的关系如何?

答:8086/8088系统中,可寻址的存储器空间达1M字节,要对整个存储器空间寻址,需要20位长的地址码,而CPU内部可以提供地址的寄存器及算术逻辑运算单元都是16位,其寻址范围为64K字节(16位地址)。因此在8086/8088系统中,把整个存储空间分成许多逻辑段,这些逻辑段容量不能超过64K字节。对任何一个存储单元,只要能得到它所在段的首地址和段内的相对地址(16位),就可对它进行访问。

逻辑段的首地址可在整个存储空间内进行设置,各个逻辑段之间可以紧密相连,也可以相互重叠(完全重叠或部分重叠)。

10.在8086CPU中堆栈操作是字操作还是字节操作?已知SS=1050H,SP=0006H,AX=1234。若执行对AX的压栈操作后,则AX中的数据存放在何处?SP为什么值?

答:堆栈操作是字操作。

对AX压栈后,AX中的数据在10504H,10505H单元中,其中(10504H)=34H,

(10505H)=12H,SP=0004H。

11.已知当前数据段位于存储器的A1000H到B0FFFH范围内,DS段寄存器的内容是多少?

答:DS=A100H,为数据段的“段基址”。

12.若CS=234EH时,已知某一存储单元的物理地址为25432H。问若CS的内容被指定成1A31H时,该存储单元的物理地址应为什么?

答:因为存储单元的物理地址是唯一的,当CS内容改变后,并不影响该存储单元的物理地址,故仍为:25432H。

13.在8086系统中为什么用地址锁存器? 答:因8086CPU的引脚采用了分时复用的地址/数据和地址/状态总线,为保证形成稳定的系统地址总线,故需采用地址锁存器以产生系统地址总线。

14.8086 CPU读/写总线周期各包含多少个时钟周期?什么情况下需要插入TW等待周期?应插入多少个TW,取决于什么因素?什么情况下会出现空闲状态TI ?

答:读写总线周期最少各包含了四个时钟周期,如果配合工作的存储器或I/O端口由于本身速度或其它原因来不及在T3时钟周期送出所需信息,则插入TW。否则不需插入等待周期TW。在T3周期结束后可立即进入T4周期;

当检测到READY引脚为低电平,则在T3周期结后不进入T4周期,而应插入一个TW周期。以后在每一个TW周期的上升沿都

要检测READY引脚电平,只有检则到

5CE5AH 34H READY为高电平时,才在这个TW周期

5CE5BH 12H 后进入T4周期。

当BIU不访问存储器和外设时,总

线时序出现空闲状态TI

15.某程序数据段中存有两个数据字

1234H和5A6BH,若已知DS=5AA0H,它们

5DC45H 6BH 的偏移地址分别为245AH和3245H,试画

5DC46H 5AH 出它们在储存器中的存放情况。

答:它们在储存器中的存放情况见图:

16.80286 CPU的结构中比8086 CPU增加的部分有哪些?其主要用途是什么?

答:8086CPU内部有BIU和EU两个独立部件并行工作,而80286 CPU内部有4个部

件BU(总线单元)、IU(指令单元)、EU(执行单元)和AU(地址单元)并行工作,提高了吞吐量,加快了处理速度。其中IU是增加的部分,该单元取出BU的预取代码队列中的指令进行译码并放入已被译码的指令队列中,这就加快了指令的执行过程。

习题四

1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。其中寄存器寻址的指令执行速度最快。

2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少? (1)MOV AX,[64H] 答:寻址方式为直接寻址;PA=60064H (2)MOV AX,NUM 答:寻址方式为直接寻址; PA=60005H (3)MOV AX,[SI] 答:寻址方式为寄存器间接寻址;PA=60100H (4)MOV AX,[BX] 答:寻址方式为寄存器间接寻址;PA=60300H (5)MOV AX,[BP] 答:寻址方式为寄存器间接寻址;PA=50400H (6)MOV AL,[DI] 答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H] 答:寻址方式为寄存器相对寻址;PA=61410H (8)MOV AX,NUM[BX] 答:寻址方式为寄存器相对寻址;PA=60305H (9)MOV AX,[BX+SI] 答:寻址方式为基址变址寻址;PA=60400H (10)MOV AX,NUM[BX][DI] 答:寻址方式为相对基址变址寻址;PA=61505H 3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。

(1)直接寻址 答:有效地址为 EA=C237H (2)用BX的寄存器间接寻址 答:有效地址为 EA=637DH (3)用BX的相对寄存器间接寻址 答:有效地址为 EA=125B4H (4)基址加变址寻址 答:有效地址为 EA=8E18H (5)相对基址变址寻址 答:有效地址为 EA=1504FH 其中,(3)和(5)中产生进位,要把最高位1舍去。 4.指出下列指令是否正确,若不正确情说明原因。

(1) MOV DS, 2010H ;立即数不能传送到DS

(2) PUSH AL ;栈操作,操作数类型必须为WORD类型 (3) MOV DX,[SP] ;SP寄存器不能做间址寄存器

(4) IN AL,0A00H ;I/O指令的直接寻址,地址只能为8位 (5) XCHG CL,CH ;正确

(6) SHR AX,3 ;移位超过一位时,应采用CL寄存器间址 (7) AAA CX ;非组合的BCD码加法调整AAA指令应为隐含操作数 (8) ADD [BP+DI] ;加法指令ADD,缺少源操作数

(9) OUT DX,CL ;I/O指令操作数只能用AX、AL提供,端口地址可以是8位的

直接地址或用DX间址

(10)CBW BH ;符号扩展指令为隐含操作数

(11)ADD 03ECH ;加法指令应为双操作数指令,立即数不能做目的操作

(12)MOV BX, [SI+DI] ;源操作数形式错误,SI和DI不能同时做为间址寄存器

(13)MOV DI, [AX] ;AX不能做为间址寄存器

(14)OUT 258H, BX ;I/O指令格式错误,见(9)题的解释 (15)SHL AX, 3 ;移位指令,位移位数大于1时,应用CL来指明

(16)MOV 64H,AL ;立即数不能做为目的操作数 (17)ADD AL,6600H ;源、目的操作数的类型不一致 (18)MOV[BX],[SI] ;传送指令中,两个操作数不能同时为存储器操作数

(19)XCHG AX,8800H ;交换指令的操作数不能使用立即数 (20)MOV AX,[BX+DX] ;传送指令的源操作数,不能使用立即数 (21)LEA BX,1000H

;有效地址传送指令的源操作数不能为立即数,必须是存储器操作数 (22)DIV 0010H ;正确

(23)LEA DX,DI ;同(21)题,源操作数不能为寄存器操作数 (24)MUL AX,200H ;乘法指令的目的操作数是隐含的,不能出现在指令中 (25)MOV AX, [BX+BP]

;传送指令中源操作数格式错,BX和BP不能同时为间址寄存器

(26)CMP [BX], [SI] ;比较指令的两个操作数不能同时为存储器操作数 (27)OUT DX, BX ;I/O指令中,源操作数只能使用AL或AX寄存器 (28)AND OFH,AL ;“与”指令中,目的操作数不能使用立即数 (29)SAL [BX],CX ;移位指令,移位位移不能用CX寄存器指明 (30)JMP FAR [BX+SI] ;转移指令中转移的目标地址表达方式错误

;如果是段内间接转移,应为:JMP WORD PTR[BX+SI] ;如果是段间间接转移,应为:JMP DWORD PTR[BX+SI]

(31)JNZ AAA;不相等转移指令中,符号地址(标识符)不能使用系统中的保留字 (32)JMP NEXT ;正确

(33)SBC AX, [DX] ;指令助记符错,源操作数表示方式错 (34)MOV CS,DS

;段寄存器之间不能传送数据,CS寄存器也不能做为目的操作数 (35)ADD DS, AX ;加法指令中段寄存器不能做为操作数

(36)MOV AL,CX ;源、目的操作数的类型不一致,见(17)题 (37)INC [BX] ;没有指定存储器操作数类型 (38)MOV CL,A8H

;源操作数为16进制的立即数,16进制数以字母开头时应在前面加“0” (39)MOV ES,DS ;错同(34)题

(40)IN AL,BX ;I/O指令端口地址表示错误,只能用8位立即数或DX间址 5.设一个字节数据X存放AL寄存器中,试说明下列程序的功能:

XOR AH,AH ;AH清零

SAL AX,1 ;AX左移一位,相当于2X MOV BX,AX ;2X送BX暂存 MOV CL,2

SAL AX,CL ;AX左移二位,2X×4=8X ADD AX,BX ;2X+8X=10X

该段程序实现了字节数据X乘10,结果在AX中。 6.试编程实现:

(1)AL寄存器的低4位清0 (2)BL寄存器的低4位置1 (3)CL寄存器的低4位取反

(4)测试DL寄存器的最低2位是否同时为0,若是,将0送入BL寄存器;否则将1送入BL寄存器。 答:程序段如下

AND AL,0F0H ;① AL寄存器的低4位清0

OR BL,0FH ;② BL寄存器的低4位置1 XOR CL,0FH ;③ CL寄存器的低4位取反

;④ 测试DL寄存器 TEST DL,03H

JZ NEXT MOV BL,1 JMP NEXT1

NEXT:MOV BL,0 NEXT1:HLT

7.若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元中,得到的和存放在2000H开始的内存单元。试编程完成。 答:程序段如下

MOV AX,[3000H] ADD [2000H],AX MOV AX,[3002H] ADC [2002H],AX

8.设从2000H为首址的内存中,存放着10个带符号的字节数据,试编程完成:找出其中最大的数,并存入2000H单元。

答:程序段如下

MOV BX,2000H MOV CX,9

MOV AL,[BX] N2:INC BX

CMP AL,[BX] JGE N1

MOV AL,[BX] N1:LOOP N2

MOV [2000H],AL HLT

9.用寄存器间接寻址方式时,BX、BP、SI、DI分别针对什么情况来使用?用这4个寄存器分别组合间接寻址时,物理地址是怎样计算的?举例说明。

答:BX、SI、DI用于在数据段寻址,BP用于在堆栈段寻址。

在数据段物理地址为:PA=DS×10H+BX/SI/DI

或者为:PA=DS×10H+BX+SI 或(BX+DI)

在堆栈段物理地址为:PA=SS×10H+BP

或者为:PA=SS×10H+BP+SI 或(BP+DI) 举例如下:

MOV AX,[BX+SI] ;在数据段寻址,PA=DS×10H+BX+SI MOV AX,[BP+DI] ;在堆栈段寻址,PA=SS×10H+BP+DI 10.已知:DS=2000H,BX=0300H,SI=0002H,(20300H)=12H,(20301)=34H,(20302H)=56H,(20303H)=78H,(21400H)=2AH,(21401H)=4CH,(21402H)=B7H,(21403H)=65H试说明下列各条指令执行完后AX寄存器的内容。

(1)MOV AX,1400H ;答:执行完该条指令后 AX=1400H (2)MOV AX,BX ;答:执行完该条指令后 AX=0300H (3)MOV AX,[1400H] ;答:执行完该条指令后 AX=4C2AH (4)MOV AX,[BX] ;答:执行完该条指令后 AX=3412H 11.根据以下要求,试写出相应的汇编语言指令。

(1)把BX寄存器和DX寄存器的内容相加,结果存入BX寄存器中。 答:指令为 ADD BX,DX

(2)用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。

答:指令为 ADD AL,[BX+SI]

(3)用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX相加,并把结果存回存储器中。

答:指令为 ADD [BX+0B2H],CX

(4)用位移量为0524H的直接寻址方式把存储器中的一个字与立即数3C5AH相加,并把结果送回该存储单元。

答:指令为 ADD [0524H],3C5AH

12.已知堆栈段寄存器SS的内容是0FF0AH,堆栈指针寄存器SP的内容是0008H,先执行两条把8057H和0F7CH分别进栈的PUSH指令,再执行一条POP BX指令。试画出堆栈区和SP的内容过程变化示意图(标出存储单元的物理地址)。

答:将8057H和0F7CH分别进栈后,SP=0004H,再执行一条POP BX指令后,SP=0006H,

BX=0F7CH。堆栈区和SP的内容过程变化示意图如下:

SP=0004H SP=0006H SP=0008H

SS=0FF0AH

SP →

0FF0A0H 0FF0A1H 0FF0A2H 0FF0A3H 0FF0A4H 0FF0A5H 0FF0A6H 0FF0A7H 0FF0A8H 0FF0A9H 0FF0AAH

××H ××H ××H 7 C H 0 F H SP →

7 C H 0 F H 5 7 H 8 0 H ××H ××H ××H SP →

5 7 H 8 0 H ××H ××H ××H

13.字节扩展指令和字扩展指令用在什么场合?举例说明。 答:用在除法运算中,对带符号数的被除数进行扩展;

例如:当被除数在AX中,除数在BX中时

CDW

IDIV BX

14.写出执行以下计算的指令系列。其中X、Y、Z、R、W均为存放16位带符号数单元的地址。

(1)Z ← W +(Z-X) 答:指令系列如下

MOV AX,Z SUB AX,X ADD AX,W MOV Z,AX

(2)Z ← W -(X+6)-(R-9) 答:指令系列如下

ADD X,6 SUB R,9 MOV AX,W SUB AX,X SUB AX,R MOV Z,AX

(3)Z ←(W×X)/(Y+6),R ← 余数 答:指令系列如下

MOV AX,W IMUL X

MOV BX,Y ADD BX,6 IDIV BX MOV R,DX

(4)Z ←((W-X)/ 5×Y)× 2 答:指令系列如下

MOV AX,W SUB AX,X CDW IDIV 5 IMUL Y IMUL 2

ADD DX,CF MOV Z,AX

15.写出完成以下操作的程序段。假设各变量的值均为用压缩BCD码表示的二位十进制数

(1)U ← V+(S-6) 答:程序如下

MOV AL,S

SUB AL,6 DAS

ADD AL,V DAA

MOV U,AL

(2)U ←(X+W)-(Z-V) 答:程序如下

MOV AL,Z SUB AL,V DAS

MOV BL,AL MOV AL,X ADD AL,W DAA

SUB AL,BL DAS

MOV U,AL

16.移位指令和循环移位指令在执行操作时,有什么差别?在编制乘除法程序中,为什么常用移位指令来代替乘除法指令?试编制一个程序段,实现CX中的数除以4,结果仍放在CX中。

答:逻辑移位指令用于无符号数的移位,左移时,最低位补0,右移时,最高位补0。 算术移位指令用于对带符号数的移位,左移时,最低位补0,右移时,最高位的符号在右移的同时,且保持。

小循环移位指令ROL、ROR是只对目标操作数进行循环,即不含CF的左、右移循环移位。

大循环移位指令RCL、RCR是把标志位CF也包含在循环中的左、右移循环移位。 对于二进制数,左移一位相当于乘二,右移一位相当于除二,所以可以用移位指令来代替乘除法指令。

SAR CX,1 ;CX算术右移一位,除二 SAR CX,1 ;CX算术右移一位,除二 17.在0628H单元处有一条二字节指令JMP SHORT OBJ,如果其中位移量为:① 27H;② 6BH;③ 0C6H,试问转向地址处的值为多少?

答:段内短转移的把当前的IP值(即JMP指令的下一条指令的地址)与指令指定的8位偏移量之和送到IP,使程序运行发生转移。指令中的OBJ是一个带符号的八位偏移量。

当OBJ=27H时,转移的目标地址值为:0651H 当OBJ=6BH时,转移的目标地址值为:0692H 当OBJ=0C6H时,转移的目标地址值为:05F0H

18.带参数的返回指令用在什么场合?设栈顶地址为4000H,当执行RET 0008H后,SP指针的值是多少?

答:当调用程序为子程序提供一定的参数或参数的地址,这些参数是通过堆栈传递给子程序时;在子程序运行结束返回时,这些参数或参数地址已经没有在堆栈中保留的必要。因此,使用带参数的返回指令RET n,以便废弃一些CALL指令执行前入栈的参数。

设栈顶地址为4000H,当执行RET 0008H后,执行SP ← SP+n的操作,SP=4008H。 19.假定AX和BX中内容为带符号数,CX和DX中的内容为无符号数。请用比较指

令和条件转移指令实现以下判断。

(1)若DX的内容高于CX的内容,转去执行EXCEED。 (2)若BX的内容大于AX的内容,转去执行EXCEED。 (3)若CX的内容等于零,转去执行ZERO。

(4)若BX的内容小于等于AX的内容,转去执行EXCEED。 (5)若DX的内容低于等于CX的内容,转去执行EXCEED。 答:① CMP DX,CX JA EXCEED

② CMP BX,AX JG EXCEED ③ CMP CX,0

JZ ZERO ④ CMP BX,AX JLE EXCEED ⑤ CMP DX,CX JBE EXCEED 20.分析下列程序段:

ADD AX,BX JNO L1 JNC L2

SUB AX,BX JNC L3 JNO L4

JMP SHORT L5

如果AX和BX的内容(带符号数)给定如下:

AX BX

(1)B568H 54B7H (2)147BH 80DCH (3)D023H 9FD0H (4)42C8H 608DH (5)B568H 94B7H

问该程序执行完后,程序转向哪里?

答:① AX+BX没有产生溢出,程序转向L1

② AX+BX没有产生溢出,程序转向L1

③ AX+BX产生溢出,产生进位,执行减运算,产生借位,产生溢出,程序转

向L5

④ AX+BX产生溢出,无进位,程序转向L2

⑤ AX+BX产生溢出,产生进位,执行减运算,产生借位,产生溢出,程序转

向L5

21.8086/8088用什么途径来更新CS和IP的值? 答:出栈;转移;过程调用;中断。

22.设IP=3D8FH,CS=4050H,SP=0F17CH。 当执行CALL 2000:0094H后,试指出IP、CS、SP、(SP-1)、(SP-2)、(SP-3)和(SP-4)的值。

答:CS=2000H,IP=0094H;SP=0F78H,(SP-1)= 3DH,(SP-2)=8FH,(SP

-3)=40H,(SP-3)=50H

23.编写一段程序,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS,否则顺序执行。

答:设字符串OLDS位于数据段,字符串NEWS位于扩展段,程序段如下: LEA SI,OLDS ;取源串首址送SI

LEA DI,NEWS ;取目的串首址送DI CLD ;增址比较 MOV CX,5 ;串长度为5

REPE CMPSB ;相等重复串比较 JNE NEW_LESS ;不相等转移 HLT ;暂停

习题五

1.汇编程序和汇编语言源程序有什么区别?两者的作用是什么? 答:汇编程序是对汇编源程序进行编译的系统程序;汇编源程序是编程人员利用汇编语言为解决某些问题而编写的程序。汇编程序用来对汇编源程序进行编译,从而产生目标代码的;而汇编源程序是用来执行程序动作的语句。

2.汇编语言源程序的语句有哪几种?各自的作用是什么?

答:汇编语言源程序是由指令语句、伪指令语句、宏指令语句组成。

指令语句:产生目标代码,是CPU可以执行的能够完成特定功能的语句。 伪指令语句:在汇编程序对源程序汇编期间由汇编程序处理的操作,它可以完成如处理器选择、定义数据、分配存储区、指示程序结束等功能,但不产生目标代码。

宏指令语句:宏指令语句的目的在于简化汇编语言源程序的书写,不能缩小目标代码文件。

3.标号和变量都有什么属性?各属性的作用是什么? 答:有段属性、偏移地址属性和类型属性。

① 段属性:段属性定义了标号和变量的段起始地址,其值是在某一段寄存器中。 ② 偏移地址属性:该属性表示标号和变量相距段起始地址的字节数,是一个16位无符号数。

③ 类型属性:对于标号而言:用于指出该标号是在本段内引用还是在其它段中引用。标号的类型有NEAR(段内引用)和FAR(段间引用)两种;对变量而言:其类型属性由定义变量的伪指令DB(定义字节型)、DW(定义字型)、DD(定义双字型)等确定。

4.试叙述汇编语言源程序的上机过程。

答:分四步进行 ① 编辑、②汇编、③ 连接、 ④ 调试。

编辑:用编辑程序(例如EDIT.COM)建立扩展名为.ASM的汇编语言源程序文件。 汇编:用汇编程序(例如MASM.EXE)将汇编语言源程序文件汇编成目标程序文件,其扩展名为.OBJ。如果在汇编过程中出现语法错误,根据错误信息提示(如错误位置、错误类型、错误说明),用编辑软件重新调入源程序文件进行修改,直至没有出现语法错误,再进行连接程序。

连接:用连接程序(例如LINK.EXE)把目标程序文件转化成可执行文件,其扩展名为.EXE。

调试:用调试程(例如 DEBUG.EXE)序对可执行文件进行调试,直到无错误为止。 此时的可执行文件在DOS命令下直接执行。

5.已知数据段DATA从存储器02000H单元开始,DATA段的定义如下:

DATA SEGMENT

VAR1 DB 2 DUP(0,1,?) VAR2 DW 50 DUP(?)

VAR3 DB 10 DUP(0,1,2 DUP(3),4) DATA ENDS

试求出三个变量经SEG、OFFSET、TYPE、LENGTH、SIZE运算的结果。

答:运算结果如下表所示: 回送符 变量 VAR1 VAR2 VAR3 SEG 0200H 0200H 0200H OFFSET 0000H 0006H 006AH TYPE 1H 2H 1H LENGTH 2H 32H 0AH SIZE 2H 64H 0AH 6.已知数据段定义如下,试采用图示说明各变量在内存的分配情况以及数据的预置情况。

DATA SEGMENT

A1 DB 50,100,2 DUP(0,1) A2 DB 2 DUP(2,3 DUP(?),10H) A3 DB ‘happy new year!’ A4 DW 0,2000H A5 DW ?,‘AB’ DATA ENDS

A4 0000H 001FH 0010H A1 A3 答: 68H 00H 32H 61H 00H 64H 70H 00H 00H

70H 20H 01H A5 79H 00H ××H 20H 01H ××H A2 6EH 02H 42H 65H ××H 41H 77H ××H 20H ××H 79H 10H 65H 02H 61H ××H 72H ××H 21H ××H 10H

7.试采用图示说明各变量在内存的分配情况以及数据的预置情况。 DATA SEGMENT ORG 0100H B1 DB ? B2 DW 100

B3 DW 2 DUP (0) COUNT EQU 5

B4 DB COUNT DUP(0,1) B5 DW ‘12’,‘34’,‘56’ DATA ENDS

答:内存的分配情况以及数据的预置情况见右图

0100H B1 ××H

B2 64H

00H 00H B3 00H

00H 8.已知变量VAR1、VAR2、VAR3定义如下,试 00H 00H 分析下面的指令是否正确,若有错误,请进行改正。 B4 01H DATA SEGMENT 00H 01H VAR1 DB ?

00H VAR2 DB 10

01H VAR3 EQU 100 00H 01H DATA ENDS

00H (1) MOV VAR1,AX 01H 32H (2) MOV VAR3,AX

31H (3) MOV BX,VAR1 34H B5 33H MOV [BX],10

36H (4) CMP VAR1,VAR2 35H (5) VAR3 EQU 50 答:(1)类型不匹配,该为:MOV VAR1,AL

(2)立即数不能作为目的操作数,该为:MOV AX,VAR3 (3)第一句类型不匹配,改为:MOV BL,VAR1 第二句未指明存储器操作数的类型,改为:MOV BYTE PTR[BX],10 (4)两个存储器操作数之间不能直接作比较,改为:

MOV AL,VAR1

CMP AL,VAR2

(5)符号VAR3 已被定义,不能重复定义,应去掉。

9.假设VAR1和VAR2为字变量,LAB为标号,试指出下面指令的错误之处,并加以改正。

(1)ADD VAR1,VAR2

答:两存储器操作数之间不能直接相加,改为:MOV AX,VAR1 ADD AX,VAR2 (2)SUB AL,VAR2

答:两操作数类型不匹配,改为:SUB AX,VAR2 (3)MOV CL,VAR1

答:两操作数类型不匹配,改为:MOV CX,VAR1 (4)JMP LAB[SI]

答:相对寄存器寻址,相对位移量不能为标号,因为数据值。改为:JMP 5[SI] (5)JNZ VAR1

答:条件转移指令转移的目标地址,只能是标号或8位位移量。改为:JNZ LAB 10.试说明下面指令中哪些需要进行PTR说明。

VAR1 DB 10H,100 VAR2 DW 1000

(1)MOV AL,VAR1

(2)MOV DH,[BX] (3)ADD [BX],2 (4)MOV CL,VAR2 (5)SUB AL,VAR1+1 答:(3)、(4)条指令需要进行PTR说明 11.选择题

(1)在顺序结构的流程图中,不包含有( C )。

A)起始框 B)终止框 C)判断框 D)处理框

(2)设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL=(无正确选项)。

A)51H B)46H C)47H D)0C5H

注:正确的结果为:AL=0A3H

(3)下述指令的执行结果是( C )

MOV AL,0FFH XOR AL,3FH

A)AL=40H B)AL=20H C)AL=0C0H D)AL=0E0H 12.在AX和DX中存有一个32位带符号数(DX中存放高16位),试编写程序求出它的相反数。

答:程序设计如下:

CODE SEGMENT

ASSUME CS:CODE

START:MOV CX,0

CLC

SBB CX,AX MOV AX,CX MOV CX,0 SBB CX,DX MOV DX,CX MOV AH,4CH INT 21H

CODE ENDS

END START

13.编程实现求S=(X2+Y2)/ Z的值,并将结果放入RESULT单元。(设:X、Y、Z均为字节数,且Z为无符号数) 答:程序设计如下:

DATA SEGMENT X DB 20H Y DB 35H Z DB 12H RESULT DW ? DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX MOV AL,X MUL AL

MOV DX,AX MOV AL,Y MUL AL

ADD AX,DX MOV DX,0 MOV BL,Z MOV BX,0 DIV BX

MOV RESULT,AX MOV AH,4CH INT 21H CODE ENDS END START

14.试编程实现将键盘输入的小写字母用大写字母显示出来。 答:程序设计如下:

CLRF MACRO ;宏汇编命令,定义宏

MOV DL,0DH MOV AH,02H

INT 21H ;回车,使光标回到起始位置 MOV DL,0AH MOV AH,02H

INT 21H ;光标换行 ENDM ;宏定义结束

DATA SEGMENT

STRING DB 50,?,50 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA

MOV DS,AX LEA DX,STRING MOV AH,0AH INT 21H

CLRF ;宏指令 MOV BL,STRING+1 MOV BH,0

LEA SI,STRING+2 ADD BX,SI

MOV BYTE PTR[BX],‘$’

NEXT:MOV DL,[SI]

CMP DL,‘a’

JB NEXT1 CMP DL,‘z’ JA NEXT1 SUB DL,20H MOV [SI],DL

NEXT1:INC SI

DEC BL JNZ NEXT

LEA DX,STRING+2 MOV AH,09H INT 21H

MOV AH,4CH INT 21H CODE ENDS

END START

15.若在数组字变量SQTAB平方表中有十进制数0~100的平方值,用查表法找出35这个数的平方值放入字变量NUM中,写出程序段和有关的伪指令。

答:程序设计如下

DATA SEGMENT

SQTAB DW 0,1,4,9,16,25,36,?? 10000

TAB DB 35

NUM DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET SQTAB MOV AL,TAB SAL AL,1 MOV AH,0 ADD BX,AX

MOV AX,WORD PTR[BX] MOV NUM,AX MOV AH,4CH INT 21H

CODE ENDS

END START

16.试指出下列无条件转移指令的转移地址中的转移地址? (1)JMP BX

答:转移地址为BX寄存器中的值。属段内间接转移,IP ← BX (2)JMP WORD PTR[BX]

答:转移地址为BX中的值指明的存储器字单元中的值。属段内间接转移,IP ←(MEM)

D15~D8 8 D~D 70 8 D7~D0

OE U1

WE CS

A16~A0

MRDC MWTC

A17-A1 17 74HC138 ≥1 G V 1CCY0 G2A

G2B Y1 C A19 B Y3 A18 A

A0

BHE D7~D0 OE U2 WE CS A16~A0 D7~D0 OE U3 WE CS A16~A0 D7~D0 OE U4 WE CS A16~A0 D7~D0 OE U5 CS A14~A0 D7~D0 OE U6 CS A14~A0 15 A15-A1 ≥1 ≥1 ≥1 ≥1 ≥1 A17 A16 A17 A16 习题七

1.什么是接口?为什么需要接口?接口有哪些作用?

答:而介于主机和外设之间用于完成某些控制功能、速度匹配、信号转换的一种缓冲电路称为I/O接口电路,简称I/O接口(Interface)。

I/O接口在CPU与外设之间建立一个缓冲区,解决CPU与外设之间在数据形式、数据的传递方式以及传递速率上存在很大差异的矛盾。

接口作用主要包括信号暂存、数据格式转换、传送路径的切换控制和状态信号的交换、通讯控制、设备动作、定时控制、中断管理及错误检测等功能。

2.什么是端口?端口有哪些编址方式?各有什么特点?

答:在接口电路中用于存储信息的寄存器单元被称为I/O端口。 I/O端口编址方式有两种:① 统一编址,② 独立编址。 统一编址方式:对I/O端口和存储单元按照存储单元的编址方法统一编排地址号,由端口地址和存储单元地址共同构成一个统一的地址空间。

优点:无需专门的I/O指令。对存储器的各种寻址方式也同样适用于对I/O端口的访问。缺点:I/O端口占用了一部分存储器地址空间,相对减少了内存的地址可用范围。 独立编址方式:建立两个地址空间,一个为内存地址空间,一个为I/O地址空间。 优点:存储器地址空间不受I/O端口地址空间的影响。 缺点:专用I/O指令增加了指令系统复杂性,且I/O指令类型少,程序设计灵活性较差。

3.CPU外设之间一般有哪些信息传输方式?各有什么特点?

答:传输方式有 ① 无条件传送方式,② 查询传送方式,③ 中断传送方式,④ DMA方式。

无条件传送方式:在工作时,无需考虑外设状态,认为输入设备已随时准备好向CPU提供数据,而输出设备也随时准备好接收CPU送来的数据,在CPU需要同外设交换信息时,使用IN或OUT指令直接对这些外设进行输入/输出操作。

查询传送方式:在执行输入/输出指令前,先查询相应设备的状态,当输入设备处于准备好状态,输出设备处于空闲状态时,CPU才执行输入/输出指令与外设交换信息。在接口电路中既要有数据端口,还要有状态端口。

中断方式:中断传送方式是指当外设需要与CPU进行信息交换时,由外设向CPU发出请求信号,使CPU暂停正在执行的程序,转去执行数据的输入/输出操作,数据传送结束后,CPU再继续执行被暂停的程序。

DMA方式:DMA传送方式是在存储器和外设之间、存储器和存储器之间直接进行数据传送,传送过程无需CPU介入,传输速度基本取决于存储器和外设的速度。

4.简述以中断方式传送一个数据信息的过程。

答:当外设向CPU传送一个数据时,由外设向CPU发出中断请求信号,CPU响应中断请求后,暂停正在执行的程序,进行保护断点和保护现场操作;然后查找中断服务程序的入口地址,从而转到中断服务程序执行,与外设交换数据;数据交换完毕后,CPU恢复现场和断点,继续执行被暂停的程序。

5.I/O端口统一编址与独立编址有什么区别? 答:参考第二题答案。 6.简述中断的概念。

答:在CPU执行程序的过程中,出现了某种紧急或异常的事件(中断请求),CPU需要暂停正在执行的程序,转去处理该事件(执行中断服务程序),并在处理完毕后返回断点处继续执行被暂停的程序,这一过程称为中断。

7.简述中断传送方式的优点与缺点。

答:中断传送方式的优点:CPU不必查询等待,工作效率高,CPU与外设可以并行工作;由于外设具有申请中断的主动权,故系统实时性比查询方式要好得多。

缺点:采用中断传送方式的接口电路相对复杂,而且每进行一次数据传送就要中断一次CPU,CPU每次响应中断后,都要转去执行中断处理程序,且都要进行断点和现场的保护和恢复,浪费了很多CPU的时间。

故这种传送方式一般适合于少量的数据传送。对于大批量数据的输入/输出,可采用高速的直接存储器存取方式,即DMA方式。

习题八

1.什么是中断?中断与过程(子程序)有何区别?

答:中断是指CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。

中断程序需保存现场,要有一定触发条件,具有随机性。而且中断程序和原运行程序没有联系,有时甚至毫不相关。而子程序的调用是包含在另一个程序里,不具有随机性,并且子程序和主程序是有联系的,而且是密不可分的。

2.中断源的识别有哪几种方法? 答:发出中断请求的外部设备或引起中断的内部原因称为中断源。中断源有:外设中断、指令中断、程序中断、硬件故障中断。

识别外部中断源的方法有两种:向量中断和查询中断。 3.中断过程包含哪几个处理过程?

答:包括 ① 中断请求,②中断响应,③ 中断服务,④ 中断返回 四个阶段。 4.什么是中断向量?中断向量表的功能是什么?

答:中断向量指的是:中断服务程序的入口地址。用两个字表示,低位字为中断服务程序所在代码段的段内偏移地址,高位字为中断服务程序所在代码段的段基址。

将所有中断源的中断向量集中存储在内存的指定空间内,这样一个指定的存储区称为中断向量表。每个中断向量对应一个中断类型号,中断向量表表明了中断类型号和中断服务程序的入口地址之间的联系。CPU可以通过通过中断类型号在中断向量表中找到中断服务程序的入口地址。

5.设中断类型号45H对应的中断向量为3488H∶2300H,写出该中断向量装入中断向量表的程序,用图说明程序运行后该中断向量在中断向量表中存放的位置。

答:PUSH DS ;保护DS

MOV DX,2300H ;取服务程序偏移地址

00114H IPL MOV AX,3488H ;取服务程序段地址 00H MOV DS,AX 23H IPH

CSL MOV AH,25H ;送功能号 88H MOV AL,45H ;送中断类型号 34H CSH

INT 21H ;DOS功能调用 POP DS ;恢复DS 6.8086/8088CPU的中断类型号是如何获得?

答:CPU对系统中不同类型的中断源,获取他们的中断类号的方法是不同的。可屏蔽中断的中断类型号由外部中断管理器8259A提供,CPU内部操作中断由CPU提供,指令中断由指令给出。

7.假设8259A的端口地址为50H、51H,试编写程序,将8259A中的IRR、ISR、IMR的内容读出送至存储器中REG_ARR开始的内存单元中。

(选做)

8.8088CPU微机系统最小模式下只有一片8259,其端口地址为01C0H、01C1H,试设计硬件电路,编写初始化程序,要求:

(1)中断请求输入采用电平触发; (2)IR0的中断类型号是10H; (3)采用非缓冲器方式; (4)采用普通的EOI命令。 (选做) 9.8088CPU微机系统最小模式下采用两片8259级连使用,其端口地址分别为300H~301H(主片),200H~201H(从片),从片的INT接入主片的IR4,试画出该系统的硬件电路图。

设主片IR2和从片IR5分别接有外部中断源,主片IR2的中断类型号为52H,从片IR5

的中断类型号为85H,中断源采用边缘触发,非缓冲器方式,非自动结束方式,试初始化该中断系统,并简要说明主片IR2中断服务程序结构。

(选做)


好全_微机原理习题答案(最新整合版).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版小学三年级数学下册典型易错题目汇总及分析

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219