微机原理——期末总复习资料.doc_第1页
微机原理——期末总复习资料.doc_第2页
微机原理——期末总复习资料.doc_第3页
微机原理——期末总复习资料.doc_第4页
微机原理——期末总复习资料.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

微计算机组成的五个部分:运算器,控制器,存储器,输入设备,输入设备。微计算机的工作原理:第一步:由输入设备将事先编好的程序和原始数据输入到存储器指定的单元存放起来。并在存储器中或出存放中间结果和最终结果的单元。第二步:启动计算机从第一条指令开始执行程序。第三步:将最终结果直接由运算器或存储器经输出设备输出。第四步:停机。8086微处理器的内部结构:从功能上讲,由两个独立逻辑单元组成,即执行单元EU和总线接口单元BIU。1、 执行单元EU包括:4个通用寄存器(AX,BX,CX,DX,每个都是16位,又可拆位2个8位) 4个从专用寄存器(BP,SP,SI,DI) 标志寄存器FLAG(6个状态标志和3个控制标志) 算术逻辑单元ALU EU功能:从BIU取指令并执行指令;计算偏移量。2、 总线接口单元BIU包括:4个16位段寄存器(CS,DS,ES,SS)16位指令指针寄存器IP 20位地址加法器 6字节(8088位4字节)的指令队列BIU功能:形成20位物理地址;从存储器中取指令和数据并暂存到指令队列寄存器中。3、执行部件EU和总线接口部件BIU的总体功能:提高了CUP的执行速度;降低对存储器的存取速度的要求。8086/8088CPU内部寄存器:设置段寄存器原因:8086/8088系统中,需要用20位物理地址访问1MB的存储空间,但是8086/8088CPU的每个地址寄存器都只是16位,因而采用分段存储结构,每个逻辑段的最长度为64KB。 8086MNMX 引脚作用:选择工作模式。MNMX1为最小模式;MNMX0为最大模式。段内偏移地址又称为有效地址EA。存储单元地址(以字节为单元)分为逻辑地址和物理地址。逻辑地址段基址(16):偏移地址(16)CS:IPDS10H+SI/DI/BX物理地址PA段基址10H+偏移地址EA SS10H+SP/BPCS10H+IPI/O端口地址:I/O空间不分段。 8086用16条AB,I/O空间为64KB。 8088用10条AB,I/O端口为1024个字节端口。 8086/8088采用独立编制方式,采用IN,OUT指令。8086/8088指令寻址方式: 1、隐含寻址2、立即寻址:MOV BL,50H ;将8位立即数50H传送到寄存器BL中。MOV AX,2000H ;将16位立即数2000H传送到累加器AX中。3、寄存器寻址:MOV BX,CX ;将CX寄存器中的内容复制到BX中。MOV DS,AX ;将AX中的内容复制到DS段寄存器中。4、存储器寻址: 直接寻址:MOV AX,DS:2000H 或MOV AX,2000H;将存储器中逻辑地址DS:2000H字节单元的内(求出的物理地址所对应的单元内容)传送到AX。 寄存器间接寻址:MOV AX,BX或BP或SI或DI; 内存放的是AX所需数据的有效地址。所以是先求物理地址,再将它所对应的单元内容传送到AX。寄存器相对寻址 :MOV AX,BX+5或MOV AX,5BX;先求物理地址,再将它所对应的单元内容传送到AX。MOV AX,DATABX或MOV AX,BX+DATA;基址变址寻址:MOV AX,BX/BPSI/DI或MOV AX,BX/BP+SI/DI;同上相对基址变址寻址:MOV AX,1234H BX+SI或MOV AX,BX+SI+1234H;同上 MOV AX,DATE BX+SI或MOV AX,BX+SI+DATE;同上8086/8088指令系统:331 数据传送类指令:1、通用传送指令(1)一般传送指令MOV(2)数据交换指令XCHG 指令格式:XCHG DST, SRC;XCHG REG/M,REGXCHG REG, REG/M例:实现存储单元MEM1和MEM2之间内容交换的几种方案。MOV AX, MEM1XCHG AX, MEM2MOV MEM1,AX(3)入栈、出栈指令PUSH、POP PUSH(入栈)指令:将需要暂存的信息压入堆栈。指令格式:PUSH src;例句:PUSH AXPUSH CSPUSH DATESI POP(出栈)指令:将信息从堆栈中弹出恢复到原处。指令格式:POP DST例句:POP BXPOP ESPOP MEMDIPUSH CS指令是合法的,但POP CS是非法的。 堆栈操作的特点:先进后出或者后进先出 堆栈操作过程,改堆栈指针SP。 入栈,SP减2,使SP始终指向栈顶。例句:PUSH AX;SPSP-2,SPAL,SP+1AH出栈,SP加2,使SP始终指向栈顶。例句:POP BX;SPSP+2,SPBL,SP+1BH(4)查表转换指令XLAT指令格式:XLAT SRC-TAB XLAT TAB; 表格在DS段XLAT; 表名无实际意义,可缺省XLAT ES:TAB;表格在ES段2、输入、输出指令IN、OUT(1)指令IN指令格式:IN 累加器,端口地址IN AC,PORT; 例句:IN AL,20H;从20H端口输入一个字节至ALIN AX,20H;从20H和21H端口输入一个字至AXIN AL,DXIN AX,DX(2)输出指令OUT指令格式:OUT 端口地址,累加器OUT PORT,AC例句:OUT 20H,AL;将AL中一字节输出到端口OUT 20H,AX;将AX中一个字输出到端口3、目的地址传送指令LEA LEA将16位有效地址装入通用寄存器。 指令格式:LEA Reg,Mem16; Reg通用寄存器,Mem存储器操作数例句: LEA SP,0500H; SP0500HLEA BX,BX+SI+06H;BXBX+SI+06HLEA BX,AREA; AREA是变量名332 算术运算类指令8位二进制:有符号128+127;无符号025516位二进制:有符号32768+32767;无符号065535有进位:CF=1。有溢出:OF=11、加法指令(1)不带进位加法指令ADD指令格式:ADD Acc,dataADD mem/reg1,dataADD mem/reg ,mem/reg2举例:MOV CL,0E5H;CL=0E5H ADD CL,0A4H;CL=0E5H+0A4H=89H(2)带进位加指令ADC指令格式:ADC mem/reg,data ADC mem/reg1,mem/reg2例句: ADC AL,78H; ALAL+78H+CF ADC AX,CX; AXAX+CX+CF ADC BX,WORD PTRDI;BXBX+DI+1DI+CF(3)加1指令INC程序段如下: MOV CX,4; 设置循环次数为4 MOV SI,0; 将SI的初值设置为0 CLC; 将进位标志CF清零LOP:MOV AL,BUF2SI; 取BUF2存储区0号单元内容到AL ADC BUF1SI,AL ; 带进位加 INC SI; SISI+1 修改操作数地址 DEC CX; CXCX-1 修改循环次数 JNZ LOP; 若(CX)0,则转LOP,程序将再执行一次HLT2、减法指令(1)不带借位减法指令SUB (该指令影响标志位)指令格式: SUB DST,SRC; SUB MEM/REG, DATA SUB MEM/REG1, REG2 指令功能: DST DSTSRC(2)带借位减法指令SBB (本指令主要用于多字节数减法运算)指令格式: SBB DST,SRC SBB MEM/REG1,MEM/REG2指令功能: DST DSTSRCCF例句: SBB AX,CX; AXAXCXCF SBB WORD PTR SI,2050H; SI+1SI SI+1SI2050HCF SBB SI,DX; SI SIDXCF(3)减1指令DEC (该指令对进位位CF无影响)指令格式: DEC DST DEC MEM/REG指令功能: DST DST1例句: DEC BYTE PTR DI+2 (4)求补指令NEG (本指令的操作是用“0”减去目的操作数,结果送回目的操作数)指令格式: NEG DST NEG MEM/REG指令功能: DST 0DST(5)比较指令CMP(完成两个操作数的相减,可用来比较两数是否相等。常用于分支程序设计及循环程序设计中。)指令格式:CMP DST,SRC指令功能:DSTSRC 两个操作数相减,但不回送结果,只置标志位例句 CMP AL,0AH CMP CX,SI CMP DI,WORD PTR BXSI;3、 乘法指令被乘数隐含在AL或者AX中。8位*8位:16位乘积在AX中,AH为高8位,AL为低8位。16位*16位:32位乘积中,低16位在AX中,高16位在DX中。(1)无符号数乘法指令MUL指令格式:MUL SRCMUL MEM/REG例句: MUL CX; DX:AXAX*CX MUL WORD PTR SI ; AX内容与SI所指字单元内容相乘程序段如下:MOV AX,4802H MOV BX,503AH MUL BX MOV 0510H,AX MOV 0512H,DX4、除法指令 被除数隐含在AX(字节除)或者DX:AX(字相除)中。 被除数的字长必须两倍于除数。 字节除:AC/SRC(8位),8位商在AL,余数在AH。 字相除:DX:AX/SRC(16位),16位商在AX,余数在DX(1)无符号数除法指令DIV 指令格式: DIV SRC; DIV MEM/REG; 例句:DIV DL DIV WORD PTR SI5、扩展指令:指令格式:CBW; 字节扩展成字 将AL的符号位扩展到AH中,即将AL 的b7复制到AX的b15b8。CWD; 字扩展成双字 将AX的符号位(b15)复制到DX的b15b0。例:写出34H25H的指令段 解:指令段: MOV AL,34H MOV BL,25H CBW IDIV BL ; AL=01H AH=0FH333 逻辑运算和移位循环指令1、 逻辑运算指令:(1) 逻辑“与”AND 格式:AND dest, src用途:保留操作数的某几位,清零其他位。 例: AND AL,0FH; 高4位清0,低4位保留 AND AL,0F0H; 低4位清0,高4位保留(2) 逻辑“或”OR格式:OR dest, src用途:对操作数的某几位置1;对两操作数进行组合。 例:OR AL,80H; 使AL最高位置1,其余不变 OR AL,BL; AL同BL组合 OR AL,00100000B; 把AL的第5位置为1(3) 逻辑“非”NOT 格式:NOT mem/reg 例:NOT AL; 若ALFBH,执行后则AL04H(4) 逻辑“异或”XOR格式:XOR dest, src用途:对reg清零(自身异或)、把reg/mem的某几位变反(与1异或) 例1:把AX寄存器清零: MOV AX,0 XOR AX,AX AND AX,0 SUB AX,AX 例2:把CL内容变反: XOR CL,0FFH(5) 测试指令TEST指令格式:TEST DST,SRC TEST MEM/REG1,REG2/MEM TEST MEM/REG,DATA 例句: TEST AL,80H ; 检测AL最高位,判断正/负特性 TEST BL,01H ; 检测BL最低位,判断奇/偶性 TEST CL,05H ; 检测CL第0,2位是否全为02、移位循环指令(1)非循环移位指令:逻辑左移指令SHL无符号,最低位补0逻辑右移指令SHR无符号,最高位补0算术左移指令SAL有符号,最低位补0,不保存符号位算术右移指令SAR有符号,保存操作数符号位不变这4条指令的格式相同,以SAL为例: 结果未溢出时:左移1位操作数*2、右移1位操作数/2(2)循环移位指令不含进位位的循环左移指令ROL不含进位位的循环右移指令ROR含进位位的循环左移指令RCL含进位位的循环右移指令RCR 334 串操作指令(1)串传送MOVS:指令格式:3种MOVS DST,SRC; 将字节或者字数据从存储器某个区域传送到另一个区域MOVS BUF1,BUF2; BUF1为ES段中目的字符串存储单元符号地址 BUF2为DS段中源字符串存储单元符号地址MOVSB; 字节传送,不使用操作数MOVSW; 字传送,不使用操作数(2)无条件重复REP CXCX1,CX0 时重复执行串操作335控制转移类指令 (1) 无条件转移指令 JMP 段内直接转移:JMP disp 指令中给出的8/16位的位移量加到IP。CS保持不变。 段内间接转移:JMP reg/mem reg/mem中的16位偏移地址送IP。CS保持不变。 段间直接转移:JMP segment:offset 指令中给出的16位的段和16位的偏移地址送到CS和IP。 段间间接转移:JMP mem32 mem32中的16位的段和16位的偏移地址送到CS和IP。(2)条件转移指令 书平112和复习资料 (3)循环控制指令LOOP 格式:LOOP label操作:(CX)-1CX; 若(CX)0,则转至label处执行;否则退出循环,执行LOOP后面的指令。(4)调用指令CALL 一般格式:CALL sub; sub为子程序的入口 (5)返回指令RET段内返回指令RET的操作为:恢复子程序执行前IP的内容。段间返回指令RET的操作为

温馨提示

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

评论

0/150

提交评论