您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理补考知识点总结
1/12第一章概述一、计算机中的数制在计算机内部,一切信息的存取、处理和传送都是以二进制编码形式进行的微机组成原理8086微处理器1、8086CPU使用16根地址线访问I/O端口,最多可访问216=64K个字节端口,使用20根地址线访问存储单元,最多可访问220=1M个字节单元。类似这种类型的反过来的题目也应该会做:已知可寻址的内存空间最大为16MB,CPU的地址总线至少应有24条2、8086CPU由哪几个部分组成?各个部分完成的什么工作?如何协调工作?3.8086和8088的主要区别是什么?4、寄存器结构8086微处理器包含有14个16位的寄存器和8个8位寄存器。4个通用寄存器(AX,BX,CX,DX)4个段寄存器(CS,DS,SS,ES)4个指针和变址寄存器(SP,BP,SI,DI)4)、指令指针(IP)16位指令指针寄存器,其内容为下一条要执行的指令的偏移地址。5)、8086的标志寄存器FLAG按其作用可分为哪两大类。(1)状态标志位(2)控制标志位在8086的16位标志寄存器中,并不是每一位都有一定的含义,只有9位有含义,其余7位未用。标志寄存器中的中断标志位IF是控制可屏蔽中断的标志。IF=1时,CPU响应中断请求;IF=0时,CPU屏蔽中断请求,不予响应2/121、8086有14个16位寄存器和8个8位寄存器,其中哪两个寄存器保存了下一条要执行的指令所在单元的物理地址。CS,IP物理地址PA(PhysicalAddress)。8086的存储空间物理地址范围是00000H~FFFFFH其计算方法是:将CPU中的16位段寄存器内容左移4位(×16)与16位的逻辑地址(又称偏移地址)在地址加法器内相加,得到所寻址单元的20位物理地址。假设(CS)=0FE00H,(IP)=0400H,那么下一条要取出的指令所在内存单元的20位物理地址PA=0FE00H×10H+0400H=0FE400H。逻辑地址1F80:2000对应的物理地址是21800H。5、8086的引脚及其功能若8086CPU引脚状态是M/IO#=0,RD#=1,WR#=0,则此时执行的操作是写I/O6、CPU执行指令时涉及三种周期:时钟周期、总线周期、指令周期三者关系:一个基本的总线周期至少由4个时钟周期组成(T1、T2、T3、T4)。指令周期是由1个或多个总线周期组合而成。8086CPU在读/写总线周期的T3状态结束对READY线采样,如果READY为低电平,则在T3与T4状态之间插入等待状态TW。第三章8086指令系统第一节8086寻址方式一、数据寻址方式指令的格式:操作码目的操作数,源操作数例:MOVAL,19H其中AL为目的操作数,19H为源操作数1、立即寻址操作数(为一常数)直接由指令给出(此操作数称为立即数)立即寻址只能用于源操作数例:3/12MOVAX,1800H立即寻址指令执行速度最快2、寄存器寻址(1)操作数放在某个寄存器中(2)源操作数与目的操作数字长要相同例:MOVAX,BX3、直接寻址(1)指令中直接给出操作数的16位偏移地址偏移地址也称为有效地址(EA,EffectiveAddress)(2)默认的段寄存器为DS,但也可以显式地指定其他段寄存器——称为段超越例:MOVAX,[2A00H]4、间接寻址操作数的偏移地址(有效地址EA)放在寄存器中只有SI、DI、BX和BP可作间址寄存器,可以提供偏移地址EA例:MOVAX,[BP]源操作数物理地址为16×(SS)+(BP)。MOVCL,CS:[DI]错误例:×MOVAX,[DX];只有SI、DI、BX和BP可作间址寄存器×MOVCL,[AX];只有SI、DI、BX和BP可作间址寄存器5、寄存器相对寻址EA=间址寄存器的内容加上一个8/16位的位移量例:MOVAX,[BX+8]MOVAX,8[BP];默认段寄存器为SS6、基址变址寻址若操作数的偏移地址:由基址寄存器(BX或BP)给出——基址寻址方式由变址寄存器(SI或DI)给出——变址寻址方式由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移地址,称为基址-变址寻址。EA=(BX)+(SI)或(DI);EA=(BP)+(SI)或(DI)同一组内的寄存器不能同时出现。注意:除了有段跨越前缀的情况外,当基址寄存器为BX时,操作数应该存放在数据段DS中,当基址寄存器为BP时,操作数应放在堆栈段SS中。例:7、相对基址变址寻址在基址-变址寻址的基础上再加上一个相对位移量EA=(BX)+(SI)或(DI)+8位或16位位移量;EA=(BP)+(SI)或(DI)+8位或16位位移量指令操作例:MOV1283H[BX][SI],AX寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较:寻址方式指令操作数形式寄存器间接只有一个寄存器(BX/BP/SI/DI之一)寄存器相对一个寄存器加上位移量4/12基址—变址两个不同类别的寄存器相对基址-变址两个不同类别的寄存器加上位移量例:1、以下指令中,没有错误的是()。A)MOVBYTE[BX],1000B)PUSHCSC)POPCSD)MOVAX,[SI][DI]2、以下几种不同数据寻址方式的指令中,()的指令执行速度最快。A)MOV[2000],1800HB)Mov[SI],1800HC)Movax,1800HD)MOVDS,1800H第二节8086指令系统一、数据传送指令1、通用传送指令(1)MOVdest,src;dest←src(2)、堆栈指令按“后进先出”方式工作的存储区域。①压栈指令PUSH②弹出指令POP例:假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSHAX后,(SP)=0010H2、输入输出指令(1)输入指令IN(2)输出指令OUT二、算术运算指令1、加法指令(1)不带进位的加法指令ADD实例:ADDAL,30H•ADD指令对6个状态标志均产生影响。(1)带进位的加法ADCADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的内容,例如:ADCAL,68H;AL←(AL)+68H+(CF)ADCAX,CX;AX←(AX)+(CX)+(CF)(3)加1指令INC功能:类似于C语言中的++操作:对指定的操作数加1例:INCAL例:执行如下程序:MOVAX,0MOVBX,1MOVCX,100A:ADDAX,BX5/12INCBXLOOPAHLT执行后(BX)=1012、减法指令(1)不考虑借位的减法指令SUB格式:SUBdest,src操作:dest←(dest)-(src)指令例子:SUBAL,60H(2)考虑借位的减法指令SBBSBB指令主要用于多字节的减法。格式:SBBdest,src操作:dest←(dest)-(src)-(CF)指令例子:SBBAX,CX(3)减1指令DEC作用类似于C语言中的”--”操作符。(5)比较指令CMP格式:CMPdest,src操作:(dest)-(src)CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。指令例子:CMPAL,0AH2、乘法指令进行乘法时:8位*8位→16位乘积16位*16位→32位乘积(1)无符号数的乘法指令MUL(MEM/REG)格式:MULsrc操作:字节操作数(AX)←(AL)×(src)字操作数(DX,AX)←(AX)×(src)指令例子:MULBL;(AL)×(BL),乘积在AX中MULCX;(AX)×(CX),乘积在DX,AX中(2)有符号数乘法指令IMUL格式与MUL指令类似,只是要求两操作数均为有符号数。指令例子:IMULBL;(AX)←(AL)×(BL)IMULWORDPTR[SI];(DX,AX)←(AX)×([SI+1][SI])注意:MUL/IMUL指令中●AL(AX)为隐含的乘数寄存器;●AX(DX,AX)为隐含的乘积寄存器;6/12●SRC不能为立即数;即MUL10H错误,10H为立即数●除CF和OF外,对其它标志位无定义。4、除法指令进行除法时:16位/8位→8位商32位/16位→16位商对被除数、商及余数存放有如下规定:被除数商余数字节除法AXALAH字除法DX:AXAXDX(1)无符号数除法指令DIV格式:DIVsrc操作:字节操作(AL)←(AX)/(SRC)的商(AH)←(AX)/(SRC)的余数字操作(AX)←(DX,AX)/(SRC)的商DX)←(DX,AX)/(SRC)的余数指令例子:DIVCL(2)有符号数除法指令IDIV格式:IDIVsrc操作与DIV类似。商及余数均为有符号数,且余数符号总是与被除数符号相同。注意:对于DIV/IDIV指令AX(DX,AX)为隐含的被除数寄存器。AL(AX)为隐含的商寄存器。AH(DX)为隐含的余数寄存器。src不能为立即数。对所有条件标志位均无定四、控制转移指令1、转移指令(1)无条件转移指令JMP格式:JMPlabel本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。。假设(DS)=2000H,(BX)=1256H,(SI)=528FH;位移量TABLE=20A1H,(232F7H)=3280H,(264E5H)=2450H,则执行指令JMPTABLE[BX]后,(IP)=3280H;执行指令JMP[BX][SI]后,(IP)=2450H。(2)条件转移指令(补充内容)常用指令①根据单个标志位设置的条件转移指令JZ/JE;结果为零(ZF=1),则转移JNZ/JNE;结果不为零(ZF=0),则转移(2)段内转移指令执行结果只改变IP的值。例:有100个字节数据(补码),存放在数据段中EA=2000H的存储单元中。以下程序应该从该数据区中找出最小的一个数据,并存入EA=2100H单元中,请将下面程序补充完整。MIN:MOVBX,(2000H)7/12MOVAL,[BX]MOVCX,(99)LOOP1:INCBXCMPAL,[BX](JLE)LOOP2MOVAL,[BX]LOOP2:DECCXJNZLOOP1MOV([2100H]),AL2、循环控制指令用在循环程序中以确定是否要继续循环。循环次数通常置于CX中。循环控制指令不影响标志位。(1)LOOP格式:LOOPlabel操作:(CX)-1→CX;若(CX)≠0,则转至label处执行;否则退出循环,执行LOOP后面的指令。LOOP指令与下面的指令段等价:DECCXJNZlabel第四章8086汇编语言程序设计一、8086汇编语言的基本语法1.汇编语言结构1)标识符用来对程序中的变量、常量、段、过程等进行命名,它是组成语句的一个常用成分,它的命名应符合下列规定:①合法符号:字母(不分大小写)、数字及特殊符号(“?”,“@”,“_”,“$”,“•”)。②名字必须以字母开头。①名字的有效长度不超过31个英文字符。②不能把保留字(如CPU的寄存器名、指令助记符等)用作名字。变量是存储单元的符号地址,这类存储单元的内容可以在程序运行期间被修改。8、汇编程序的一般结构DATASEGMENT…DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX….MOVAH,4CHINT21H8/12CODEENDSENDSTART第三节程序设计1、顺序程序的设计顺序程序:顺序执行的程序称为顺序程序。特点:每一条指令在执行过程中只被执行一次。例:根据算式Z=8X+Y/16-W^2,X、Y、W均为8位无符号数,Z为16位无符号数。DATASEGMENTXDB?YDB?WDB?ZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XMOVBL,8MULBLMOVDX,AXMOVAH,0MOVAL,YMOVBL,16DIVBLCBWADDDX,AXMOVAH,0MOVAL,WMULALSUBDX,AXMOVZ,DXMOV
本文标题:微机原理补考知识点总结
链接地址:https://www.777doc.com/doc-7203422 .html