1,典型中断处理程序结构应包括CPU中断响应,保护现场,开中断,执行中断服务程序,关中断,恢复现场,开中断,返回等部分
2,按照总线的规模,用途及其应用场合,总线分为数据总线,地址总线,控制总线 3,串行接口RS-232C关于机械特性的要求,规定使用一个9根插针的标准连接器
4,CPU与I/O借口间传送的信息一般包括数据信息,状态信息,控制信息3种类型。3类信息的传送方向分别应是(从哪到哪)CPUI/O,CPUI/O,CPUI/O 5,输入/输出端口有2种编址方法,即I/O端口与存储器单元统一编址和I/O端口单独编址,前一种编址的主要优点是1,CPU对外设的操作可使用全部的存储器操作指令2,由于I/O端口的地址空间是内存空间的一部分,这样I/O端口的地址空间可大可小从而使外设的数目几乎不受限制,而只受总存储量的限制,从而大大的增加了系统的吞吐率3,不需要专门的输入/输出指令,降低了对操作码的解码难度
6,8088系统中外围设备请求总线控制权是通过HOLD进行的 7,8086通过中断控制器最多可望管理外部中断的个数为256 8,CPU的ALU的主要完成算数,逻辑运算及位移操作
9,若设某容量为2K字节的RAM起始地址为1000H,则其终止地址为17FFH 10,8088/8086系统中外围设备可屏蔽中断请求是通过INTR进行的
可编程定时/计数器8253的工作方式共有6种,其中3个定时/计数器通道,3个地址寄存器 CPU马上响应中断的必要条件之一是一条指令执行完毕后 CPU与I/O接口间信息传送的方式有无条件传送,查询传送,中断传送,DMA传送,DMA传送方式为快速传递方式
8086/8088的中断响应用了2个总线周期,从INTA引脚输出2个负脉冲,第1个总线周期完成AD15---AD0浮空,通知中断源,准备中断类型码,复位中断请求信号,第2个总线周期完成被响应的外设(或接口芯片)向数据总线AD7---AD0输送一个字节的中断类型码 在Intel 8253A中通过对其中一个控制端口的编程设定和控制工作方式,其端口地址是当A1A0=11时的地址,而内存单元的有效偏移地址可由直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,变址寻址方式,基址寻址方式,相对基址变址寻址方式
8088CPU有20根外部地址线,8根外部数据线,其存储器分段管理,每段最大64KB,段基地址在段寄存器组中
8088CPU工作在最大模式,必须将CPU的引脚MN/MX接地 8088CPU工作在最大模式时,用8288对S2,S1,S0信号译码产生相应的总线控制信号 8086对外部请求相应优先级最高的请求是HOLD 个人计算机I/O寻址空间大小一般为64K 一个程序可包含四个段,代码段包含可执行的指令,堆栈段包含一个后进先出的数据警戒区,用于保护子程序调用时的段现场地址,和现场IP信息
在宏汇编语言源程序中指令MOV AX,2345经汇编后变成MOV AX,0929H(用指令表示)在DEBUG调试程序中执行该指令后(AX)=2345H宏汇编默认十进制,DEBUG默认十六进制 8088CPU在执行指令INT 13H时,断点地址压栈后,将转而执行中断服务子程序,入口地址存入在内存的0004CH单元到0004FH单元,其中低地址的字送至寄存器IP中,高地址字送至寄存器CS中
若寄存器DL内容为2AH,PORT_VAL为端口13H的符号名,宏汇编语言系统对指令AND DL,PORT_VAL AND OFEH汇编后产生的语句为AND DL,12H,DL内容为2AH,执行指令后DL=02H
在串行通信方式中,有两种最基本的通信方式是异步通信(ASYNC)方式,同步通信方式 8086/8088中,一个最基本的总线周期由4个时钟周期(T状态)组成,在T1状态,CPU往总线发出地址信息
8086/8088复位后从FFFF0H地址处开始执行程序 在堆栈内,有效地址为2500H到2505H单元内依次存放10H,20H,30H,40H,50H,60H六个数,已知SP=2502H,执行POP BX后,有SP=2504H,BX=4030H
能完成将AL寄存器清零的有SUB AL,AL XOR AL,AL MOV AL,0 8086的内存空间和I/O空间是单独编址的,分别是1MB和64KB 8086内部由执行单元(EU)和总线接口单元(BIU)两部分组成,其作用分别是从BIU中获得指令并执行和从内存储器的指定区域中取出指令送到指令队列中去排队
8086的基址加变址寻址方式中,基址寄存器可以是BX,BP,变址寄存器可以是SI和DI 标号和变量均是汇源程序中的符号地址,其中标号指向的内存单元中存放的是指令,而变量指向的内存单元中存放的是数。若VAR为一变量,LAB为一标号,则:JMP LAB和JMP VAR两条指令中,只有JMP VAR是非法的
8086/8088输出指令OUT DX,AX的执行结果是将AX内容送至(DX)指定I/O接口地址 8086/8088提供的能接受外部中断请示信号引脚是NMI和INTR,两种请示信号的主要不同处在于INTR为可屏蔽中断请求,NMI为非屏蔽中断请求 8086有两种工作模式,即最小模式和最大模式,它由MN/MX决定,最小模式的特点是CPU提供全部的控制信号,最大模式的特点是需总线控制器8288
8086/8088系统要锁存20位地址和BHE信号,需要3个8282作地址锁存器。除了8282之外,8086/8088系统中也常用74LS373作为地址锁存器 当M/IO=\"0\时,CPU完成的操作为I/O读
在一般微处理器中,算术逻辑单元包含在中央处理器(CPU)内
8086CPU认可中断后,CPU自动执行1,存下程序计数器2,存下状态寄存器3,暂不接受较低优先级别的中断
---------------------------------------------------------------------------------------------------------------------- 简答
8088的寻址方式有哪些?他们各有何特点?分别举例说明
1,立即寻址方式 :其所提供的操作数直接包含在指令中,与操作码一起放在代码段存储器的区域中,这个操作数称为立即数eg.MOV AL,57H。2,寄存器寻址方式:要寻找的操作数存放在CPU内部某个寄存器中,指令中直接使用寄存器名 eg.MOV AX,BX。3,直接寻址方式:其源操作数为16位偏移地址(有直接地址和标号地址两种形式)eg.MOV AX,[2000H]。 4,寄存器间接寻址方式:操作数存放在存储器中,操作数的16位段内偏移地址放在SI,DI和BP,BX中的一个寄存器eg.MOV AL,[SI]。5,寄存器相对寻址方式:存放实际操作数的存储器地址值为指令中的变址寄存器SI,DI和BP,BX中的一个寄存器的内容与指令中给定的相对位置之和eg.MOV AX,[SI+1000H]。6,基址变址寻址方式:BX和BP作为基址寄存器,SI和DI作为变址寄存器,将这两种寄存器联合起来进行的寻址eg.MOV AX,[BX+DI]。7,相对基址变址寻址方式 eg.MOV AX,DISP[BX+DI]。8,隐含寻址方式
简述中断响应,服务,以及返回过程,并以INT 25H为例,说明中断向量表的作用(建议用图示的方法说明)
1,描述中断响应及处理过程6步:关中断保留断点保护现场给出中断入口,转入
相应的中断服务程序恢复现场开中断与返回(流程图表示更好) 2,中断向量表的作用:8086/8088在内存的00000H---003FFH的1K空间建立了中断向量表,可以容纳256个中断向量(或256个中断类型)每个中断向量占用4个字节,在这4个字节中,包含着这个中断向量(或这种中断类型)的服务程序的入口地址,其中前两个字节为服务程序的IP,后两个字节为服务程序的CS,例如:INT 25H,在内存的00094H---00095H保存该中断服务程序入口地址IP,00096H---00097H保存该中断服务程序入口地址CS。(图示表达此意思即可)
1,8088的中断系统是如何构成的?2,为什么使用中断技术?3,中断处理过程以及CPU进入中断服务程序的过程,4,中断向量表的作用
1,中断系统是由系统响应及中断处理过程组成2,当CPU与外设工作不同步时,很难确保CPU在对外设进行读写操作时,外设一定是准备好的。为确保数据的正确传输,CPU而已主动的查询外设以确定其工作状态,但这样会使CPU效率降低,为解决上述问题,引入中断技术3,上题1,顺序:中断源识别---中断优先级判断---中断嵌套管理---CPU中断响应---中断服务---中断返回4 ,上题2, INTR,NMI有何异同 NMI:引入的是不可屏蔽中断请求,采用边沿触发,高电平有效,中断一旦产生立即锁存,到CPU执行完当前指令后立即响应。该中断的服务子程序的入口地址从偏移地址为“2*4”的中断服务入口地址表中的到,并直接专区执行服务,CPU不进入INTA周期。主要处理系统的意外和故障,如电源掉电,存储器读写错或受到严重的干扰
INTR:引入的是可屏蔽中断请求,电平触发,高电平有效。此中断发生后,CPU在当前指令执行后,首先检测标志寄存器的IF标志位时候置“1”,若“IF=1”CPU才能响应这一类中断,并通过INTA管脚向产生中断请求的中断源发送两个中断响应负脉冲,若“IF=0”则屏蔽所有此类中断。此类中断要求提出中断的设备提供其长度为8位的中断类型号,在受到第二个INTA负脉冲时送到数据总线即可。该中断的服务子程序的入口地址也通过从偏移地址为“中断类型号*4”的中断服务入口地址表中得到,然后再转去服务。 为什么要插入Tw以及如何处理这种情况?
为了解决快速CPU与任何速度的存储器或I/O设备之间传递速度的时序配合,【当CPU对存储区活I/O设备进行操作时,若到数据未准备好时,可用一个产生Ready信号的电路,使在T3和T4之间产生1个或几个Tw来解决时序配合问题,在T3周期开始采样Ready信号,若其为低,则表示被访问的存储器或I/O设备未准备好,则在T3结束之后不进入T4,而插入一个Tw状态,以后再每个Tw周期前沿采样Ready线,直至Ready便有有效(高电平)时Tw周期才结束,进入T4周期,完成数据传送】 ROM概念:(1)掩膜型ROM(MROM):用掩膜工艺制造,用定做的掩膜对存储器进行编程,一旦制造完毕,内容固定不能修改(2)可编程ROM(PROM)由厂家生产出“空白”存储器,用户根据需要,采用特殊方法写入程序和数据,对存储器进行编程,但只能写入一次,写入信息固定,不能更改(3)可擦除的PROM(EPROM)这种存储器可由用户按规定的方法多次编程,可用紫外线灯制作的擦抹器照射15min后芯片中的信息被擦除,成为块干净的EPROM,可再次写入信息(4)电擦除的EPROM(EEPROM)能用特定的电信号以字节为单位进行擦除和改写(5)FLASH MEMORY
SRAM,DRAM的工作原理,掌握为什么DRAM需定时刷新 DRAM:写入操作时选择信号“1”,讲数据线上的信息经过导通的Q1存入分布电容Cg中,若数据线上写入的信息为1,则Cg被充电为高电平,若数据线上的信息为0,则Cg被放电为低电平。读出时,根据行地址译码,使某一行选择线为高电平本行上所有的基本存储电路中的管子Q导通,连在每一列上的刷新放大器读取对应存储电容Cg上的电压值【因为依靠
寄生电容存储电荷来存储消息,由于电容C上电流的泄露现象,使电容C上的电荷只能保持一段时间,信息在一定时间内会自然丢失,故必须定时刷新,刷新时间通常为2ms其作用是使原来处于“1”状态的电容得到电荷补充,而原来处于“0”状态的电容维持“0”状态】 SRAM:RAM采用由6个晶体管组成的触发器电路组成一个二进制信息的存储单元,写入时,当x行地址线和y列地址线选中SRAM六管存储电路,则T5--T8导通,若写入数据D=1,持续不变,即存储了一位信息“1”,读出时,当六管存储器电路存储了信息“1”,则A=1,D=1,信息被读出
掌握线性选择和地址译码法(线选,部分译码,全译码)以及产生地址的特点(是否连续)优缺点
片选控制方法:1,线选法:除将低位地址直接接到片内地址线外,将其余的高位地址线分别直接作为各个存储器芯片的片选控制信号,而不需要复杂的逻辑译码电路(这些片选地址线在每次寻址时只能有一位有效,不能同时有多位有效)节省译码电路,但是必须要注意他们的地址分布,以及各自的地址重叠区,且不连续2,部分译码法:存储器芯片的地址线与微机系统总线的地址线依次相接后,剩余的高位地址仅用一部分参加译码,缺点:使存储器芯片的地址空间有重叠,造成了存储器空间的资源浪费,优点:译码电路简单,适用于大容量的RAM的连接,连接是连续的3,全译码法:M芯片的地址线和微机系统的地址线依次相接后,剩余的高位地址线全部参加译码。优点:M芯片上的地址空间唯一确定,连接是连续的。缺点:译码电路相对复杂 计算机内部结构
EU单元中包括4个16位通用寄存器,AX,BX,CX,DX,AX为累加器,BX为基址寄存器,CX为计数寄存器,DX为数据寄存器。2个16位指针寄存器SP和BP,SP用来存放现行堆栈段内偏移地址,并具有步进加1和减1的功能,称为堆栈指针,BP称为基址指针。2个变址寄存器为SI和DI,SI用来寄放源操作数段内偏移量,DI用来存放目标数段内偏移量。BIU单元有4个段寄存器CS,DS,SS和ES,CS用来存放当前代码段的基地址,DS用来存放当前数据段的基地址,SS用来存放堆栈段的基地址,ES用来存放当前附加段的基地址。 ---------------------------------------------------------------------------------------------------------------------- 汇编
编程实现模拟计算机开机密码输入过程,即显示i Please input(1-6)password:i,等待用户输入密码(1--6位),即在用户在输入不足6位密码时,敲回车即停止输入,每输入一个字符显示一个i*i,要求把输入的口令简单加密后存储在buffer为起始单元的内存区域,密码加密的方法为把输入字符ASCII码循环左移3位,例如字符i0i,ASCII码为30H,要求存储信息为81H,请书写汇编语言源程序 DATA SEGMENT MOV DS,AX INFO DB \"Please input(1-6)password:\ MOV ES,AX BUFFER DB 6 DUP(?) LEA BX,BUFFER DATA ENDS MOV AH,09H CODE SEGMENT LEA DX,INFO ASSUME INT 21H CS:CODE,DS:DATA,ES:DATA MOV DI,06H MAIN PROC FAR INPUT1:MOV AH,07H BEGIN: PUSH DS INT 21H MOV AX,0000H CMP AL,0DH PUSH AX JZ OVER MOV AX,DATA MOV CL,03H
ROL AL,CL JNZ INPUT1 MOV [BX],AL OVER:MOV AH,4CH MOV DL,\"*\" INT 21H MOV AH,02H RET INT 21H MAIN ENDP INC BX CODE ENDS DEC DI END BEGIN
编程实现从键盘键入20个以内的字符,并换行显示 DATA SEGMENT MOV AX,DATA MOV DL,0AH DATA ENDS MOV DS,AX LOOP P0 CODE SEGMENT MOVE CX,20 RET ASSUME CS:CODE,DS:DATA P0: MOV AH,01H MAIN ENDP MAIN PRO FAR INT 21H CODE ENDS START:PUSH DS MOV AH,02H END START MOV AX,0 MOV DL,0DH PUSH AX INT 21H
第二个实验
DATA SEGMENT MOV CL,5 STOSB FI DB '34567' CLD DEC CL SE DB '76543' CLC JNZ CICLE TH DB 6 DUP(?) PUSHF MOV AL,0 DATA ENDS CICLE:LODSB POPF CODE SEGMENT SUB AL,30H ADC AL,0 ASSUME MOV BL,[SI+4] AAA CS:CODE,DS:DATA,ES:DATA SUB BL,30H ADD AL,30H MAIN:MOV AX,DATA POPF STOSB MOV DS,AX ADC AL,BL CODE ENDS MOV ES,AX AAA END MAIN LEA SI,FI PUSHF LEA DI,TH ADD AL,30H
第三个实验 程序功能:键盘输入定长数字字符串做加法并显示结果 Data segment Assume cld first db 6,7 dup(?) cs:code,ds:data Clc second db 6,7 dup(?) main:mov ax,data Pushf third db 6 dup(?),'$' Mov ds,ax Read:lodsb firs db 'the first data=','$' mov es ,ax And al,0fh secon db 'the second data=','$' call input mov bl,[si+7] result db 'the result data=','$' Lea si,first+2 And bl,0fh Data ends Lea di,third popf Code segment Mov cl,5 Adc al,bl
Aaa Pushf or al,30h
Stosb Loop read int 21h mov ah,09h mov ah,4ch int 21h int 21h mov dx,offset second input proc near mov ah,0ah push dx int 21h Mov al ,0 Popf Adc al,0 or al,30h Mov [di],al
mov dx,offset result mov ah,09h int 21h mov dx, offset third mov ah,09h
mov dx,offset firs mov ah,09h int 21h mov dx,offset first mov ah,0ah int 21h mov dl,0ah mov ah,02h int 21h
mov dx,offset secon
mov dl,0ah mov ah,02h int 21h pop ax ret input endp code ends end main
因篇幅问题不能全部显示,请点此查看更多更全内容