微型计算机原理与接口技术-课后习题答案-中科大出版社-第三版_第1页
微型计算机原理与接口技术-课后习题答案-中科大出版社-第三版_第2页
微型计算机原理与接口技术-课后习题答案-中科大出版社-第三版_第3页
微型计算机原理与接口技术-课后习题答案-中科大出版社-第三版_第4页
微型计算机原理与接口技术-课后习题答案-中科大出版社-第三版_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

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

文档简介

第一章作业习题课杭州电子科技大学自动化学院微机原理与接口技术2024/7/31-微处理器只是一个中央处理器(CPU),由算术逻辑部件(ALU),累加器和通用寄存器组,程序计数器,时序和控制逻辑部件,内部总线等组成。微处理器不能构成独立工作的系统,也不能独立执行程序,必须配上存储器,外部输入、输出接口构成一台微型计算机方能工作。2.微处理器,微型计算机,微型计算机系统有什么联系与区别?2024/7/32-微型计算机由CPU,存储器,输入/输出接口电路和系统总线组成。它已具有计算功能,能独立执行程序,但若没有输入/输出设备,数据及程序不能输入,运算结果无法显示或输出,仍不能正常工作。以微型计算机为主体,配上外部输入/输出设备及系统软件就构成了微型计算机系统。没有配置软件的计算机称为裸机,仍然什么工作也不能做,必须配置系统软件和应用软件,这样才可以正常提供使用。2024/7/33-微处理器是中央处理器(CPU)。它是由算术逻辑部件(ALU),累加器和寄存器组,指令指针寄存器IP,段寄存器,时序和控制逻辑部件,内部总线等组成。3.微处理器有哪些主要部件组成?其功能是什么?2024/7/34-微处理器主要部件作用:算术逻辑部件主要完成算术运算及逻辑运算。通用寄存器组用来存放参加运算的数据、中间结果或地址。程序计数器指向要执行的下一条指令,顺序执行指令时,每取一个指令字节,程序计数器加1。控制逻辑部件负责对整机的控制,包括从存储器中取指令,对指令进行译码和分析,确定指令的操作及操作相应的控制信号和时序,送到微型计算机的其他部件,使CPU内部及外部协调工作。内部总线用来传送CPU内部的数据及控制信号。2024/7/35-第二章作业

习题课6-1.8086CPU由哪两部分组成?它们的主要功能是什么?8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作是并行的。总线接口部件BIU的功能:地址形成、取指令、指令排队、读/写操作数和总线控制。所有与外部的操作由其完成。指令执行部件EU的功能:指令译码,执行指令。2024/7/37-8086CPU的寄存器有通用寄存器组、指针和变址寄存器、段寄存器、指令指针寄存器及标志位寄存器PSW。4个16位通用寄存器,它们分别是AX,BX,CX,DX,用以存放16位数据或地址。也可分为8个8位寄存器来使用,低8位是AL、BL、CL、DL,高8位是AH、BH、CH、DH,只能存放8位数据,不能存放地址。2.8086CPU中有哪些寄存器?各有什么用途?2024/7/38-指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。段寄存器给出相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址结合形成20位物理地址。指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。2024/7/39-⑴比较两数是否相等?将两数相减,当全零标志位ZF=1时,说明两数相等,当ZF=0时,两数不等。⑵两数运算后结果是正数还是负数?用符号标志位SF来判断,SF=1,为负数;SF=0,为正数。5.要完成下述运算或控制,用什么标志位判断?其值是什么?2024/7/310-⑶两数相加后是否溢出?用溢出标志位来判断,OF=1,产生溢出;OF=0,没有溢出。⑷采用偶校验方式。判定是否要补“1”?用奇偶校验标志位判断,有偶数个“1”时,PF=1,不需要补“1”;有奇数个“1”时,PF=0,需要补“1”。2024/7/311-(5)两数相减后比较大小?

ZF=1时,说明两数是相等的;

ZF=0时:无符号数时,CF=0,被减数大;CF=1,被减数小。带符号数时,SF=OF=0或SF=OF=1,被减数大;SF=1,OF=0或SF=0,OF1,被减数小。(6)中断信号能否允许?用中断标志位来判断,IF=1,允许CPU响应可屏蔽中断;IF=0,不响应。2024/7/312-8086存储器采用分体式结构:偶地址存储体和奇地址存储体,各为512k。用A0和BHE来选择存储体。当A0=0时,访问偶地址存储体;当BHE=0时,访问奇地址存储体;当A0=0,BHE=0时,访问两个存储体。6.8086系统中存储器采用什么结构?用什么信号来选中存储体?2024/7/313-9.实模式下,段寄存器装入如下数据,写出每段的起始和结束地址。(未布置!)a)1000H10000H~1FFFFHb)1234H12340H~2233FHc)2300H23000H~32FFFHd)E000HE0000H~EFFFFHe)AB00HAB000H~BAFFFH2024/7/314-10.在实模式下对下列CS:IP的组合,求出要执行的下一条指令的存储器地址。a)CS:IP=1000H:2000H12000Hb)CS:IP=2000H:1000H21000Hc)CS:IP=1A00H:B000H25000Hd)CS:IP=3456H:AB09H3F069H2024/7/315-11.实模式下,求下列寄存器组合所寻址的存储单元地址:a)DS=1000H,DI=2000H12000Hb)SS=2300H,BP=3200H26200Hc)DS=A000H,BX=1000HA1000Hd)SS=2900H,SP=3A00H2CA00H2024/7/316-

12.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值?堆栈段的物理地址范围:35000H~44FFFH当前栈顶的物理地址为:35000H+0800H=35800H入栈10个字节以后:SP=0800H-000AH=07F6H出栈6个字节以后:SP=07F6H+0006H=07FCH2024/7/317-13.某程序数据段中存放了两个字,1EE5H和2A8CH,已知DS=7850H,数据存放的偏移地址为3121H及285AH。试画图说明它们在存储器中的存放情况。若要读取这个两个字,需要对存储器进行几次操作?2024/7/318-它们的物理地址分别是:78500H+3121H=7B621H,78500H+285AH=7AD5AH。1EE5H的偏移地址是3121H,是奇地址,需要进行两次操作;2A8CH的偏移地址是285AH,是偶地址,需要一次操作。2024/7/319-最小模式为单机系统,系统中所需要的控制信号由CPU提供,实现和存储器及I/O接口电路的连接。15.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?2024/7/320-最大模式可以构成多处理器/协处理器系统,即一个系统中存在两个以上微处理器,每个处理器执行自己的程序。系统中所需要的控制信号由总线控制器8288提供,8086CPU提供信号控制8288,以实现全局资源分配及总线控制权传递。在两种模式中,CPU的24~31引脚意义不同。最小模式中引脚MN/MX接+5V,最大模式中该引脚接地。2024/7/321-CPU与存储器(或者I/O端口)进行数据交换时,CPU首先要送出地址信号,然后再发出控制信号及传送数据。由于8086引脚的限制,地址和数据分时复用一组总线,所以要加入地址锁存器,先锁存地址,使在读/写总线周期内地址稳定。16.8086系统中为什么要用地址锁存器?8282地址锁存器与CPU如何连接?2024/7/322-8282是三态缓冲的8位数据交换锁存器,由选通信号STB与CPU的地址锁存允许信号ALE相连,当STB端选通信号出现,8位输入数据锁存到8个D触发器中。中断允许标志位IF控制INTR引脚的中断输入。17.哪个标志位控制CPU的INTR引脚?2024/7/323-总线周期:BIU完成一次访问存储器或I/O端口操作所需要的时间。读总线周期,在T3或TW状态数据出现在数据总线上;写总线周期,在T2状态数据出现在数据总线上。18.什么叫总线周期?在CPU读/写总线周期中,数据在哪个机器状态出现在数据总线上?2024/7/324-20.8086CPU重新启动后,从何处开始执行指令?从内存的FFFF0H开始执行指令。21.8086CPU最小模式系统配置包括哪几部分?包括时钟发生器、地址锁存器、数据收发器、存储器及I/O接口。2024/7/325-

补充题1:已知段地址和偏移地址分别为2015H和0028H,此存储单元的物理地址是什么?存储单元的物理地址:20150H+0028H=20178H

补充题2:若CS=A000H,求当前代码在存储器中的物理地址范围是什么?若数据段位于52000H到61FFFH的64K范围内,问DS=?物理地址范围:A0000H~AFFFFH,DS=5200H。2024/7/326-第三章作业习题课杭州电子科技大学自动化学院微机原理与接口技术2024/7/327-2.DS=1000H,BX=0200H,SI=0002H

(10200H~10205H)依次存有10H,2AH,3CH,46H,59H,6BH(1)MOVAX,0200H;AX=0200(2)MOVAX,[200H]

物理地址=1000H×10H+0200H=10200H, AX=2A10H(3)MOVAX,BX;AX=0200H(4)MOVAX,3[BX]

物理地址=1000H×10H+0200H+3H=10203H,AX=5946H(5)MOVAX,[BX+SI]

物理地址=1000H×10H+0200H+2H=10202H,AX=463CH(6)MOVAX,2[BX+SI]

物理地址=1000H×10H+200H+2H+2H=10204H,AX=6B59H2024/7/328-3.DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,VAL=0030H(1)MOVAX, [100H]直接寻址方式,10100H

物理地址=DS×10H+100H=10000H+0100H=10100H(2)MOVAX, VAL直接寻址方式,10030H

物理地址=DS×10H+VAL=10000H+0030H=10030H

(3)MOVAX, [BX] 寄存器间接寻址,10100H

物理地址=DS×10H+BX=10000H+0100H=10100H(4)MOVAX, ES:[BX]寄存器间接寻址,20100H

物理地址=ES×10H+BX=20000H+0100H=20100H(5)MOVAX, [SI] 寄存器间接寻址,100A0H物理地址=DS×10H+SI=10000H+00A0H=100A0H2024/7/329-(6)MOVAX, [BX+10H]寄存器相对寻址,10110H物理地址=DS×10H+BX+10H=10000H+0100H+10H=10110H(7)MOVAX, [BP] 寄存器间接寻址,35200H物理地址=SS×10H+BP=35000H+0200H=35200H(8)MOVAX, VAL[BP][SI] 相对基址变址寻址,352D0H物理地址=SS×10H+BP+SI+VAL=35000H+0200H+00A0H+0030H=352D0H(9)MOVAX, VAL[BX][DI] 相对基址变址寻址,10154H物理地址=DS×10H+BX+DI+VAL=10000H+0100H+0024H+0030H=10154H(10)MOVAX, [BP][DI] 基址变址寻址,35224H物理地址=SS×10H+BP+DI=35000H+0200H+0024H=35224H2024/7/330-6.(1)MOV DL, AX

错,寄存器寻址方式中,目的操作数与源操作数长度必须一致(2)MOV 8650H, AX

错,目的操作数不可以是立即数(3)MOV DS, 0200H

错,MOV指令不允许将立即数传入段寄存器(4)MOV [BX], [1200H]

错,MOV指令的两个操作数不能同时为存储器(5)MOV IP, 0FFH

错,IP不能作为MOV指令的目的操作数(6)MOV [BX+SI+3], IP

错,IP不能作为MOV指令的源操作数(7)MOV AX, [BX][BP]

错,BX与BP不可以同时出现在源操作数当中(8)MOV AL, ES:[BP]对2024/7/331-(9)MOV DL, [SI][DI]

错,SI与DI是两个变址寄存器,不可以同时出现在源操作数中。(10)MOV AX, OFFSET0A20H

错,OFFSET后面跟的应该是符号地址,再把符号地址的值作为操作数。(11)MOV AL, OFFSETTABLE

错,TABLE的偏移地址是16位,目的与源长度不一致(12)XCHG AL, 50H

错,交换指令可以在寄存器之间,寄存器和存储器之间进行,不可以是立即数。(13)IN BL, 05H

错,BL不能作为IN指令的目的操作数,只能用AL或AX(14)OUT AL, 0FFEH

错,端口地址0FFEH>FFH,应用DX间接寻址,同时源操作数和目标操作数的位置颠倒了,应改为OUTDX,AL。2024/7/332-8.SS=1050H,SP=0100H,AX=4860H,BX=1287H48H60H1050H:00FEHSP(a)执行PUSHAX后1050H:00FCH48H60H12H87HSP(b)执行PUSHBX后1050H:00FEH87H12H60H48HSP(c)执行POPBX后1050H:0100H87H12H60H48HSP(d)执行POPAX后2024/7/333-10. ARRAY DB………… NEW DB7DUP(?)

SUM DW0 AVERAGE DB0

(1) MOV CX, 07H MOV BX, 00HNEXT: MOV AL, ARRAY[BX] ADD AL, 5

DAA MOV NEW[BX],AL INC BX LOOP NEXT HLT2024/7/334-(2) MOV CX, 06H MOV BX, 01H MOV AH, 00H MOV AL, ARRAYL1: ADDAL, ARRAY[BX]

DAA

ADC AH, 00H ;将进位加到AH中

INC BX LOOPL1 MOV SUM, AX2024/7/335-(3)MOV DX, SUM ;DX=0×××H(BCD码) MOV BL, 07H MOV AX, DX ;取千位、百位数

AND AL, 0F0H MOV CL, 04H ROL AL, CL ;AX=0×0×H AAD ;AL←AH×10+AL,AH←00 DIV BL ;十位商在AL中,余数在AH中

MOV AVERAGE+1,AL ;存平均成绩十位

MOV AL, DL ;取个位和数

AND AL, 0FH AAD ;AL←AH×10+AL,AH←00 DIV BL ;个位商在AL中,余数在AH中

MOV AVERAGE, AL ;存平均成绩个位

MOV AVERAGE+2,AH ;存余数2024/7/336-11.AX=2508H,BX=0F36H,CX=0004H,DX=1864H(1)AND AH, CL

AH=04H,CF=0;(00100101B与00000100B)(2)OR BL, 30H

BL=36H,CF=0;(00110110B或00110000B)(3)NOT AX

AX=DAF7H,CF无影响;(0010010100001000B取反后1101101011110111B)(4)XOR CX, 0FFF0H

CX=FFF4H,CF=0;(0000000000000100B和1111111111110000B异或后1111111111110100B)(5)TEST DH, 0FH

TEST操作并不修改结果,CF=0;

2024/7/337-(6)CMP CX, 00H

CMP操作并不修改结果,CF=0;(7)SHR DX, CL

DX=0186H,CF=0;(8)SAR AL, 1

AH=04H,CF=0;(9)SHL BH, CL

BH=F0H,CF=0;(10)SAL AX, 1

AX=4A10H,CF=0;(0010010100001000B

左移)(11)RCL BX, 1

若程序执行之前CF=0,BX=1E6CH,CF=0;若程序执行之前CF=1,BX=1E6DH,CF=0。(12)ROR DX, CL

DX=4186H,CF=0。

2024/7/338-12.DATA SEGMENT STRINGDB‘Thepersonalcomputer&TV’ DATAENDS EDATASEGMENT GET_CHAR DB 26DUP(?) NEW_STR DB ‘Thecomputer’EDATAENDS(1) MOV SI, OFFSETSTRING MOV DI, OFFSETGET_CHAR MOV CX, 001AH CLD REP MOVSB2024/7/339-(2) MOV SI, OFFSETSTRING MOV DI, OFFSETNEW_STR MOVCX, 001AH CLD

REPZ CMPSB ;DS:SI-ES:DI JNE CLR_AL MOV AL, 1 JMPSET_BLCLR_AL: MOV AL, 0SET_BL: MOV BL, 001AH SUB BL, CL HLT2024/7/340-(3) MOV DI, OFFSET STRING MOV CX, 001AH MOV AL, ‘&’ CLDL1: SCASB ;AL-ES:DI JZFINDNEXT: LOOP L1 HLTFIND: MOVBL,‘’

MOV[DI-1], BL ;用空格替换& JMP NEXT2024/7/341-(4) MOV SI, OFFSETSTRING ;数据段,源串

MOV DI, OFFSETCAPS ;附加段,大写字符

MOV BX, OFFSETCHART ;附加段,其它字符

MOV CX, 001AH CLDL1: LODSB ;AL←DS:SI

MOV [SI-1], 00H ;取出字符后该单元清零

CMP AL, ‘A’ JB OTHER CMP AL, ‘Z’ JA OTHER STOSB ;存大写字符

JMP L2

OTHER: XCHG BX, DI ;存其它字符

STOSB XCHGBX, DIL2: LOOP L1 HLT2024/7/342-14.(1)JMP PROG_N

段内直接近转移,目的地址为1200H:0278H(或12278H)

(2)JMP BX

段内寄存器间接转移,目的地址为1200H:0300H(或12300H)

(3)JMP [BX]

物理地址=DS×10H+BX=2000H×10H+0300H=20300H(20300H)=4800H

IP

段内存储器间接转移,目的地址为1200H:4800H(或16800H)

(4)JMP FAR PROG_F

段间立接转移,目的地址为3400H:0ABCH(或34ABCH)

(5)JMP DWORD PTR[BX]

物理地址=DS×10H+BX=2000H×10H+0300H=20300H(20300H)=4800HIP, (20302H)=00FFH

CS

段间存储器间接转移,目的地址为00FFH:4800H(或057F0H)2024/7/343-JMP改为CALL后,目的地址与JMP相同。(1)CALL PROG_N

段内直接调用,3字节指令,0103H入栈(2)CALL BX

段内寄存器间接调用,2字节指令,0102H入栈(3)CALL [BX]

段内存储器间接调用,2字节指令,0102H入栈(4)CALL FAR PROG_F

段间直接调用,5字节指令,1200H和0105H分别入栈(5)CALL DWORD PTR[BX]

段间间接调用,2字节指令,1200H和0102H分别入栈2024/7/344-15.(1)LOOP NEXT

(2)LOOPE NEXT

(3)LOOPNE NEXTSTART: MOV AX, 01H MOV BX, 02H MOV DX, 03H MOV CX, 04HNEXT: INC AX ADD BX, AX SHR DX, 1 ( )

程序运行前DX=00000011B

(1)AX=05HBX=10HCX=00HDX=00H

(2)AX=02HBX=04HCX=03HDX=01H

(3)AX=03HBX=07HCX=02HDX=00H2024/7/345-18.(1)中断类型号为0040H/4=10H(2)中断服务程序的段地址为D169H,偏移地址为240BH,即D169H:240BH,物理地址为D169H×10H+240BH=D3A9BH0BH24H69HD1H0000H:0040H0000H:0042H中断向量表2024/7/346-第四章作业习题课杭州电子科技大学自动化学院微机原理与接口技术2024/7/347-1.下列变量各占多少字节?

A1 DW 23H,5876H A2 DB 3DUP(?),0AH,0DH,‘$’ A3 DD 5DUP(1234H,567890H) A4 DB 4DUP(3DUP(1,2,‘ABC’))解:A1变量占4个字节;

A2变量占6个字节;

A3变量占5×8=40个字节;

A4变量占4×3×5=60个字节;2024/7/348-3.有符号定义语句如下:

BUF DB 3,4,5,‘123’ ABUF DB 0 L EQU ABUF-BUF求L的值为多少?解:BUF共定义了6个字节,则ABUF的地址为ABUF+6,因此L的值为6。2024/7/349-19.应考虑数组中可能出现多个0的情况程序如下:

EDATA SEGMENT ;定义数据段

BUFF DB N,XXH,…… M EQU 0 EDATA ENDS ; STACK SEGMENT STACK;定义堆栈段

DW 50HDUP(?) TOP LABEL WORD STACK ENDS ;2024/7/350-CODE SEGMENT ;定义代码段

ASSUMECS:CODE,ES:EDATA,DS:EDATA,SS:STACKMAIN PROC FARSTART: MOV AX, STACK ;初始化堆栈段

MOV SS, AX MOV SP, OFFSETTOP

PUSH DS ;程序段前缀

MOV AX, 0 PUSH AX

MOV AX, EDATA ;初始化ES,DS MOV ES, AX MOV DS, AX

2024/7/351- MOV AL, M ;关键字M存入AX MOV DI, OFFSETBUFF MOV CX, [DI] ;数组长度存入CX INC DI ;指向数组起始地址

CLD ;清方向标志

L1: REPNE SCASB ;重复搜索关键字

JNZ STOP ;未找到,转STOP结束

JCXZ STOP ;最后一个数是M,转STOP

PUSH DI ;关键字下一单元地址和循

PUSH CX

;环次数入栈保护

2024/7/352-DEL: MOV BL, [DI] ;前移,末尾补0 MOV [DI-1], BL INC DI LOOP DEL MOV [DI], 0

POP CX ;恢复CX,DI POP DI DEC DI;由于REPNESCASB已自动加1 JMP L1STOP: RETMAIN ENDPCODE ENDS END START 2024/7/353-22.设学生人数为字节,成绩为压缩BCD码,且都是合法的。程序如下:EDATASEGMENT ;定义数据段

BUFF DB XXH, …… ANUM EQU $-BUFF SNUMDB 5DUP(0) ;存放各类成绩统计结果

BUFF1DB ANUMDUP(0) ;存放60分以下成绩

BUFF2DB ANUMDUP(0) ;存放60~69分成绩

BUFF3DB ANUMDUP(0) ;存放70~79分成绩

BUFF4DB ANUMDUP(0) ;存放80~89分成绩

BUFF5DB ANUMDUP(0) ;存放90分以上成绩EDATAENDS2024/7/354-STACKSEGMENT STACK ;定义堆栈段

DW 50HDUP(?) TOP LABEL WORDSTACKENDSCODE SEGMENT ;定义代码段

ASSUMECS:CODE,ES:EDATA,DS:EDATA,SS:STACKMAIN PROC FARSTART: MOV AX, STACK ;初始化堆栈段

MOV SS, AX MOV SP, OFFSETTOP

PUSH DS ;程序段前缀

MOV AX, 0 PUSH AX2024/7/355-

MOV AX, EDATA ;初始化ES,DS MOV ES, AX MOV DS, AX MOV CL, ANUM ;取学生人数

MOV CH, 0 MOV BH, 0MOV SI, OFFSETBUFF ;成绩偏移地址

SI MOV DI, OFFSETSNUM;统计结果偏移地址

DIL1: MOV AL, [SI] ;取成绩

AL CMP AL, 60H ;与60分比较

JAE NEXT1 ;高于等于60分,转NEXT12024/7/356-

MOV BL, [DI] ;低于60分存入相应区域

MOV BUFF1[BX], AL INC BYTEPTR[DI] ;60分计数单元加1 JMP NEXT5 ;转NEXT5NEXT1:CMP AL, 69H ;与69分比较

JA NEXT2

MOV BL, [DI+1] ;60~69分存入相应区域

MOV BUFF2[BX], AL INC BYTEPTR[DI+1] ;60~69分计数单元加1 JMP NEXT52024/7/357-NEXT2: CMP AL, 79H JA NEXT3

MOV BL, [DI+2] MOV BUFF2[BX], AL INC BYTEPTR[DI+2] JMP NEXT5NEXT3: CPM AL, 89H JA NEXT4

MOV BL, [DI+3] MOV BUFF3[BX], AL INC BYTEPTR[DI+3] JMP NEXT52024/7/358-NEXT4: MOV BL, [DI+4] MOV BUFF4[BX], AL

INC BYTEPTR[DI+4]

NEXT5: INC SI ;地址指针加1 LOOP L1 ;未判断完转L1 RETMAIN ENDPCODE ENDSEND START2024/7/359-第五章作业习题课杭州电子科技大学自动化学院微机原理与接口技术2024/7/360-P2371.答:静态RAM速度非常快,只要电源存在内容就不会自动消失。它的基本存储电路为6个MOS管组成1位,因此集成度相对较低,功耗也较大。一般,高速缓冲存储器用它组成。

DRAM的内容在10-3或10-6秒之后自动消失,因此必须周期性的在内容消失之前进行刷新。由于它的基本存储电路由一个晶体管及一个电容组成,因此它的集成度高,成本较低,另外耗电也少,但它需要一个额外的刷新电路。DRAM运行速度较慢,SRAM比DRAM要快2~5倍,一般,PC机的标准存储器都采用DRAM组成。

2024/7/361-P2372.答:掩膜型ROM中信息是厂家根据用户给定的程序或数据,对芯片图形掩膜进行两次光刻而写入的,用户对这类芯片无法进行任何修改。

PROM出厂时,里面没有信息,用户采用一些设备可以将内容写入PROM,一旦写入,就不能再改变了,即只允许编程一次。

EPROM可编程固化程序,且在程序固化后可通过紫外光照擦除,以便重新固化新数据。

EEPROM可编程固化程序,并可利用电压来擦除芯片内容,以重新编程固化新数据。2024/7/362-7.答:由于所用的芯片为1024×1位,构成1024×8位(即1K×8位)的存储器需要8片,因此组成16K×8位的存储器需要16×8=128片。片内有1024个单元,需要10根地址线。

16组(每组8片)存储器需要16根片选信号,至少需要4根地址线经译码器输出。示意图如下页。

2024/7/363-D7D6D5D4D3D2D1D0CSCSCSCSCSCSCSCSY0Y1Y15CSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCS…...2024/7/364-13.图如下CED7~D0D15~D8A12~A0OECEA13~A1RD1#2764CED7~D0D15~D8A12~A0OECEA13~A1RD2#2764CE2D7~D0D15~D8A12~A0WECE1A13~A1WR3#6264CE2D7~D0D15~D8A12~A0WECE1A13~A1WR4#6264CE2CE2A0Y0Y1Y2Y3BHEM/IOA19A18A17A16A15A14BACG2BG2AG1BHEY2Y3A0A02024/7/365-13.

CBAA19A18A17A16A15A14

A13~A000000Y0有效80000~83FFFH100001Y1有效84000~87FFFH100010Y2有效88000~8BFFFH100011Y3有效8C000~8FFFFH2024/7/366-第六章作业习题课杭州电子科技大学自动化学院微机原理与接口技术2024/7/367-P2621.答:CPU和外设之间的信息交换存在以下一些问题:速度不匹配;信号电平不匹配;信号格式不匹配;时序不匹配。

I/O接口电路是专门为解决CPU与外设之间的不匹配、不能协调工作而设置的,处于总线和外设之间,一般应具有以下基本功能:⑴设置数据缓冲以解决两者速度差异所带来的不协调问题;⑵设置信号电平转换电路,如可采用MC1488、MC1489、MAX232、MZX233芯片来实现电平转换。⑶设置信息转换逻辑,如模拟量必须经A/D变换成数字量后,才能送到计算机去处理,而计算机送出的数字信号也必须经D/A变成模拟信号后,才能驱动某些外设工作。⑷设置时序控制电路;⑸提供地址译码电路。2024/7/368-3.答:CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。在接口电路中,这些信息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口,CPU可对端口中的信息直接进行读写。在一般的接口电路中都要设置以下几种端口:

⑴数据端口:用来存放外设送往CPU的数据以及CPU要输出到外设去的数据。数据端口主要起数据缓冲的作用。

⑵状态端口:主要用来指示外设的当前状态。每种状态用1位表示,每个外设可以有几个状态位,它们可由CPU读取,以测试或检查外设的状态,决定程序的流程。

⑶命令端口:也称为控制端口,它用来存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作。2024/7/369-I/O端口的编址方式有两种:分别称为存储器映象寻址方式和I/O指令寻址方式。

存储器映象寻址方式:把系统中的每个I/O端口都看作一个存储单元,并与存储单元一样统一编址,这样访问存储器的所有指令均可用来访问I/O端口,不用设置专门的I/O指令。

I/O指令寻址方式:对系统中的输入输出端口地址单独编址,构成一个I/O空间,它们不占用存储空间,而是用专门的IN指令和OUT指令来访问这种具有独立地址空间的端口。

8086/8088CPU采用I/O指令寻址方式,用地址总线的低16位(A15~A0)来寻址I/O端口,最多可以访问216=65536个输入或输出端口。2024/7/370-4.答:CPU与外设之间的数据传输数据采用程序控制方式、中断方式、DMA方式等三种。

程序控制传送方式:CPU与外设之间的数据传送是在程序控制下完成的。⑴无条件传送方式:也称为同步传送方式,主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。⑵条件传送:也称为查询式传送方式,在开始传送前,必须先查询外设已处于准备传送数据的状态,才能进行传送。

采用中断方式:CPU平时可以执行主程序,只有当输入设备将数据准备好了,或者输出端口的数据缓冲器已空时,才向CPU发中断请求。CPU响应中断后,暂停执行当前的程序,2024/7/371-转去执行管理外设的中断服务程序。在中断服务程序中,用输入或输出指令在CPU和外设之间进行一次数据交换。等输入或输出操作完成之后,CPU又回去执行原来的程序。

DMA方式:也要利用系统的数据总线、地址总线和控制总线来传送数据。原先,这些总线是由CPU管理的,但当外设需要利用DMA方式进行数据传送时,接口电路可以向CPU提出请求,要求CPU让出对总线的控制权,用DMA控制器来取代CPU,临时接管总线,控制外设和存储器之间直接进行高速的数据传送。这种控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号。在DMA传送结束后,它能释放总线,把对总线的控制权又交还给CPU。2024/7/372-7.Y0Y2Y3Y4Y5Y6Y7Y1G1G2AG2BABCA12A15A13A5A4A3A14M/IO74LS1389000~9007H9008~900FH9010~9017H9018~901FH9020~9027H9028~902FH9030~9037H9038~903FH

CBAA15A14A13A12A11~A6A5A4A3

A2~A010010000002024/7/373-8.答:将用于各部件之间传送信息的公共通路称为总线。根据总线中信息传送的类型可分为地址总线、数据总线和控制总线,此外还有电源线和地线若按总线的规模、用途和应用场合,则可以分成:

片级总线也叫做元件级总线,是由芯片内部通过引脚引出的总线,用于芯片一级的互连线。它实现CPU主板或其它插件板上的各种芯片间的互连。

系统总线也叫内总线或板级总线,它用于微型计算机中各插件板之间的连线,也就是通常所说的微机总线。

外部总线也称为通信总线,它用于微型计算机系统之间,或微型计算机系统与其它电子仪器或设备之间的通信。2024/7/374-

对于制造厂家来说,只要按总线接口规范设计CPU主板、I/O接口板或存储器插件板,然后将插件板插入主机的总线扩展槽中,就可构成系统,很适合于大批量生产、组装和调试,也便于更新和扩充系统。

对于用户来说,可根据自身需要,灵活地选购接口板或存储器插件,来组装成适合自己的应用需要的系统或更新原有系统。2024/7/375-第七章作业习题课杭州电子科技大学自动化学院微机原理与接口技术2024/7/376-P3021.【答】:当CPU正常运行程序时,由于微处理器内部事件或外设请求,引起CPU中断正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务子程序,中断服务程序执行完毕,再返回被中止的程序,这一过程称为中断。

可屏蔽中断由引脚INTR引入,采用电平触发,高电平有效,INTR信号的高电平必须维持到CPU响应中断才结束。可以通过软件设置来屏蔽外部中断,即使外部设备有中断请求,CPU可以不予响应。当外设有中断申请时,在当前指令执行完后,CPU首先查询IF位,若IF=0,CPU就禁止响应任何外设中断;若IF=1,CPU就允许响应外设的中断请求。

不可屏蔽中断由引脚NMI引入,边沿触发,上升沿之后维持两个时钟周期高电平有效。不能用软件来屏蔽的,一旦有不可屏蔽中断请求,如电源掉电等紧急情况,CPU必须予以响应。2024/7/377-4.【答】:CPU响应中断要有三个条件:外设提出中断申请;本中断位未被屏蔽;中断允许。可屏蔽中断处理的过程一般分成几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。

CPU在响应外部中断,并转入相应中断服务子程序的过程中,要依次做以下工作:⑴从数据总线上读取中断类型号,将其存入内部暂存器。⑵将标志寄存器PSW的值入钱。⑶将PSW中的中断允许标志IF和单步标志TF清0,以屏蔽外部其它中断请求,避免CPU以单步方式执行中断处理子程字。⑷保护断点,将当前指令下面一条指令的段地址CS和指令指针IP的值入栈,中断处理完毕后,能正确返回到主程序继续执行。⑸根据中断类型号到中断向量表中找到中断向量,转入相应中断服务子程序。⑹中断处理程序结束以后,从堆栈中依次弹出IP、CS和PSW,然后返回主程序断点处,继续执行原来的程序。2024/7/378-5.【答】:由于响应中断时CPU自动关闭中断(IF=0),故在中断服务子程序中STI指令后方可实现中断嵌套。一般在中断服务子程序中保护现场后即设置开中断指令STI(IF=1),以便实现中断嵌套。

6.【答】:中断结束命令EOI后,清除中断服务寄存器中的标志位,即允许响应同级或低级中断,为避免错误,一般将中断结束命令EOI置于中断服务子程序结束前。

7.【答】:中断向量表又称中断服务程序入口地址表。将每个设备的中断服务程序入口地址(矢量地址)集中,依次放在中断向量表中。当CPU响应中断后,控制逻辑根据外设提供的中断类型号查找中断向量表,然后将中断服务程序的入口地址送到段寄存器和指令指针寄存器,CPU转入中断服务子程序。这样大大加快中断处理的速度。8086/8088系统允许处理256种类型的中断,对应类型号为0~FFH。在存储器的00000H~003FFH,占1K字节空间,用作存放中断向量。每个类型号占4个字节,高2个字节存放中断入口地址的段地址,低2个字节存放段内偏移地址。2024/7/379-10.00024H00026H10H00H00H60H......中断向量表02H40H08H00H00HA2HSP=00FAHSP=0100HIPCSPSW...堆栈指令INT9为双字节指令,因此下一条指令的地址为0800H:00A2H;9×4=36(24H),中断向量表地址00024H中取得0060HIP,00026H中取得1000HCS,即执行指令INT9后,CS=1000H,IP=0060H。2024/7/380-10.标志寄存器PSW执行INT9前执行INT9后CFXPFXAFXZFSFTFIFDFOFXXXX00000010010000000000001000000000PSW=0040H2024/7/381-14.……10H00H32H50H10H00H61H00H10H00H50H20H50H×4=00140H52H×4=00148H54H×4=00150HIR0

类型号50HIR2

类型号52HIR4

类型号54H中断向量表2024/7/382-(1)中断向量表形成

MOV AX,1000H MOV DS,AX ;DS中为段地址

MOV DX,5020H ;DX中为偏移地址

MOV AL,50H ;中断类型号为50H MOV AH,25H INT 21H ;设置类型号50H的中断向量

MOV DX,6100H MOV AL,52H INT 21H ;设置类型号52H的中断向量

MOV DX,3250H MOV AL,54H INT 21H ;设置类型号54H的中断向量2024/7/383-(2)8259A初始化编程:设8259A的端口地址为FFC8H和FFC9H MOV AL,00010011B(13H);定义ICW1,单独使用,边沿触发

MOV DX,0FFC8H OUT DX,AL ;发ICW1命令

MOV AL,50H

;IR0的中断类型号为50H MOV DX,0FFC9H OUT DX,AL ;发ICW2命令

MOV AL,00000001B

;定义ICW4,完全嵌套,非缓冲

OUT DX,AL MOV AL,11101010B(0EAH);定义OCW1,允许IR0、IR2、 OUT DX,AL ;IR4中断,其余中断请求屏蔽

2024/7/384-(3)中断服务子程序

PUSH AX ;保护现场

…… STI ;开中断

…… ;中断处理

CLI ;关中断

MOV AL,20H ;定义OCW2,普通EOI结束命令

MOV DX,0FFC8H OUT DX,AL …… POP AX ;恢复现场

IRET ;中断返回2024/7/385-20H00H38H00H20H00H28H00H20H00H18H00H……83H×4=0020CH94H×4=00250HA4H×4=00290H主片IR3,类型号为83H1#从片IR4,类型号为94H2#从片IR4,类型号为A4H中断向量表16.2024/7/386-SP/ENCAS0CAS1CAS2CAS0CAS1CAS2CAS0CAS1CAS2CSA0D7~D0INTARDWRINTA1D7~D0INTARDWRINTRGNDGNDSP/ENSP/ENIR4IR5IR3IR2IR4INTINT2#从8259A1#从8259A主8259AVCC硬件连接图2024/7/387-(1)中断向量表形成

MOV AX,2000H MOV DS,AX ;DS中为段地址

MOV DX,1800H ;DX中为偏移地址

MOV AL,83H

;中断类型号为83H MOV AH,25H INT 21H ;设置类型号83H的中断向量

MOV DX,2800H MOV AL,94H INT 21H ;设置类型号94H的中断向量

MOV DX,3800H MOV AL,0A4H INT 21H ;设置类型号A4H的中断向量2024/7/388-(2)主片8259A初始化编程:端口地址为CCF8H和CCFAH MOV AL,00011001B(19H);定义ICW1,主片级联,电平触发

MOV DX,0CCF8H OUT DX,AL ;发ICW1命令

MOV AL,80H

;IR0的中断类型号为80H MOV DX,0CCFAH OUT DX,AL ;发ICW2命令

MOV AL,00100100B(24H);定义ICW3,IR2和IR5接从片

OUT DX,AL MOV AL,00000001B(01H);定义ICW4,完全嵌套,非缓冲

OUT DX,AL ;非自动EOI结束方式

MOV AL,11010011B(0D3H);定义OCW1,允许IR2、IR3 OUT DX,AL ;IR5中断,其余中断请求屏蔽2024/7/389-(3)1#从片8259A初始化编程:端口地址为FFE8H和FFEAH MOV AL,00011001B(19H);定义ICW1,片从级联,电平触发

MOV DX,0FFE8H OUT DX,AL ;发ICW1命令

MOV AL,90H

;IR0的中断类型号为90H MOV DX,0FFEAH OUT DX,AL ;发ICW2命令

MOV AL,00000010B(02H);定义ICW3,1#从片接主片的IR2 OUT DX,AL MOV AL,00000001B(01H);定义ICW4,完全嵌套,非缓冲 OUT DX,AL ;非自动EOI结束方式

MOV AL,11101111B(0EFH);定义OCW1,允许IR4中断,

OUT DX,AL ;其余中断请求屏蔽2024/7/390-(4)2#从片8259A初始化编程:端口地址为FFECH和FFEEH MOV AL,00011001B(19H);定义ICW1,片从级联,电平触发

MOV DX,0FFECH OUT DX,AL ;发ICW1命令

MOV AL,0A0H

;IR0的中断类型号为A0H MOV DX,0FFEEH OUT DX,AL ;发ICW2命令

MOV AL,00000101B(05H);定义ICW3,2#从片接主片的IR5 OUT DX,AL MOV AL,00000001B(01H);定义ICW4,完全嵌套,非缓冲 OUT DX,AL ;非自动EOI结束方式

MOV AL,11101111B(0EFH);定义OCW1,允许IR4中断,

OUT DX,AL ;其余中断请求屏蔽2024/7/391-第八章作业习题课杭州电子科技大学自动化学院微机原理与接口技术2024/7/392-P3241.【答】:8253内部包含3个完全相同的计数器/定时器通道,即0~2计数通道,对3个通道的操作完全是独立的。8253的每个通道都有6种不同的工作方式。

方式0——计数结束中断方式:当对8253的任一个通道写入控制字,并选定工作于方式0时,该通道的输出端OUT立即变为低电平。要使8253能够进行计数,门控信号GATE必须为高电平。经过n十1个脉冲后,计数器减为0,这时OUT引脚由低电平变成高电平。OUT引脚上的高电平信号,一直保持到对该计数器装入新的计数值,或设置新的工作方式为止。在计数的过程中,如果GATE变为低电平,则暂停减1计数,计数器保持GATE有效时的值不变,OUT仍为低电平。待GATE回到高电平后,又继续往下计数。

方式1——可编程单稳态输出方式:当CPU用控制字设定某计数器工作于方式1时,该计数器的输出OUT立即变为高电平。GATE出现一个上升沿后,在下一个时钟脉冲的下降沿,将n装入计数器的执行部件,同时,输出端OUT由高电平向低电平跳变。当计数器的值减为零时,输出端OUT产生由低2024/7/393-到高的正跳变,在OUT引脚上得到一个n个时钟宽度的负单脉冲。在计数过程中,若GATE产生负跳变,不会影响计数过程的进行。但若在计数器回零前,GATE又产生从低到高的正跳变,则8253又将初值n装入计数器执行部件,重新开始计数,其结果会使输出的单脉冲宽度加宽。

方式2——比率发生器:当对某一计数通道写入控制字,选定工作方式2时,OUT端输出高电平。如果GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件,此后,计数器随着时钟脉冲的输入而递减计数。当计数值减为1时,OUT端由高电乎变为低电平,待计数器的值减为0时,OUT引脚又回到高电平,即低电平的持续时间等于一个输入时钟周期。与此同时,还将计数初值重新装入计数器,开始一个新的计数过程,并由此循环计数。如果装入计数器的初值为n,那么在OUT引脚上,每隔n个时钟脉冲就产生一个负脉冲,其宽度与时钟脉冲的周期相同,频率为输入时钟脉冲频率的n分之一。在操作过程中,任何时候都可由CPU重新写入新的计数值,不影响当前计数过程的进行。当计数值减为0时,一个计数周期结束,2024/7/394-8253将按新写入的计数值进行计数。在计数过程中,当GATE变为低电平时,使OUT变为高电平,禁止计数;当GATE从低电平变为高电平,GATE端产生上升沿,则在下一个时钟脉冲时,把预置的计数初值装入计数器,从初值开始递减计数,并循环进行。方式3——方波发生器:方式3和方式2的工作相类似,但从输出端得到的是对称的方波或基本对称的矩形波。如果写入计数器的初值为偶数,则当8253进行计数时,每输入一个时钟脉冲,均使计数值减2。计数值减为0时,OUT输出引脚由高电平变成低电平,同时自动重新装入计数初值,继续进行计数。当计数值减为0时,OUT引脚又回到高电平,同时再一次将计数初值装入计数器,开始下一轮循环计数;如果写入计数器的初值为奇数,则当输出端OUT为高电平时,第一个时钟脉冲使计数器减1,以后每来一个时钟脉冲,都使计数器减2,当计数值减为0时,输出端OUT由高电平变为低电平,同时自动重新装入计数初值继续进行计数。这时第一个时钟脉冲使计数器减3,以后每个时钟脉冲都使计数器减2,计数值减为0时,OUT端又回到高电平,并重新装入计数初值后,开始下一轮循环计数。2024/7/395-

方式4——软件触发选通:当对8253写入控制宇,进入工作方式4后,OUT端输出变为高电平,如果GATE为高电平,那么,写入计数初值后,在下一个时钟脉冲后沿将自动把计数初值装入执行部件,并开始计数。当计数值成为0时,OUT端输出变低,经过一个时钟周期后,又回到高电平,形成一个负脉冲。若在计数过程中写入一个新的计数值,则在现行计数周期内不受影响,但当计数值回0后,将按新的计数初值进行计数,同样也只计一次。如果在计数的过程中GATE变为低电平,则停止计数,当GATE变为高电平后,又重新将初值装入计数器,从初值开始计数,直至计数器的值减为0时,从OUT端输出一个负脉冲。

方式5——硬件触发选通:编程进入工作方式5后,OUT端输出高电平。当装入计数值n后,GATE引脚上输入一个从低到高的正跳变信号时,才能在下一个时钟脉冲后沿把计数初值装入执行部件,并开始减1计数。当计数器的值减为0时,输出端OUT产生一个宽度为一个时钟周期的负脉冲,然后OUT又回到高电平。计数器回0后,8253又自动将计数值n装入执行部件,但并不2024/7/396-开始计数,要等到GATE端输入正跳变后,才又开始减1计数。计数器在计数过程中,不受门控信号GATE电平的影响,但只要计数器未回0,GATE的上升沿却能多次触发计数器,使它重新从计数初值n开始计数,直到计数值减为0时,才输出一个负脉冲。如果在计数过程中写入新的计数值,但没有触发脉冲,则计数过程不受影响。当计数器的值减为0后,GATE端又输入正跳变触发脉冲时,将按新写入的初值进行计数。2024/7/397-4.【答】0通道工作在方式3,n0=2MHz/1.5KHz=13341通道工作在方式2,n1=1.5KHz/300Hz=52通道工作在方式0,当CLK2=2MHz时,n2=2MHz/50Hz-1=39999;

当CLK2=OUT0=1.5KHz时,n2=1.5KHz/50Hz-1=29;

温馨提示

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

评论

0/150

提交评论