微机原理期末考试重点总结.doc

上传人:李司机 文档编号:1180949 上传时间:2022-07-15 格式:DOC 页数:14 大小:142.50KB
返回 下载 相关 举报
微机原理期末考试重点总结.doc_第1页
第1页 / 共14页
微机原理期末考试重点总结.doc_第2页
第2页 / 共14页
微机原理期末考试重点总结.doc_第3页
第3页 / 共14页
微机原理期末考试重点总结.doc_第4页
第4页 / 共14页
微机原理期末考试重点总结.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《微机原理期末考试重点总结.doc》由会员分享,可在线阅读,更多相关《微机原理期末考试重点总结.doc(14页珍藏版)》请在三一办公上搜索。

1、把寻找操作数的方式叫做操作数寻址方式立即数寻址方式存放器寻址方式存储器寻址方式1、直接寻址方式 2、存放器间接寻址方式3、存放器相对寻址方式 4、基址变址寻址方式 5、相对基址变址寻址方式微处理器的定义微处理器即中央处理单元,采用大规模集成电路技术制成的半导体芯片,部集成了计算机的主要部件:控制器、运算器、存放器组。微处理器通过执行指令序列完成指定的操作,处理器能够执行全部指令的集合就是该处理器的指令系统。微机的总线构造的好处,使用特点。包括总线定义,分类。总线定义:指传递信息的一组公用导线,总线构造的好处:总线构造使得微机系统组态灵活,扩展方便。使用特点:在某个时刻只有一个总线主控设备控制系

2、统总线。某一时刻只能有一个设备向总线发送信号,但可以有多个设备同时从总线上获取信号。总线按传输信号可以分为数据总线用于CPU与其他部件之间传递信息,具有三态功能,且是双向的、地址总线用于传递CPU要访问的存储单元或I/O接口的地址信号、控制总线连接CPU的控制部件和存、I/O设备等,用来控制存和I/O设备的全部工作诺依曼存储程序工作原理1、 将采取二进制形式表示数据和指令。指令由操作码和地址码组成2、 将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。3、 指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。4、 计算机由存储

3、器、运算器、控制器、输入设备和输出设备五大根本部件组成,并规定了各部件的根本功能。8086微处理器的构成、每一个T状态的主要工作。根本的存储读、写总线周期构成。常用的控制信号。总线周期是指CPU通过总线与外部存储器或I/O端口进展一次数据交换的过程,即完成一次总线操作的时间指令周期是指一条指令经取指、译码、操作数读写直到指令完成所需要的时间。存储器读总线周期:T1状态输出存储器的地址T2状态输出控制信号-RD,选通存储器;DEN信号,选通数据收发器T3和Tw状态检测数据传送是否能够完成T4状态前沿读取数据,完成数据传送存储器写总线周期:T1状态输出20位存储器地址A19 A0 T2状态 -WR

4、信号有效,-DEN信号有效以输出数据D7D0T3和Tw状态 -WR、-DEN等控制信号持续有效,T3时钟下降沿检测READY信号,决定是否插入Tw;Tw期间,各信号延续状态。T4状态完成数据传送,并准备过渡到下一操作。-WR、-DEN转为无效。常用的控制信号:ALE地址锁存允许,输出、三态、高电平有效IO/-M:I/O或存储器访问,输出、三态-WR:写控制,输出、三态、低电平有效-RD:读控制,输出、三态、低电平有效INTR、-INTA等存储器地址的译码问题全译码:所有的系统地址线均参与对存储单元的译码寻址特点:采用全译码,每个存储单元的地址都是唯一的,不存在地址重复译码电路可能比拟复杂、连线

5、也较多局部译码:只有局部高位地址线参与对存储芯片的译码特点:每个存储单元将对应多个地址地址重复,需要选取一个可用地址可简化译码电路的设计、但系统的局部地址空间将被浪费存储芯片为什么要设置片选信号?它与系统地址总线有哪些连接方式?采用何种连接方式可防止地址重复?采用哪些连接方式可节省用于译码的硬件?解答:片选信号说明该存储器芯片是否被选中正常工作,设置它可以比拟方便地实现多个存储器芯片组成大容量的存储空间存储器片选信号通常与CPU地址总线的高位地址线相关联,可以采用全译码、局部译码、线选译码方式采用全译码方式可以防止地址重复采用局部或线选译码可以节省译码硬件8086微处理器的部构造,EU、BIU

6、的定义和作用,流水线。BIU总线接口单元:由指令队列、指令指针、段存放器、地址加法器和总线控制逻辑构成。该单元管理着8088与系统总线的接口、负责CPU对存储器和外设进展访问。EU执行单元:由ALU、通用存放器、标志存放器和指令译码逻辑等构成,它负责指令的译码、执行和数据的运算。两个单元相互独立,分别完成各自操作。两个单元可以并行执行,实现指令取指和执行的流水线操作8086的寻址方式。物理地址和逻辑地址的定义。两者之间转换。8086系统存储器采用分段管理方式。要求很熟练对于每个存储器单元都有一个唯一的20位地址,称为物理地址。在8088的总线部和用户编程时,所采用的段地址:偏移地址形式,称为逻

7、辑地址。一个存储器单元可以拥有多个逻辑地址,但可能拥有唯一的物理地址。转换过程:先将段存放器提供的16位段地址左移四位,低位补0,恢复为20位地址,然后与由各种寻址方式提供的16位偏移地址相加,即得到20位的物理地址。8086微处理器的部构成。8086的存放器构造,标志存放器中每一个标志位的含义及应用。8086复位时各存放器的初始状态。部构成:算术逻辑单元运算器、存放器组、指令处理单元控制器存放器构造:8086/8088共有8个的通用存放器,1个标志存放器,4个段存放器和1个指令指针存放器。进位标志 CF:计算结果的最高有效位有进位,那么CF=1,否那么CF=0溢出标志 OF:假设算术运算的结

8、果有溢出,那么OF=1;否那么 OF0全零标志位 ZF:假设运算结果为全0,那么ZF=1,否那么ZF=0符号标志 CF:运算结果最高位为1,那么SF=1;否那么SF=0奇偶标志位 PF:当运算结果最低字节中1的个数为零或偶数时,PF=1;否那么PF=0奇校验辅助进位标志 AF:运算时D3位低半字节有进位或借位时,AF=1;否那么AF=0方向标志 DF:存储地址自动增加,DF=1,否那么DF=0中断允许标志: IF1,那么允许中断,IF0,那么制止中断陷阱标志TF: TF0,处理器正常工作;TF1,处理器每执行一条指令就中断一次中断向量表。掌握中断向量表的构成,计算中断类型号,中断效劳程序入口地

9、址。中断的工作过程。中断向量表是一种表数据构造,是中断向量号与其对应的中断效劳程序入口之间的表。该地址包括:偏移地址IP 、段地址CS 共32位每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节低对低,高对高。8088 微处理器从物理地址000H开场到3FFH1KB,依次安排各个中断向量,向量号从0到255。256个中断向量所占用的1KB区域,称中断向量表中断向量的存放首址=N*4中断类型:8088 CPU具有哪些中断类型?各种中断如何产生,如何得到中断向量号?除法错中断:在执行除法指令时,除数为0或商超过了存放器所能表达的围产生指令中断:在执行中断指令INT n时产生溢出中断:在执行

10、溢出中断指令INTO时,溢出标志OF为1产生单步中断:单步标志TF为1,在每条指令执行完毕后产生非屏蔽中断:外部通过NMI请求信号向微处理器提出请求时产生可屏蔽中断:外部通过INTR请求信号向微处理器提出请求,并在允许可屏蔽中断的条件下产生2除法错中断、溢出中断、单步中断、非屏蔽中断的向量号是8086微处理器部已经确定指令中断的操作数n就是向量号可屏蔽中断的向量号在响应中断时通过数据总线从外部获得什么是8259A的中断完毕字EOI?1IRi被响应时,ISR中对应的Di位被置1;2中断处理完毕,相应的Di位应置0。3向8259A送中断完毕指令,使ISR的某位清0,指令的容叫作中断完毕字。8259

11、A中IRR、IMR和ISR三个存放器的含义中断请求存放器IRR:保存8条外界中断请求信号IR0IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求中断屏蔽存放器IMR:保存对中断请求信号IRi的屏蔽状态Di位为1表示IRi中断被屏蔽制止;为0表示允许中断效劳存放器ISR:保存正在被8259A处理的中断的状态Di位为1表示IRi中断正在处理中;为0表示没有被处理中断的概念。中断向量表的含义。深入理解8259的工作方式,优先权设置、中断完毕处理、中断源屏蔽、中断触发等等。8259的初始化编程。中断效劳程序编写。中断:指当出现需要时,CPU暂时停顿当前程序的执行转而执行处理新情况的程序

12、和执行过程。优先权设置:在ISR的 Di 位置位期间,制止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套中断完毕处理:自动中断完毕方式、普通中断完毕方式、特殊中断完毕方式;中断向量表的含义:256个中断向量所占用的1KB区域,称中断向量表计算机主机和I/O设备之间进展数据传送的方法。重点掌握查询方式完成数据传送的流程,要会编程。查询传送的特点是:工作可靠,适用面宽,但传送效率低查询输入接口考电路:代码如下: mov dx,8000h ;dx指向状态端口Status: in al, dx ;读状态端口 test al,01h ;测试标志位D0 jz status ;D0=0,未就绪,继

13、续查询 inc dx ;D0=1,就绪,DX指向数据端口 in al,dx ;从数据端口输入数据中断传送:中断传送是一种效率更高的程序传送方式;中断过程的完成由中断系统硬件,如8259和CPU和中断效劳程序软件共同控制完成中断工作过程:1、 中断请求外设 2、中断响应CPU3、关中断CPU 4、断点保护CPU5、中断识别软件/硬件 6、现场保护用户7、中断效劳用户 8、恢复现场用户9、开中断用户/CPU 10、中断返回IRET/用户最小组态的写总线周期时序:如何限制只能输入小写字母 61h7Ah,课本P22,否那么要求重新输入。.datamsg db not a lowercase,input

14、 again, db0dh, 0ah, $input:mov ah,1;输入小写字母int 21h cmp al, 61hjl once-againcmp al, 7Ahja once-againjmp convertonce-again: mov dx,offset msgmov ah,9int 21hjmp inputconvert:sub al,20h ;转换为大写字母采用查表法,实现一位16进制数转换为ASCII码显示04h34h4 0bh42hBASCIIdb 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h;对应0 9的ASCII码db 41h,42h

15、,43h,44h,45h,46h;对应A F的ASCII码hexdb 04h,0bh;假设两个16进制数;代码段mov bx,offset ASCII;BX指向ASCII码表mov al, hex;AL取得一位16进制数;恰好就是ASCII码表中的位移and al, 0fh;只有低4位是有效的,高4位清0xlat ;换码:ALDS:BXALmov dl,al;欲显示的ASCII码送DLmov ah,2;2号DOS功能调用int 21h;显示一个ASCII码字符mov al,hex+1;转换并显示下一个数据and al,0fhxlatmov dl,almov ah,2int 21h编写一个源程序

16、,在键盘上按一个键,将从AL返回的ASCII码值显示出来,如果按下ESC键那么程序退出。(可调用书中的HTOASC子程序)HTOASCprocand al,0fh ;al低四位保存待转;换的16进制数cmp al,9e htoasc1add al,37h ;是A F,加37Hret ;子程序返回htoasc1:add al,30h ;0 9,加30Hret ;子程序返回HTOASCendppush axmov cl, 4ror al, clcall HTOASCcall disp_a_charpop axcall HTOASCcall disp_a_char把从键盘输入的一个小写字母用大写字母

17、显示出来(大小写字母转换)。 mov ah,1;输入小写字母int 21hsub al,20h;转换为大写字母mov dl,almov ah,2int 21h;显示写一个子程序,根据入口参数AL0、1、2,依次实现对大写字母转换成小写、小写转换成大写或大小写字母互换。欲转换的字符串在string中,用0表示完毕。lucaseprocpush bxmov bx,offset stringcmp al,0je case0 cmp al,1 jz case1 cmp al,2 jz case2 jmp donecase0:cmp byte ptr bx,0 je donecmp byte ptr b

18、x,A next0cmp byte ptr bx,Z ja next0add byte ptr bx,20hnext0:inc bxjmp case0case1:cmp byte ptr bx,0je donecmp byte ptr bx,a next1cmp byte ptr bx,zja next1sub byte ptr bx,20hnext1:inc bxjmp case1case2:cmp byte ptr bx,0 je donecmp byte ptr bx,A next2cmp byte ptr bx,Z ja next20add byte ptr bx,20hjmp nex

19、t2next20:cmp byte ptr bx,a next2cmp byte ptr bx,zja next2sub byte ptr bx,20hnext2:inc bxjmp case2done:pop bxretlucaseendp循环累加调用子程序arraydb 12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90hcountequ $-array;数组元素个数resultdb ;校验和;代码段主程序mov bx,offset array;BX数组的偏移地址mov cx,count;CX数组的元素个数call checksum;调用求和过程mov res

20、ult,al;处理出口参数checksumprocxor al,al;累加器清0sum:add al,bx;求和inc bx;指向下一个字节loop sum RetChecksum endp计算AX中有符号数的绝对值 cmp ax,0 jge nonneg;条件满足AX0,转移 neg ax;条件不满足,求补即绝对值P43nonneg: mov result,ax;保存结果;不恰当的分支 cmp ax,0 jl yesneg;条件满足AX0,转移 jmp nonnegyesneg:neg ax;条件满足,求补nonneg:mov result,ax;保存结果设置两个变量maxay和minay存

21、放最大和最小值arraydw 10 dw -3,0,20,900,587,-632,777,234,-34,-56maxaydw ;存放最大值minaydw ;存放最小值 lea si,array mov cx,si;取得元素个数 dec cx;减1后是循环次数 add si,2 mov ax,si mov bx,axmaxck:add si,2 cmp si,ax;与下一个数据比拟 jle minck mov ax,si;AX取得更大的数据 jmp nextminck:cmp si,bx jge next mov bx,si;BX取得更小的数据next:loop maxck;计数循环 mov

22、 maxay,ax;保存最大值 mov minay,bx;保存最小值挑出数组中正数不含0和负数,分别形成正、负数组DATAS SEGMENT count equ 10 array dw 23h,9801h ayplus dw count dup(0) ayminus dw count dup(0)DATAS ENDSSTACKS SEGMENT STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX mov si,offset array mov di,offset ayp

23、lus mov bx,offset ayminus mov ax,ds mov es,ax mov cx,count cld again: lodsw cmp ax,0 jl minus jz next minus: xchg bx,di stosw xchg bx,di next: loop again MOV AH,4CH INT 21HCODES ENDSEND START8259A 的初始化程序段7.8,;写入ICW1:设定边沿触发方式,单片方式,:,;写入ICW2:设定IR0的中断向量号为90h,:,;写入ICW4:设定普通嵌套方式,普通中断方式,8259的初始化编程:主片: mov

24、 al,11h;写入ICW1out 20h,alintr1:mov al,08h;写入ICW2out 21h,alintr2:mov al,04h;写入ICW3out 21h,alintr3:mov al,05h;写入ICW4out 21h,al从片: mov al,11h;写入ICW1out 0a0h,alintr5:mov al,70h;写入ICW2out 0a1h,alintr6:mov al,02h;写入ICW3out 0a1h,alintr7:mov al, 01h;写入ICW4out 0a1h,al试按如下要求分别编写8253的初始化程序,8253的计数器02和控制字I/O地址依次

25、为204H207H。使计数器2工作在方式2,计数值为02F0H。mov al,0b4hmov dx,207hout dx,almov ax,02f0hmov dx,206hout dx,al ;先写入低字节mov al,ahout dx,al ;后写入高字节8255的初始化编程要求:A口:方式1输入、CH口:输出、CL口:输入、B口:方式0输出方式控制字:1 0110 001 B或B1H初始化的程序段:mov dx,0fffeh;假设控制端口为FFFEHmov al,0b1h;方式控制字out dx,al;送到控制端口某系统中8253芯片中计数器的0-2和控制字端口地址分别是FFF0HFFF3

26、H。编写8253两个计数器初始化程序及两个计数器的连通图。计数器0的计数值:5M/1K50001388H 方式控制字:0010010125H、2DH、35H、3DH 十进制计数 0010010024H、2CH、34H、3CH 二进制计数计数器1的计数值:1000方式控制字:0110100169H、79H十进制计数 0110100068H、78H二进制计数MOV DX,0FFF3H MOV AL,25H ;通道0,只写高字节,方式2,十进制OUT DX,ALMOV DX, 0FFF0HMOV AL,50H ;计数初值5000OUT DX,ALMOV DX,0FFF3HMOV AL,69H ;通道

27、1,方式4OUT DX,ALMOV DX, 0FFF1HMOV AL,10H ;计数初值1000OUT DX,AL3、某字符输出设备如打印机,其数据口和状态口的地址均为80H。在读取状态时,当标志位D70时,说明该设备闲,可以接收一个字符,请编写利用查询方式进展数据传送的程序段。要求将存放于符号地址addr处的一串字符以$为完毕标志输出给该设备。mov bx, offset addr ;利用offset操作符,可在汇编过程中得到addr的偏移地址again:mov ah, bx cmp ah, $jz donestatus:in al, 80h ;查询一次 test al, 80h ;两个80

28、h不一样 jnz status ;D7=1,表示设备忙,继续查询 mov al, ah out 80h, al ;输出一个字节 inc bx jmp again ;循环done:如图10.23为用一片8255A控制8个8段共阴极LED数码管的电路。现要求按下某个开关,其代表的数字K1为1,K2为2,K8为8在数码管从左到右循环显示已有一个延时子程序delay可以调用,直到按下另一个开关。假定8255A的数据端口A、B、C及控制端口的地址依次为FFF8HFFFBH。编写完成上述功能的程序,应包括8255A的初始化、控制程序和数码管的显示代码表;显示代码表tabledb 0c0h;对应0任意db

29、0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h ;对应18;8255A初始化mov dx,0fffbhmov al,10001001b;89hout dx,al ;控制程序again0:mov dx,0fffah;输入开关状态in al,dxmov cx,8;确定哪个开关闭合mov ah,01h;mov ah,08hagain1:shr al,1;shl al,1jnc disp0inc ah;dec ahloop again1jmp disp1;显示字段disp0:mov bx,offset tablemov al,ahxlatmov dx,0fff8hout dx,

30、al;输出段码disp1:mov cx,8;循环显示8位mov al,01hmov dx,0fff9hdisp2:out dx,al;输出位码call delayshl al,1loop disp2jmp again0;写入方式字mov al,100001b;81hmov dx,控制口地址;0fffehout dx,al;参加下一段更好,使L0L3全亮mov al,0fhmov dx,端口C地址;0fffchout dx,al;控制程序段mov dx,端口C地址;0fffchin al,dx;读入PC0PC3mov cl,4shl al,cl;左移4位out dx,al;控制PC4PC7以82

31、55的B口作输入口、连接逻辑电平开关;以8255的A口作输出口、连接发光二极管电路。要求:当输入不是全0时,输出与输入保持一致即高电平时点亮;当输入是全0时,令发光二极管循环点亮或闪烁告警。begin: mov dx,portc ; 8255 初始化 mov al,82h ; A组方式0,A口出,; B组方式0,B口入 out dx,al mov ah,0ffh mov bl,0lp: mov dx,portb ; B 口读入开关状态 in al,dx test al,ah ;与ffh比拟,看是否8个开关全闭合0信号 jz shift mov dx,porta ; A 口输出开关状态 not

32、al out dx,al jmp lpshift: mov al,bl ;bl初值为0 mov dx,porta not al out dx,al call delay ; 延时shl bl,1 ; 移位 test bl,ah ;ah初值为ffh jnz lp mov bl,1 jmp lp2、如果有一个输入设备,其数据口地址为FFE0H,状态口地址为FFE2H,当状态标志D01时,说明一个字节的输入数据就绪,请编写利用查询方式进展数据传送的程序段。要求从该设备读取100个字节并写到从2000H:2000H开场的存中。通过读取状态存放器的标志位来检查外设是否就绪。假设不就绪就继续查询,即程序不

33、断循环;直至就绪。然后,进展下一步的传送工作。mov bx, 2000hmov ds, bxmov cx, 100again:mov dx, 0ffe2hstatus:in al, dx ;读入状态标志D0test al, 01h ;al & 01hjz statusmov dx, 0ffe0hin al, dx ;输入一个字节mov bx, al ;alds:bx, 存放器间接寻址inc bx查询方式完成数据传送。1、编程实现以下功能:当K0键单独按下时,发光二极管L0L7将流水点亮LnLn+1,每个维持200ms;当K1键单独按下时,发光二极管L0L7将反向流水点亮LnLn+1,每个也维持

34、200ms;在其他情况下各发光二极管均不点亮。假定有延时200ms的子程序DELAY可直接调用。again: mov dx, 8000h ;8000h是I/O端口地址in al, dx ;读入端口数据not al ;开关闭合,读入数据是0;反相,保证如图二极管点亮;cmp al, 1 ;K7K011111110B ?或al=00000001Bje l1 ;单独按下K0,转移到l1cmp al, 2 je l2 ;单独按下K1,转移到l2jmp again ;其它情况,都不亮l1: mov cx, 8 ;计数器设为8 mov al, 1 l11: out dx, al ;点亮一个LED call

35、 delay ;调用延时子程序,点亮状态保持200msrol al, 1 ;循环左移shl行吗?loop l11 ;循环直到cx减到0为止jmp again ;转到起点,继续查询端口变动l2: mov cx, 8 ;计数器设为8 mov al, 1 l21: out dx, al ;点亮一个LED call delay ;调用延时子程序,点亮状态保持200msror al, 1 loop l21 ;jmp again delay procmov cx,0bfffh ;延时200ms。0bffh=3071D,loop $ ;延时时间=49151*33 (时钟周期)/8000000(CPU工作频率

36、)200msdelay endp loop again ;循环,输入100个字节4、按照图6-14所示的中断查询接口与相应的流程图,请编写用于中断效劳的程序段。具体要,当程序查到中断设备A有中断请求对应数据线D0,它将调用名为PROC0的子程序;如此,依次去查中断设备B中断设备D,并分别调用名为PROC1PROC3的子程序。sti ;开中断push axpush dxmov dx,8001h ;接口地址是8001hstatus:in al, dxtest al, 01hjnz service0test al, 02hjnz service1test al, 04hjnz service2test al, 08hjnz service3service0:call proc0jmp doneservice1:call proc1jmp doneservice2:call proc2jmp doneservice3:call proc3jmp donedone:pop dxpop axiret ;中断返回

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号