《微机原理知识点整理.docx》由会员分享,可在线阅读,更多相关《微机原理知识点整理.docx(8页珍藏版)》请在三一办公上搜索。
1、实现CPU与存储器和UO接I I之间的数据传送。8086/8088微处理器的编程结构编程结构:是指从程序员和使用者的角度 看到的结构,亦可称为功能结构。从功能 上来看,8086CPU 4分为两部分,即总线 接口部件BIU和执行部件EUo总线接口部件(BIU )组成:段寄存器(DS、CS、ES、SS)16 位指令指针寄存器IP(指向下一条要取出 的指令代码);20位地址加法器(用来 产生20位地址);6字节(8088为4字节)指令队列缓冲器;总线控制逻辑。功能:负责从内存中取指令,送入指令队列,执行部件(EU )组成:ALU (算术逻辑单元);数据寄存器(AX、BX、CX、DX);指针和变址寄存
2、器(BP、SP、SI、DI);标志寄存器(PSW):EU控制系统。 功能:负责分析指令和执行指令。BIU和EU的动作协调原则BIU和EU按以下流水线技术原则协调工作,共同完成所要求的任务: 每当指令队列中有两个空字节,BIU就会自动把指令取到指令队列中。其取指的顺序是按指令 在程序中出现的前后顺序。 每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,然后用几个 时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者UO端II,那么EU就会请 求BIU,进入总线周期,完成访问内存或者UO端I I的操作:如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如B
3、IU正将某个指令字节取到指令队列中,则BIU将首先完成这个取 指令的总线周期,然后再去响应EU发出的访问总线的请求o 当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。 在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中mM 途AI碰锹,宇I/OAL字节第字节除字节I/O,卜邀博倒AHBXa植作,咐敷a变嘛,碱制DXm学节麻瞰Vo已经装入的字节被自动消除,BIU会接着往指令队列装入转 向的另一程序段中的指令代码。8086/8088内部的寄存器可以分为通用寄存器和专用寄存器通用寄存器包括数据寄存器、指针和变址寄存器,两大类,数据寄存器(AX、BX、
4、CX、DX): 4以存放16位的操作数,也可分为8个8位的寄存器(AL、AH; BL、BH; CL、CH; DL、DH)来使用。其中AX称为累加器,BX称 为基址寄存器,CX称为计数寄存器,DX称为数据寄存器,这些寄存器在具体使用上有一定的差别。 指针寄存器:SP和BP,其中SP是堆栈指针寄存器,由它和堆栈段寄存器SS一起来确定堆栈在内 存中的位置:BP是基数指针寄存器,通常用于存放基地址。变址寄存器:系统中有两个16位的变址寄存器SI和DI,其中SI是源变址寄存器,DI是目的变址 寄存器,都用于指令的变址寻址方式。专用寄存器包括段寄存器、指令指针和标志寄存器。段寄存器:系统中共有4个16位段
5、寄存器,即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器 SS和附加段寄存器ESo这些段寄存器的内容与有效的地址偏移量一起,可确定内存的物理地址。 通常CS划定并控制程序区,DS和ES控制数据区,SS控制堆栈区。指令指针寄存器指令指针寄存器IP:用来控制CPU的指令执行顺序,它和代码段寄存器CS-起可以确定当前所要 取的指令的内存地址。顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取廿 七 Tn 滴疝h* 亦七止Eftr+i Mi也 令 住毛攵 iU厂c tn Tn 曰 心* 亦114 A* 冶由dZl叫玉垠序JU37节 4321 O J S 丁转 | |OF | DF
6、 | 工 F | TF | 5F | NF |f| OF |标志寄存器PSW:用来存放CPU在工作过程中的状态。共有9个标志位。可分成两类:一类为状态 标志,一类为控制标志。其中状态标志表示前一步操作(如加、减等)执行以后,ALU所处的状态, 后续操作可以根据这些状态标志进行判断,实现转移;控制标志则可以通过指令人为设置,用以对 某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。 敷据专存83地址指针和变址寄存器 控制奇存器 段寄行器广演用专存S310. 8086CPU由哪两部分组成?它们的主要功能各是什么?它们之间是如何协调工作 的?11 .8086CPU中
7、有哪些寄存器?各有什么用途?标志寄存器PSW有哪些标志位?各在 什么情况下置位?128086系统中储存器的逻辑地址和物理地址之间有什么关系?表示的范国各为多 少?13 .已知当前数据段位于储存器的A1000H到B0FFFH范围内,问DS= ?14 .某程序数据段中存有两个数据字1234H和5A6BH ,若已知DS=5AA0H ,它们的偏移地址分别为245AH和3245H ,试画出它们在储存器中的存放情况。MOVMOVROL立即寻址方式MOV AH, 80HMOV ECX, 123456HMOV Wl, 3456H寄存器寻址方式AX, BX;ESI, EDI;AH, 1;ADD AX, 1234
8、HMOV Bl, 12HADD DI, 32123456HMOV CL, DL;INC CX;MOVMOVMOV这里ES是段超越前缀,所以源操作数是在ES*10H+2000H的内存单元中。MOV 3000HL AL;目的操作数采用直接寻址,将AL送DS*10H+3000H的内存单元。立即寻址MOVAX, 3069H寄存器寻址MOV AL, BH直接寻址寄存器间接寻址MOV AX, BXMOVAX, 2000HMOVMOVMOVMOV40H, AL (X)AH, BX (X)AX, VALUE ( X )AX, CX ( X )MOVMOVMOVAH, 3064H (X )CS, AX (X)A
9、X, WORD PTR VALUE S )寄存器相对寻址 MOV AX, COUNT SI MOV AX, COUNT+SI基址变址寻址MOV AX, BP DI MOV AX, BX BP ( X )相对基址变址寻址MOV AX, MASKBX SIMOV DS, ES(1) MOV(5) PUSH(9) INCMOV AX, SIEDI (X)(X ) MOVCS, 1000HCSSIDS,2000H(2) ADC(6) MOV(10) MOV(X)BX, 25H(3) ADD BX, 20(4) MUL AX, BLDX, 2000H (7) ADD BX+SI, 30H (8) POP
10、 CS BX, SI直接寻址方式若DS=4000H,则此指令式将数据段中物理地址为42000H单元的内容传送AL寄存器。例: AL, 2000H; DS*10H+2000H送 AL;AX,2000H; DS*10H+2000H送 AL, DS*10H+2000H+l送 AH;AL, ES:2000H;解:(1)错误 (2)正确(3) 错误 (4)错误 (5)正确(6)正确 (7)错误 (8)错误 (9)错误 (10)错误屏蔽AL的第0、1两位置AL的第5位为1使AL的第0、1位变反测试某些位是。是1AND AL, OFCHOR AL, 20HXOR AL, 3 TEST AL, 1 JZ EV
11、EN有100个学生的计算机课程成绩存放在COMPUT缓冲区中,编写指令序列统计85分以上、6085 分、60分以下各有多少人.并把统计结果存入ORDER开始的三个字节单元中。解:LEASI, COMPUTAGAIN: MOVAL, SIGE85:CMP AH, 5MOV CX,100CBWJGERANGE1MOV BL, 10IDIVBLRANGE2: INC DLMOV BH,0CMPAL, 9JMPNEXTMOV DX,0JGERANGE 1RANGE1: INC DHCMP AL,8JEGE85NEXT:INC SICMP AL,6JGERANGE2LOOPAGAININCBHMOVOR
12、DER, DHJMPNEXTMOVORDER+b DLMOVORDER+2, BHHLT编写子程序,将从键盘输入的小写字母用大写字母在屏幕显示出来,如不是字母则结束。解:CODESEGMENTNEXT:MOV AH, 1MOVDL, ALASSUME CS:CODEINT21HMOVAH, 02HKEYINPROC FARCMPAL, 61HINT21HPUSHAXJBEXITJMPNEXTPUSHDXCMPAL, 7AHPOPDXJAEXITPOPAXSUBAL, 20HRETKEYIN ENDPCODE ENDSEND KEYIN6. 13编写子程序,要求从键盘输入一个4位的十六进制数,然
13、后将其转换成二进制数并在屏幕上DECI:SUBAL, 30HDISPL:PUSH AXMOVCL,4MOVAH, 2SHLAL,CLINT21HMOVCX,4POPAXL00P1:SHLAL, 1LOOPL00P1JCONEINCBLMOVDL,30HINCSIJMPDISPLCMPBL, 0ONE:MOVDL, 31HJNZAGAIN4、显示出来。DATPROSEGMENT2、START:MOVAX, DATPRO 3、AGAIN::MOV AL, SIBUFFDB 5MOVDS, AXCMPAL, 30HDB ?LEADX, BUFFJBEXITDB 5DUP (?)MOVAH, OAHC
14、MPAL, 39HDATPROENDSINT21HJBEDECIPROSEGSEGMENTMOVBL, LBUFF+1CMPAL, 61HASSUMECS: PROSEG, DS: DATPROLEASI, BUFF+2JBEXITCMPAL, 66HJAEXITSUBAL, 27H1、EXIT: MOV AH, 4CHINT 21HPROSEG ENDSEND START7.1什么是中断?中断有什么作用?解:中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU 暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处 继续执行或调度
15、新的进程执行的过程。利用中断,计算机可以较好的实现CPU与外部设备之间的同 步工作,进行实时处理,可以大大提高CPU的工作效率。7. 2 8086/8088系统中,中断分为哪几类?解:硬件中断(外部中断);软件中断(内部中断)。硬件中断又可分为:非屏蔽中断、可屏蔽中断。7.3 8086/8088CPU 中断请求和中断响应信号是什么?解:INTA7.4中断标志IF的作用是什么?解:IF中断标志位,IF=1表示允许CPU响应可屏蔽中断。7.5什么是中断向量?中断向量表解:中断向量是中断服务程序的人口地址。中断向量表是将各个中断服务程序的入口地址有次序地存放在内存一片连续区域中,所形成的地址 表被称
16、为中断向量表,也称为中断服务程序的入口地址表。7.6中断类型码为50H,则其对应的中断向量存放在哪几个存储单元?解:500H7.7设78H号中断的中断向量为1000:2340H,写出该中断向量在内存中的具体存放情况。解10H00H23H40H7.9 一片8259A 4提供多少个中断类型码?解:8个7. 10 8259A的设定中断优先级方式有几种?各有什么特点?解:全嵌套方式:固定优先级,IR0最高,IR7最低。特殊全嵌套:响应同级中断请求。优先级自动循环:某级被响应后,降为最低。优先级特殊循环方式:编程指定最低优先级。7. 12 8259A屏蔽中断源的方式有几种?各有什么特点?解:(1)普通屏
17、蔽方式:WR某位置1,对应的中断被屏蔽;IMR某位置0,允许该级中断产生。(2)特殊屏蔽方式:IMR某位置1,同时使ISR的对应位复位以屏蔽本级中断,开放较低级别中断。7.13 8259A连接数据总线的方式有几种?各有什么特点?解:缓冲方式:在多片8259A级联的大系统中,8259A通过总线驱动器与系统数据总线相连。非缓冲方式:在只有单片8259A或片数不多8259A时,将8259A直接于数据总线相连。7. 14 8259A的中断请求触发方式有几种?各有什么特点?解:边沿触发方式:上升沿作为中断请求信号,IR出现上升沿信号后,可一直保持高电平。电平触发方式:高电平作为中断请求信号,但必须在E0
18、I命令或CPU开放中断之前撤除高电平。7.15在8259A中,通过奇地址访问的寄存器有几个?通过偶地址访问的寄存器有几个?解:(1)奇地址四个:ICW2、ICW3、ICW4 0CW1(2)偶地址三个:ICW1、OCW2、0CW37. 16 8259A初始化时设置为非中断自动结束方式,编写中断服务程序时应注意什么?解:需要8086发命令清除ISR中级最高的位或其他指定的位,才可以产生中断。7. 17 8259A初始化的过程如何?解:(1)顺序逻辑复位,准备按ICW2, ICW3, ICW4的顺序接收初始化字;(2)清除 ISR 和 IMR;(3)指定优先级次序为IRO、IR1;(4)从片的地址设
19、置为7;(5)设定为普通屏蔽方式;(6)设置为非自动中断结束方式;(7)状态读出电路预置为IRR。7. 18外设向CPU提出中断申请,但没有得到响应,其原因有哪些?解:(1)中断请求被屏蔽(2)中断不是开放的或者是允许的(3)在现行指令的结束后才响应中断7. 20写操作命令字实现禁止8259A的IR0和IR7引脚的中断请求,然后撤消这一禁止命令。设8259A 的端口地址为200H、202Ho解:MOV AL, 110000001BMOV DX, 200HOUT DX, ALMOV AL, 100000000BOUT DX, AL一个完整的中断过程包括那几个阶段?其中哪些步骤由系统自动完成?哪些
20、环节由用户完成?解:一个完整的中断过程由中断请求、中断响应和中断处理3个阶段组成。一次中断处理过程通常要经过如下几个步骤完成:1中断请求:由中断源发出并送给CPU的控制信号。2关中断:保证在此之后的一小段时间内CPU不能响应新的中断请求。3保存断点,保护现场:用中断隐指令实现。断点和现场信息一般保存在堆栈中,保存信息一定要 完整完成,以保证被停下来的程序得以继续正常运行。4判别中断源,转中断服务:找出中断服务程序的入口地址.多个中断源时找出中断优先级最高的 中断源。5开中断,以便尽快地进入可以响应更高级别中断请求的运行状态。6若有更高级别中断请求到来,则进行新的中断响应过程。7执行中断服务程序
21、,完成后准备返回主程序,为此,执行关中断。8恢复现场,恢复断点。9开中断。关中断和开中断是为了保证能完整的恢复现场的操作。开中断之后,若有更高级别中断 请求来到,则进入新的中断响应过程。10返回断点。其中第3与第8步由系统自动完成,2, 4, 5, 7, 9, 10步由用户完成。9.11设8255A的地址范困是100H103H,试编写分别完成下列功能的初始化程序。(1) A 口工作于方式0、输入;BI工作于方式0、输出;PC7输入、PC0输出。(2) A 口工作于方式1、输出,PC7、PC6输入;Bl工作于方式0、输入:PC2输入。解:(1) MOV AL.98H(2) MOVAL,0ABHM
22、OV DX,103HMOV DX,103HOUT DX,ALOUT DX,AL使用8255A与打印机接口的示意图如图9-38所示。当A15A2=10100011010101时,译码器输出 为0。编写程序将存储单元BUF的内容送打印机打印。(BUSY为1表示打印机忙,PC7输出一个 负脉冲启动打印。)解:MOV DX.0A357HMOVALJOOOOOOIB OUT DX,AL MOVALOOOOllllB OUT DX,AL PRINTC PROCPUSH AXPUSH DXPRN:MOV DXRA356HIN AL,DXAND AL,04HJNZ PRNMOV DX.0A354H MOV AL,AH OUT DX,AL NOP NOPMOVAUOOOOllllB OUT DX,AL POPDXPOP AX RET在内存Score缓冲区 中存被有100个学生 的成绩嗷1据,为无 符号字节数。分别 统计各个分嗷1 段的 人数,分别存储在 NOTPASSED、 PASSED. GOOD、 BETTER . BESToCMP SCOREBX,90 JBNEXTINC BEST;if= 90, Best!JMPDONENEXT: CMPSCOREBX.80:If got here, must =80, BelterJMPDONEPRINTC ENDP 例子: