微机原理与接口技术第二版课后习题答案_第1页
微机原理与接口技术第二版课后习题答案_第2页
微机原理与接口技术第二版课后习题答案_第3页
微机原理与接口技术第二版课后习题答案_第4页
微机原理与接口技术第二版课后习题答案_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术(第二版)课后习题答案第 1章作 业 答 案1.1 微处理器、微型 计算机和微型 计算机系 统三者之间有什么不同?解:把CPU运算器和控制器)用大规模集成电路技术做在一个芯片上,即 为微处理器。微 处理器加上一定 数量的存 储器和外部 设备 ( 或外部 设备 的接口)构成了微型 计算机。微型 计算机与管理、维护计算机硬件以及 支持应用的软件相结合就形 成了微型 计算机系统。1.2 CPU在内部结构上由哪几部分组成?CP应该具备哪些主要功能? 解:CP主要由起运算器作用的算术逻辑单元、起控制器作用的指令寄 存器、指令 译码器、可编程逻辑阵列和 标志寄存器等一些寄存器 组成。 其

2、主要功能是 进行算术和逻辑运 算以及控制 计算机按照程序的 规定自动运行。1.3 微型计算机采用 总线结构 有什 么优点? 解:采用 总线结构 , 扩大了数据传送的灵活性、减少了连线。而且 总线 可以标准化, 易于兼容和工 业化生产。1.4 数据总线和地址 总线在结构上有什么不同之处?如果一个系统的数 据和地址合用一套总线或者合用部分 总线, 那么要靠什 么来区分地址和 数据? 解:数据总线是双向的( 数据既可以读也可以 写), 而地址 总线是单向的。8086CPU为了减少芯片的引脚数量,采用数据与地址线复用,既作数据总 线也作为地址总线。它们主要靠信 号的时序来区分。通常在 读写数 据时,

3、总是先 输出地址(指定要读或写数据的单元), 过一段时间再读或写数据。1.8在给定的模型中,写出用累加器的办法实现15X 15的程序。解: LD A , 0LD H ,15LOOP: ADD A ,15DEC HJP NZLOOPHALT第 2 章 作 业 答 案2.1 IA-32 结构微处理器直至 Pentillm4, 有哪几种?解:80386、30486、Pentium 、Pentium Pro 、Peruium II 、PentiumIII 、 Pentium4。2.6 IA-32 结构微处理器有哪几种操作模式 ?解:IA一32结构支持3种操作模式:保护模式、实地址模式和系统管理模 式。

4、操作模式确定 哪些指令和 结构 特性是可以 访问 的。2.8 IA-32 结构微处理器的地址空 间如何形成?解:由段寄存器确定的段基地址 与各种寻 址方式确定的有效地址相加形成了线性地址。若末 启用分页机制,线性地址即 为物理地址;若 启用分 页机制,则它把线性地址 转为物理地址。2.15 8086 微处理器的总线接口部件由 哪几部分组成?解:8086微处理器中的总线接口单元(BIU)负责CPU与存储器之间的信 息传送。具体地说,BIU既负责从内存的指定部分取出指令,送至指令队 列中排队(8086的指令 队列有6个字节, 而8088的指令 队列只有4个字节); 也负责传送执行指令时所需的操作数

5、。执行单元(EU)负责执行指令规定 的操作。2.16段寄存器CS=120OH旨令指针寄存器IP二FFOOH此时,指令的物理 地址为多少?解:指令的物理地址 =12000H+FFOOH=21FOOH第 3 章 作 业 答 案3.1 分别指出下列指令中的源操作 数和目的操作 数的寻址方式。(1) MOV SI, 30O(2) MOV CX, DATADI (3) ADD AX, BXSI(4) AND AX, CX(5) MOV BP, AX(6) PUSHF解:(l) 源操作数为立即寻址,目的操作 数为寄存器寻址。(2) 源操作数为变址寄存器加位移量 寻址, 目的操作数为寄存器寻 址。(3) 源

6、操作 数为基址加变址寻址, 目的操作 数为寄存器寻址。(4) 源操作 数和目的操作 数都为寄存器 寻址。(5) 源操作数为寄存器寻址,目的操作 数为寄存器间接寻址。(6) 为 堆栈 操作。3.2 试述指令 MOV AX,2000和MOV AX,DSz2000H的区别。解:前一条指令是立即寻址,即把立即数2000H传送至寄存器AX后 一条指令是直接寻址,是把数据(DS)段中的地址为2000!单元的内容 传 送至寄存器 AX。3.3 写出以下指令中 内存操作数的所在地址。(1) MOV AL, BX+10(2) MOV BP+10, AX(3) INC BYTE PTRSI 十 5(4) MOV

7、DL, ES:BX+SI(5) MOV BX , BP+DI+2解:(1) 数据段BX+1单元。(2) 堆栈段BP+1单元。(3) 数据段SI+5字节单元。 附加段(ES段)BX+SI单元。(5)堆栈段BP+DI+2单元。3.4 判断下列指令 书写 是否正确(1)MOV AL, BX(2)MOV AL, CL(3)INC BX(4)MOV 5, AL(5)MOV BX, SI(6)M0V BL, OF5H(7)MOV DX, 2000H(8)POP CS(9)PUSH CS解:(1) 不正确,AL与BX数据宽度不同。(2) 正确。(3) 不正确 , 因为不明确是增量字 节还 是字。(4) 不正

8、确, 立即数不能作为目的操作数。(5) 不正确, 因为不明确要传送的是字节还是字(6) 正确。(7) 正确。(8) 不正确,CS不能作为:pop指令的操作数。(9) 不正确,CS不能作为PUS指令的操作数。3.5设堆钱指针SP勺初值为1000H,AX=2000H, BX=3000H试问:(1) 执行指令PUSH A后 SP勺值是多少?(2) 再执行PUSH B及POP AXI,SP、AX和BX的值各是多少?解:(1) SP=OFFEH。(2) SP=OFFEH; AX=3000H, BX=3000H。3.6要想完成把3000H送2000H中,用指令:MOM 200OH, 300OH是否正确 ?

9、如果不正确 , 应该用什 么方法实现 ?解: 不正确。正确的方法是 :MOV AL, 300OHMOV 2000H, AL3.7假如想从200中减去AL中的内容,用SUB 200,AL是否正确?如果不正 确 , 应该用什么方法?解:不正确。正确的方法是:MOV BL, 200SUB BL , AL3.8试用两种方法写出从801端口读入信息的指令。再用 两种方法写出从40H口输出100啲指令。解:(1) IN AL, 80H(2) M0V DX, 80HIN AL, DX(3)MOV, AL, lOOHOUT 40H, AL4)MOV AL, 10OHMOV DX,4OHOUT DX, AL3.

10、9假如:AL=20H,BL=1OH当执行CMP AL,BL后,问:(1) AL、BL中的内容是两个无符号数,比较结果如何?影响哪儿个标志 位?(2) AL、BL中的内容是两个有符号数,结果又如何,影响哪几个标志 位?解:(1) AL=2OH,BL=1OH,O=0,S=0,Z=0,A=0,P=0,C=0。(2) 因为两个都是符号正数,其结果与(I)相同。3.10若要使ALX 10,有哪几种方法,试编写出各自的程序段?解:(1) 使用乘法指令:MOV BL,10MUL BI,(2) 使用移位指令 :SHL AL,1MOV BL, ALSHL AL, 2ADD AL,BL(3) 使用加法指令 :AD

11、D AL, ALMOV BL, ALADD AL, ALADD AL, ALADD AL, BL3.11 8086汇编语言指令的寻址方式有哪几类?哪种寻址方式的指令 执行 速度最快 ?解: 寻址方式分 为: 立即 数寻址方式、寄存器操作 数寻 址方式和存 储 器操作 数寻址方式。其中 ,寄存器操作 数寻址方式的指令 执行速度最快。3.12 在直接寻址方式中,一般只指出操作 数的偏移地址 ,那么,段地址 如何确定?如果要用某 个段寄存器指出段地址 ,指令中应该如何表 示?解:默认的数据访问,操作数在DS段;堆栈操作在SS段;串操作源操作数 (SI)在DS段,目的操作数(DI)在ES段;用BP乍为

12、指针在SS段。如果要显 式地指定段地址, 则在操作 数中规定段寄存器。例如:MOV AX, ES: (BX+10H)3.13 在寄存器间接寻址方式中,如果指令中 没有具体指明段寄存器 ,那 么如何确定段地址 ?解:在寄存器间接寻址方式中,如果指令中 没有具体指明段寄存器 , 段地址是隐含约定的, 也就是隐含地选择段寄存器。如操作 类型为指令,则指 定代码段寄存器CS,如操作类型为堆栈操作,则指定堆找段寄存器SS,如表 3-1中所示。当需要超越约定时, 通常用段替代前 缀加冒号: 来表示段超越 ,它 允许程序 设计者偏离任何 约定的段。例如 :MOV ES:BK, AX这时数据将从寄存器EAX送

13、至附加段中由EBX寻址的存储单元,而不是传送到数据段中。裘3订段寄存器的约定操柞类型约定段寄存器町修改的段寄存器逻辑地址指令.TCS无IP堆栈操作SS,无.SP源串地址DSCS.ES.SSSI口的串地址ES无DJHP用作基止寄存器SSCS.DS,ES有效地址通用数据读写DSCS.ES.SS有效地址3.14采用寄存器间接寻址方式时,BX、BP SI、DI分别针对什么情况来 使用?这4个寄存器组合间接寻址时,地址是怎样计算的?请举例说 明。解:在寄存器间接寻址方式下,BX和BP乍为间址寄存器使用,而SI、DI作为变址寄存器使用。除BP间址默认的段为堆栈段,其他的都默认为数据段。它们都可以单独使用,

14、 或加上偏移量或 组合使用。如:BX +nLBP +nSI +nDI +nBX +SI +nBX +DI +nBP +SI +nBP +DI +n3.15 设DS=2100H,SS=5200H,BX=1400H,BP=6200说朋下面两条指令所进行的具体操作 :MOV BYTE PTRBP,200MOV WORD PTRBX,2000解:前一条指令是把立即数(应是字节)200,传送至堆栈段(BP的默认段偏移量由BP规定的字节单元,地址为:52000H+6200H=58200H 第二条指令是把立即数.2000,传送至数据段(BX的默认段)偏移量 由BX规定的字单元,地址为:21000H+1400

15、H = 22400H。3.16 使用堆钱操作指令 时要注意什么问题?传送指令和交 换指令在涉 及内存操作数时应该 分别要注意什 么问题?解:使用堆 栈指令可以把 内存单元作为一个操作数(从内存到内存)。但堆栈固定在堆栈段且只能由SP指向。且堆栈操作要修改堆 核指针。M0指令不能实现内存单元间的数据传送。XCH指令是交 换, 有一个操作数必须是寄存器。3. 1 7下面这些指令中哪些是正确的 ?哪些是错误的?若是错误的, 请说明 原因。(1) XCHG CS, AX(2) MOV BX, 1000(3) XCHG BX, IP(4) PUSH CS(5) POP CS(6) IN BX, DX(7

16、) MOV BYTEBX, 100O(8) MOV CS, 1000解:(1) 错误,cs不能交换。(2) 错误,MOV指令不能在内存间传送。(3) 错误,IP不能交换。 错误,CS可以作为PUS脂令的操作数。(5) 错误,CS可以作为POP旨令的操作数。(6) 错误,IN指令的目的操作 数是累加器。(7) 错误, 目的操作 数是字节单元。(8 错误,CS不能作为MOV!令的目的操作 数3.18 以下是格雷 码的 编码表,O 00001 00012 00113 00104 01105 01116 01017 01008 1100请用换码指令和其他指令 设计一个程序段,以实现由格雷码向ASCII

17、码 的转换。解:MOV BX,TABLEMOV S,I ASCII_TABMOV A,L 0MOV CX,10TRAN: XLAT TABLEMOV DL,ALADD DL, 30HMOV SI,DLINC ALLOOP TRAN3.19 使用乘法指令 时,特别要注意先判 断是用有符号数乘法指令还是 用无符 号数乘法指令 ,这是为什么?解:因为有符号数和无符号数,其数的乘法是一 样的。但结果的符 号取决于两个操作数的符 号。3.20 字节扩展指令和字 扩展指令一般用在什 么场合?举例说明。解:主要用于字 节相除和字相除之前 , 把被除数扩展为两倍宽度的 操作数。3.21 什么叫BC画?什么叫组

18、合的BCD?什么叫非组合的BCD?8086汇编语言在对BC码进行加、减、乘、除运算时,米用什么方法?解:BCD为十进制编码的二进制数。组合的BC数是把两位BC加在一个字节中,高位的在高4位。非组合的BCD是把一位BCI数放在 一个字节的低4位,高4位为0。8086在BC加、减和乘法运算以后用BCD 调整指令把结果调整为正确的BCD。在BC除法之前先用BC调整指 令再做除法 .3.22用普通运算指令执行BC码运算时,为什么要进行十进制调整?具 体地讲,在进行BC码的加、减、乘、除运算时,程序段的什么位 置必须加上十进制调整指令?解:因为8086指令把操作数作为二进制数进行二进制运算,要得到正 确

19、的BCD吉果,需要进行调整。在加、减、乘法指令之后加上BCD 调整指令,而在除法指令之前先用BC调整指令再用除法指令。第4章作业 答案4.1 在下列程序 运行后, 给相应的寄存器及存 储单元填入运行的结果:MOV AL, 1OHMOV CX, 100OHMOV BX , 2000HMOV CX ,ALXCHG C,X BXMOV DH, BX MOV DL, 01HXCHG CX, BXMOV BX ,DLHLT解:寄存器及存 储单元的 内容如下:AL = 1OHBL = OOHBH = 2OHCL = OOHCH = 1OHDH = 1OH(10O0H) = lOH(200OH) = 0lH

20、2.要求同题4.1, 程序如下 :MOV AL, 50HMOV BP, 100OHMOV BX, 200OHMOV BP, ALMOV DH, 20HMOV BX, DHMOV DL, OlHMOV DL, BXMOV CX, 300OHHLT解:寄存器及存 储单元的内容如下 :AL = 5OHBL = OOHBH = 20HCL = OOHCH = 30HDL = 20HDH = 2OHBP = 100OH(10OOH) = 5OH22(20OOH) = 20H4.3自1000H单元开始有一个100个数的数据块,若要把它传送到自2000HT始的存储区中去, 可以采用以下 3种方法实现,试分别

21、编制程序以 实现数据块的 传送。(1) 不用数据块传送指令(2) 用单个传送的数据块传送指令(3) 用数据块成组传送指令。解:(1) LEA SI, 1OOOHLEA DI, 200OHMOV CX, 100L1: MOV AX, SIMOV DI, AXLOOP LlHLTLEA DI, 2000HMOV CX, 100CLDL1: MOVSBLOOP L1HLT(3) LEA SI, 100OHLEA DI, 200OHMOV CX, 100CLDREP MOVSBHLT4.4 利用变址寄存器,编写一个程序,把自1000H单元开始的100个数传送到自 1070H开始的存 储区中去。解:LE

22、A SI, 100OH24LEA DI, 1070HMOV CX, 100CLDREP MOVSBHLT4.5要求同题4.4,源地址为2050H,目的地址为2000H,数据块长度为50.解:LEA SI, 205OHLEA DI, 200OHMOV CX, 50CLDREP MOVSBHLT4.6编写一个程序,把自1000!单元开始的100个数传送至1050开始的 存储区中(注意: 数据区有重叠)。解:LEA DI , 1050HADD SI, 63HADD DI, 63HMOV CX, 100STDREP MOVSBHLT4.7在自0500H单元开始,存有100个数。要求把它传送到1000卅

23、始的存 储区中,但在传送过程中要检查数的值,遇到第一个零就停止传送。解:LEA SI, 050OHLEA DI, 10OOHMOV CX, 100N1: MOV AL, SICMP AL, 0JZ N2MOV DI, ALINC SIINC DILOOP N1N2: HLT4.14若在0500H单元中有一个数(1) 利用加法指令把它乘2,且送回原存储单元(假定XX 2后仍为一个 字节);(2) X X 4;(3) X X 10(假定XX 10 255).解:(1) LEA BX, 050OHMOV AL, BXADD AL, ALMOV BX, AL(2) LEA BX, 0500HMOV A

24、L, BXADD AL, ALADD AL, ALMOV BX, AL(3) LEA BX, 050OHMOV AL, BXADD AL, ALMOV DL, ALADD AL, ALADD AL, ALADD AL, DLMOV BX, AL第 5 章 作 业答案5.1 总线周期的含义是什么?8086/8088CPU勺基本总线周期由几个时 钟组成?如果一个CPU的时钟频率为8MHz那么,它的一个时钟周期是多 少?一个基本总线周期是多少?如果主频为5MH呢?解:CPLI访问总线(从内存储器或I/O端口读/写字节或字)所需的时 间称为总线周期。8086/8088CPU的基本总线周期由4个时钟组成

25、。若CPU 的时钟频率为8(5)MHz,时钟周期为1/8MHz=125(1/5MHz=2O)ns,基本总 线周期为4X 125(200)n s=500(800)ns5.2在总线周期的TI、T2、T3、T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态Tw? Tw在哪儿插入?怎样插入?解: 下面以存 储器读为例进行说明。在Tl周期:输出地址信号、地址锁存允许信号、内存或I/O端口访问控制 信号;在T2周期:CPIJ开始执行数据传送操作,此时,8086CPU内部的多路开关进行切换,将地址/数据线AD15AD上的地址撤销,切换为数 据总线,为读写数 据作准备。 8288总线控制器发出数据总

26、线允 许信号和数据发送/接收控制信号DT/F允许数据收发器工作, 使数据总线与8086CP啲数据线接通,并控制数据传送的方 向。同样,把地址/状态线A19/S6A16/S3切换成与总线周期有 关的状态信息,指示若干与周期有关的情况。在T3周期:开始的时钟下降沿上,8086CPU采样READ线。如果READ信号 有效(高电平),则在T3状态结束后进人TA状态。在T4状态开始 的时钟下降沿,把数据总线上的数据读入CP或写到地址选中 的单元。在T4状态:结束总线周期。如果访问的是慢速存储器或是外设接口 ,则应 该在Tl状态输出的地址,经过译码选中某个单元或设备后,立 即驱动READ信号到低电平。80

27、86CP在T3状态采样到READ信 号无效,就会插入等待周期Tw,在TW犬态CP继续采样READ信 号;直至其变为有效后再进人T4状态,完成数据传送,结束总 线周期。在T4状态,8086CPU完成数据传送,状态信号s2 S0。变为无操作的过渡状态。在此期间,8086CPU吉束总线周期,恢 复各信号线的初态,准备执行下一个总线周期。第6章 作业答案6.1 若有一单板机,具有用8片2114构成的4KBRAM连线如图创所示若以每1KB RA作为一组,则此4组RAI的基本地址是什 么?地址有没有重叠区?每一组的地址范围为多少?解:RA的基本地址为:图6T单板机与用&片芯片构成4KBRAM的连线图第一组

28、 0000H 03FFH第二组 4000H 43FFH第三组8000H83FFH第四组 COOOHC3FFH地址有重叠区。每一组的地址范围为000H3FFH(102个字节)6.4若要扩充1KB RAM用2114片子),规定地址为8000H83FFH地址线应 该如何连接?解:扩充IKB RA至规定地址8000H 83FFH,其地址线的低10位接芯片, 高6位地址 (Al5 A10 = 100000) 产生组选择信号。第 7 章 作 业 答 案7.1 外部设备为 什么要通过接口电路和主机系 统相连?解: 因为外部设备种类繁多, 输入信息可能是 数字量、模 拟量或开关量,而且输入速度、电平、功率与C

29、P差距很大。所以,通常要通过接口电路与主机系统相连。7.4 CPU和输入输出设备之间传送的信息有哪几类?解:CPI和输入输出设备之间传送的信息主要有3类(l) 数据在微型 计算机中,数据通常 为8位、 16位或32位。(2) 状态 信息 在输入时,有输入设备的信息是否准 备好;在输出时有输出设备是 否有空,若输出设备正在输出信息, 则以忙指示等。(3) 控制信息 例如, 控制 输入输出设备启动 或停止等。7.9设一个接口的输入端口地址 为0100H,状态端口地址为0104H,状态 端口中第5位为1表示输入缓冲区中有一个字节准备好,可以输入。设计 具体程序以 实现查询 式输入。解: 查询输入的程

30、序段 为:POLl : IN AL, 0104HAND AL, 20HJZ POLlIN AL, 0100H第8 章作业答案8.1在中断响应过程中,8086CPL向8259A发出的两个RTS信号分别起什 么作用?解:CPU发出的第一个Inta脉冲告诉外部电路,其提出的中断请求 已被响应,应准备将类型号发给CPU,8259A接到了这个inta脉冲时,把中断的 最高优先级请求置入中断状态寄存器(ISR)中,同时把IRR(中断请求寄存器) 中的相应位复位。CP发出的第二个INTA脉冲告诉外部电路将中断的类型号放在 数据总线上。8.2 8086CPU最多可以有多少 个中断类型?按照产生中断的方法分为哪

31、两 大类?解:8086CP最多可以有256个中断类型。按照产生中断的方法,可以 分为内34部中断(软件中断)和外部(硬件中 断)中断两大类8.9 在编写中断处理子程序时,为什么要在子程序中保 护许多寄存器 ? 解: 因为在用户程序运行时,会在寄存器中有中 间结果, 当在中断服 务程序中要使用这些寄存器前要把 这些寄存器的 内容推至堆 栈保存( 称为保护 现场) 。在从中断服务程序返回至用 户程序时把这些内容从堆找恢 复至寄存器中 (称为恢复现场 )。8.12 若在一个系统中有5个中断源,其优先权排列为:1、2、3、4、5, 它 们的中断服务程序的入口地址分 别为 :3000H、302OH、30

32、50H、3080H、 30AOH编写一个程序,当有中断请求CP响应时,能用查询方式转至申请 中断的优先权最高的源的中 断服务程序。解: 若5个中断源的中断请求放在一中 断状态寄存器中 ,按优先权分别 放在状态的7位(优先权最高)至位3中。查询方法的程序段 为:IN AL, STATUSJNE N1JMP3000HN1:INAL ,STATUSCMPAL ,40HJNEN2JMP3020HN2:INAL ,STATUSCMPAL ,20HJNEN3JMP3050HN3:INAL ,STATUSCMPAL ,10HJNEN4JMP3080HN4:INAL ,STATUSCMPAL ,08HJNEN

33、5JMP 30A0H36N5:RET第 9章 作 业 答 案9.3在某一应用系统中,计数器/定时器8253地址为340H343H定时用 作分频器(N为分频系数),定时器2用作外部事件计数器,如何编制初始 化程序?解:定时器0用作分频器,工作方式 2,其初始化程序 为:MOV AL ,34HOUT 343H, ALMOV AL ,N1OUT 342H, ALMOV AL ,N2OUT 342H, AL定时器2用作外部事件 计数器,工作在方式 0,其初始程序:OUT 343H ,ALMOVAL ,N1OUT342H, ALMOVAL ,N2OUT342H, AL9.4若已有一频率发生器,其频率为1MHZ若要示求通过计数器/定时 器8253,着重产生每秒一次的信 号, 8253应如何连接? 编写出初始 化程序。解:1MHZ 的信号要变

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论