微机原理期末考试复习课案
- 格式:doc
- 大小:115.50 KB
- 文档页数:10
一、回答问题问题1:8086的存储器为什么要进行分段?答:8086的地址总线AB有20根地址线,意味着存储器每个存储单元的地址由20位二进制数构成。
而8086内部用来存放地址信息的寄存器只有16位,出现了矛盾,为解决这个问题,8086采取了存储器分段的方式。
由于16位二进制地址可寻址范围是而1MB的存储空间可以在逻辑上分为16个段每段大小是64KB,因此可以用段地址(也称为段基址)给每个段问题2是指令中引用的形式地址。
物理地址,而一个物理地址可以对应多个逻辑地址。
段地址位,即存储单元所在逻辑段的编号,通常存放在对应的段寄存器中,偏移地址为16位,存储单元在逻辑段内相对于该段第一个存储单元的距离。
20偏移地址取指令操作CS堆栈操作SS×数据存储器操作问题3:请说明段寄存器与提供偏移地址寄存器的对应关系。
答:CS(或DI)对应数据段,(或BP问题4:答:8086系统时。
由MN/MX的电平高低进行工作模式的设置。
(+5V最小、接地最大)问题5:从功能上看,CPU可以分为哪两部分?各负责什么工作?有什么优点?答:从功能上看8086CPU可分为两部分:1)总线接口部件BIU——负责指令和操作数读及结果写。
2)执行部件EU——负责指令的执行。
两个部件独立地进行操作,即并行工作,使得取指令、分析指令和执行指令可以并行操作,提高了CPU的工作效率,加快了指令的执行速度。
问题6:微型计算机由哪几部分组成?简述各部分功能。
答:微型计算机系统主要由微处理器(CPU)、存储器、I/O接口和总线组成。
其中微处理器为微型计算机的核心,主要完成取指令、指令译码、简单的算术逻辑运算及程序控制等;存储器主要用来存储程序和数据;I/O接口用于外设与CPU之间的信息协调;总线是CPU与存储器和I/O接口之间传送数据信息、地址信息和控制信息的通道。
问题7:什么是指令?什么是指令系统?请说明指令系统在微机系统中重要性。
答:指令就是计算机执行某种操作的命令,指令系统是该计算机所以指令的集合,它是综合反映计算机性能的重要因素,不仅直接影响机器的硬件结构,而且影响机器的系统软件及机器的适用范围。
微计算机组成的五个部分:运算器,控制器,存储器,输入设备,输入设备。
微计算机的工作原理:第一步:由输入设备将事先编好的程序和原始数据输入到存储器指定的单元存放起来。
并在存储器中或出存放中间结果和最终结果的单元。
第二步:启动计算机从第一条指令开始执行程序。
第三步:将最终结果直接由运算器或存储器经输出设备输出。
第四步:停机。
8086微处理器的内部结构:从功能上讲,由两个独立逻辑单元组成,即执行单元EU和总线接口单元BIU。
1、执行单元EU包括:4个通用寄存器(AX,BX,CX,DX,每个都是16位,又可拆位2个8位)4个从专用寄存器(BP,SP,SI,DI)标志寄存器FLAG(6个状态标志和3个控制标志)算术逻辑单元ALUEU功能:从BIU取指令并执行指令;计算偏移量。
2、总线接口单元BIU包括:4个16位段寄存器(CS,DS,ES,SS)16位指令指针寄存器IP20位地址加法器6字节(8088位4字节)的指令队列BIU功能:形成20位物理地址;从存储器中取指令和数据并暂存到指令队列寄存器中。
3、执行部件EU和总线接口部件BIU的总体功能:提高了CUP的执行速度;降低对存储器的存取速度的要求。
8086/8088CPU内部寄存器:设置段寄存器原因:8086/8088系统中,需要用20位物理地址访问1MB的存储空间,但是8086/8088CPU的每个地址寄存器都只是16位,因而采用分段存储结构,每个逻辑段的最长度为64KB。
8086MN/MX 引脚作用:选择工作模式。
MN/MX=’1’为最小模式;MN/MX=’0’为最大模式。
段内偏移地址又称为有效地址EA。
存储单元地址(以字节为单元)分为逻辑地址和物理地址。
逻辑地址=段基址(16):偏移地址(16)=CS:IPDS×10H+SI/DI/BX物理地址PA=段基址×10H+偏移地址EA=SS×10H+SP/BPCS×10H+IPI/O端口地址:I/O空间不分段。
《微机原理及接口技术》期末考试复习提纲《微机原理及接口技术B》(闭卷)期末考试复习提纲一、考试章节范围:考试范围大体为:教材第1-8章。
二、考试题型:A卷(期末试卷),考试时间90分钟一.填空题(20分): 20空,每空1分二.选择题(20分):10小题,每题2分三.简答题(12分):4小题,每题3分四.简述题(6分):1小题(集中在第2章)五.程序阅读填空题(22分):2个小题,共11空,每空2分类型:给出一段完整程序,要求指出其中某些语句的作用及整个程序的功能。
考点:单片机某并行口外接多个LED灯的控制;利用软件延时;利用定时/计数器进行硬软件结合延时;通过数码管实现0-9的简易秒表。
六.编程题(10分):1小题,(要求编出完整的程序)考点:利用定时/计数器实现要求的延时,包括定时/计数器相关寄存器,如TMOD的设置、计数初值的计算、定时器的初始化等,以及驱动某LED灯按给定的延时进行相应的闪烁。
七.存储器扩展题(10分):1小题考点:题目给出相关的芯片及引脚信号图,根据题意进行存储器扩展,画出硬件连线图(最好用直尺画线),并给出扩展后的存储器芯片的地址范围。
B卷(补考试卷),考试时间90分钟和A卷题型、分值和考点均类似。
三、成绩比例:期末考试成绩:70%平时考勤、作业等:15%实验:15%四、各章需掌握的知识点:第1章单片机硬件系统1.掌握单片机的定义(即单片机的组成部分)。
2.熟悉并记忆80C51单片机的基本组成和资源配置、常用信号引脚及含义。
3.掌握单片机最小系统电路(除单片机和电源外,还包括时钟电路和复位电路)。
4.理解80C51晶振频率、时钟周期及机器周期的数量关系。
80C51复位信号为高电平有效;80C51复位后的初始化状态:各寄存器的值(SP=07H、P0~P3=FFH、SBUF不定,其余均为0)。
5.掌握80C51单片机片内RAM的配置及寻址空间和容量:熟练掌握片内RAM低128字节的分区:工作寄存器区(能根据当前工作寄存器组号来确定实际的RAM地址)、位寻址区、用户数据缓冲区及范围。
1、统计出某数组中相邻两数之间符号变化的次数DATA SEGMENTARRAY DB 20 DUP (?)NUM DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTARTUP:LEA SI , ARRAY;MOV AL ,[SI]MOV BL,0MOV CX,19AGAIN:INC SIXOR AL ,[SI]J NS NEXTINC BLNEXT:MOV AL ,[SI]LOOP AGAINMOV NUM,BLMOV AH ,4CHINT 21HCODE ENDSEND STARTUP2、乘法指令实现32位二进制数与16位二进制数相乘MODEL SMALL.8086。
DATAN1 DW 1234HN2 DW 5678HN3 DW 4444HM1 DW 0M2 DW 0M3 DW 0CODE。
STARTUPMOV AX ,N2MUL N3MOV M3,AXMOV M2,DXMOV AX,N3MUL N1ADD M2,AXADC M1,DX.EXITEND3、设有3个自变量的变量名及其内容如下:V AR1 3C46H ,V AR2 F678H ,V AR3 0059H设计一个数据段定义这三个变量及其地址表变量DDRTABLDATA SEGMENTV AR1 DW 3C46HV AR2 DW F678HV AR3 DW 0059HADDRTABLDD V AR1DD V AR2DD V AR3DATA ENDS4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。
DATA SEGMENTM EQU 10DAT DW M DUP(?)MAX DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTARUP :MOV AX ,DATMOV MAX ,AXCLDLEA SI ,DATMOV CX ,ML1:LODSWCMP AX ,MAXJNG LABMOV MAX ,AXLAB :LOOP L1MOV AH ,4CHINT 21HCODE ENDSEND STARTUP绝对值修改:需要在LODSW插入AND AX ,AXJNS LAB1NEG AXLAB1:CMP AX ,MAX程序初始化时MAX应送入0无符号数程序修改:判别条件CMP AX ,MAXJNG LAB修改为CMP AX,MAXJBE LAB5、编制一个程序将20个字节的数组分为正数和负数组,并计算两个数组中数据的个数DATA SEGMENTDAT DB 20 DUP (?)PDAT DB 20 DUP(?)PDAT DB ?PLEN DB ?NDAT DB 20 DUP (?)NLEN DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTARTUP:XOR BX ,BXLEA SI ,DATXOR DI,DICLDMOV CX,20LOOP0 :LODSBCMP AL,0JGE LOOP1MOV NDAT[BX],ALINC BXJMP LABLOOP1:MOV PDAT[DI],ALINC DILAB:DEC CXJNZ LOOP0MOV PLEN ,DIMOV NLEN,BXMOV AH,4CHINT 21HCODE ENDSEND STARTUP6、把从A开始的8个字节单元内容依次和从B开始的8个相应的字节单元内容互换。
CH01 微型计算机概述1.微型计算机由哪些部件组成?各部件的主要功能是什么?解答:CPU由运算器,控制器(CU),协处理器,高速缓冲器,各种借口和控制部件组成。
运算器由算术逻辑部件(ALU)和Reg.组构成。
微型计算机(μC):C PU+(RAM+ROM)+I/O接口+其他支持器件;各部分通过系统总线连接。
微型计算机系统(μCS):μC+系统软件+应用软件+外设+总线接口+电源。
单片机:CPU+MEM+I/O接口→集成在一个芯片上。
外围设备:打印机、键盘、CRT、磁盘控制器等;微处理器:(CPU);系统总线:AB、CB、DB (功能:为CPU和其他部件之间提供数据、地址和控制信息的传输通道);存储器:只读存储器(ROM)、随机存储器(RAM)(功能:用来存储信息);输入/输出(I/O)接口:串/并行接口等(功能:使外部设备和微型机相连);算术逻辑部件(ALU):累加器、寄存器控制器;操作系统(OS):系统实用程序:汇编、编译、编辑、调试程序等;(注:CPU的功能--①可以进行算术和逻辑运算;②可保存少量数据;③能对指令进行译码并执行规定的动作;④能和存储器、外设交换数据;⑤提供整修系统所需要的定时和控制;⑥可以响应其他部件发来的中断请示。
)2.8086/8088 CPU 由哪两部分组成?它们的主要功能各是什么?是如何协调工作的?解答:总线接口部件(BIU):负责与存储器、I/O端口传送数据执行部件(EU):负责指令的执行协调工作过程:总线接口部件和执行部件并不是同步工作的,它们按以下流水线技术原则来协调管理:①每当8086 的指令队列中有两个空字节,或者80 88 的指令队列中有一个空字节时,总线接口部件就会自动把指令取到指令队列中。
②每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。
在执行指令的过程中,如果必须访问存储器或者输入/输出设备,那么,执行部件就会请求总线接口部件进入总线周期,完成访问内存或者输入/输出端口的操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。
1、统计出某数组中相邻两数之间符号变化的次数DATA SEGMENTARRAY DB 20 DUP (?)NUM DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTARTUP:LEA SI , ARRAY;MOV AL ,[SI]MOV BL,0MOV CX,19AGAIN: INC SIXOR AL ,[SI]J NS NEXTINC BLNEXT: MOV AL ,[SI]LOOP AGAINMOV NUM,BLMOV AH ,4CHINT 21HCODE ENDSEND STARTUP2、乘法指令实现32位二进制数与16位二进制数相乘MODEL SMALL.8086.DATAN1 DW 1234HN2 DW 5678HN3 DW 4444HM1 DW 0M2 DW 0M3 DW 0CODE. STARTUPMOV AX ,N2MUL N3MOV M3,AXMOV M2,DXMOV AX,N3MUL N1ADD M2,AXADC M1,DX.EXITEND3、设有3个自变量的变量名及其内容如下:V AR1 3C46H , V AR2 F678H , V AR3 0059H设计一个数据段定义这三个变量及其地址表变量DDRTABLDATA SEGMENTV AR1 DW 3C46HV AR2 DW F678HV AR3 DW 0059HADDRTABLDD V AR1DD V AR2DD V AR3DATA ENDS4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。
DATA SEGMENTM EQU 10DAT DW M DUP(?)MAX DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTARUP : MOV AX ,DATMOV MAX ,AXCLDLEA SI ,DATMOV CX ,ML1: LODSWCMP AX ,MAXJNG LABMOV MAX ,AXLAB : LOOP L1MOV AH ,4CHINT 21HCODE ENDSEND STARTUP绝对值修改:需要在LODSW插入AND AX ,AXJNS LAB1NEG AXLAB1: CMP AX ,MAX程序初始化时MAX应送入0无符号数程序修改:判别条件CMP AX ,MAXJNG LAB修改为CMP AX,MAXJBE LAB5、编制一个程序将20个字节的数组分为正数和负数组,并计算两个数组中数据的个数DATA SEGMENTDAT DB 20 DUP (?)PDAT DB 20 DUP(?)PDAT DB ?PLEN DB ?NDAT DB 20 DUP (?)NLEN DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTARTUP:XOR BX ,BXLEA SI ,DATXOR DI,DICLDMOV CX,20LOOP0 : LODSBCMP AL,0JGE LOOP1MOV NDAT[BX] ,ALINC BXJMP LABLOOP1:MOV PDAT[DI] ,ALINC DILAB: DEC CXJNZ LOOP0MOV PLEN ,DIMOV NLEN,BXMOV AH,4CHINT 21HCODE ENDSEND STARTUP6、把从A开始的8个字节单元内容依次和从B开始的8个相应的字节单元内容互换。
DATA SEGMENTA DB 'ABCDEFGH'B DB '12345678'DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTART: MOV AX ,DATAMOV DS,AXLEA SI ,ALEA DI ,BMOV CX,8LP:MOV AL ,[SI]XCHG AL ,[DI]MOV [SI], ALINC SIINC DILOOP LPMOV AH ,4CHINT 21HCODE ENDSEND START7、计算BUF开始的数组中的100个元素中非零元素的个数,并将其存入COUNT单元,补全指令BUF DB 100 DUP (?)COUNT DB 0..............STARTUP: MOV AX,DATAMOV DS,AXLEA SI, (1)________MOV CX ,(2)______CON:MOV AL,[SI]CMP AL ,(3)_______.JZ NEXTINC (4)_____NEXT: INC SILOOP (5)______HLT答案:BUF 100 0 COUNT CON8、程序执行后寄存器的值:MOV AX,01HMOV BX ,02HPUSH BXPUSH AXPOP BX 执行后BX=(1)___POP AX 执行后AX=(1)____MOV AX ,3F5FH 执行后AL=(3)______ MOV CX ,4ROR AL,CL 执行后AL=(4)____AND AL ,0FH 执行后AL=(5)_______ 答案:01H 02H 5FH 0F5H 05H 9、分支程序设计实验(1)显示AL中两位十六进制数程序:CODE SEGMENTASSUME CS:CODESTART: MOV AL,3EHMOV BL,ALMOV DL,ALMOV CL,4SHR DL,CLCMP DL,9JBE NEXT1ADD DL,7NEXT1: ADD DL,30HMOV AH,2INT 21HMOV DL,BLAND DL,0FHCMP DL,9JBE NEXT2ADD DL,7NEXT2: ADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START(2)显示键入字符CODE SEGMENTASSUME CS:CODESTART: MOV AH,1INT 21HCMP AL,0DHJZ DONECMP al,'0'JB nextCMP AL,'9'JA CHRUPMOV DL,ALMOV AH,2INT 21HJMP STARTCHRUP: CMP AL,41HJB NEXTCMP AL,5AHJA CHRDNDISPC: MOV DL,'C'MOV AH,2INT 21HNEXT: JMP STARTCHRDN: CMP AL,61HJB NEXTCMP AL,7AHJA NEXTJMP DISPCDONE: MOV AH,4CHINT 21HCODE ENDSEND START10、实验四:偶校验程序DSEG SEGMENTSTRN DB 'ABCDEfghijkLMNOPQuvw','$' N DB ?DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEGMOV DS,AXLEA SI,STRNMOV DL,0AGAIN: MOV AL,[SI]CMP AL,'$'JE DONETEST AL,0FFHJPE NEXTOR AL,80HMOV [SI],ALINC DLNEXT: INC SIJMP AGAINDONE: MOV N,DLMOV AH,4CHINT 21HCSEG ENDSEND START(2)加法程序CODE SEGMENTASSUME CS:CODE,DS:CODESTART: MOV AX,CSMOV DS,AXLEA SI,DAT1LEA DI,DAT2LEA BX,DAT3MOV CX,10XOR AL,ALAGAIN: MOV AL,[SI]ADC AL,[DI]MOV [BX],ALINC SIINC DIINC BXLOOP AGAINMOV AH,4CHINT 21HDAT1 DB 70H,80H,90H,0A0H,0A1H,0A2H,0A3HDB 74H,65H,56HDAT2 DB 45H,67H,89H,1AH,2BH,3CHDB 4DH,5EH,6FH,04HDAT3 DB 10 DUP(?)CODE ENDSEND START12、设有两个等字长,字节型字符串,试编写一程序,比较他们是否完全相同,如相同则讲字符Y送入AL中,否则将字符N送入AL 中DATA SEGMENTSTRING1 DB 'ASdAS'STRING2 DB 'ASASd'DATA ENSCODE SEGMENTASSUME CS:CODE,DS:DATASTARTUP:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI , STRING1LEA DI ,STRING2MOV CX,5REPZ CMPSB STRING1 ,STRING2JNZ LABNEMOV AL ,'Y'MP EXITLABNE :MOV AL ,'N'EXIT : MOV AH ,4CHINT 21HCODE ENDSEND STARTUP11、填空题:1、输入输出指令间接寻址必须通过DX寄存器2、20根地址线最大内存容量是2203、标志寄存器有9位标志位,其中3位控制标志位,6位状态标志位4、BIU和EU两个单元并行工作在CPU中5、SP和BP是指针寄存器,SP指示堆栈段段顶的偏移地址6、零标志位ZF=1时,结果全为07、对于5片8259A形成的级联共有36级中断8、debug跟踪执行命令是t命令9、中断矢量表存放在存储器最低位10、存储器是分段的,每段最大长度是64KB11、段内偏移地址从0000到FFFFH12、8259A A0与地址总线A1相连13、取指令时,段地址由CS寄存器提供,偏移地址由IP寄存器提供14、16位有符号二进制补码范围为-32768~3276715、8086可访问偶数存储体的选择信号是A016、中断矢量表可以容纳256个中断向量,每个中断向量有4个字节17、DOS功能调用功能号在AH寄存器里面18、条件转移指令多路分支,输入5路分支需要3条件转移指令8、大题:若8086系统中采用单片8259A作为外部可屏蔽中断的优先级管理,正常全嵌套方式,边缘触发,非缓冲连接,非自动终端结束,端口地址为20H和21H,其中,某中断源的中断类型码为4AH,其中断服务子程序名为SUBROUTINE,且已知其地址为2000.3A40H (1)请问本题中的中断源应与8259A的哪个IR输入端相连?其中断矢量地址是多少,矢量区对应的4个单元内容是什么?答:与IR2相连,地址为0000.0128H,矢量对应的4个单元内容依次为40H,3AH,00H,20H(2)请为8259A设置正确的初始化命令,并编写程序:ICW1=00010011,单片,边缘触发,必须设置ICW4;ICW2=48H,终端类型码基值为48H;无ICW3,单片8259A系统,无需设置ICW3;ICW4=00000001,正常全嵌套方式,非缓冲连接,非自动中断结束,8086 CPU,初始化程序如下:MOV AL ,13HOUT 20H, ALMOV AL ,48HOUT 21H,ALMOV AL,01HOUT 21H,AL(3)请编写程序片段,设置该中断源的中断矢量MOV AX ,0MOV ES ,AXMOV DI ,4AH*4MOV AX ,OFFSET SUBROUTINECLDSTOSWMOV AX,SEG SUBROUTINESTOSW13可屏蔽中断响应和处理过程:(1)中断允许标志IF置1,没有异常,没有非屏蔽中断NMI=0,没有总线请求,CPU响应可屏蔽中断请求;(2)外部设备向8259A发出中断请求信号,经过8259A处理后得到相应的中断矢量号,并同时向CPU申请中断INT=1(3)如果指令不是HLT或者W AIT,则CPU执行完当前指令后便向8259A发出中断信号INTA=0,表明CPU响应该可屏蔽中断请求若指令是HLT,则中断请求信号INTR的产生使处理器退出暂停状态,响应中断,进入中断处理程序若指令是W AIT。