您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 微机原理考试复习要点
第一.二.三章微型计算机组成:微处理器,存储器,I/O接口电路;计算机硬件系统:运算器,控制器,存储器,输入设备,输出设备。总线:指计算机中各功能部件间传递信息的公共通道;总线分类:数据总线(双向),控制总线(整体双向,局部单向),地址总线(单向)。原码的正数(符号位0)的原码,反码,补码相同;负数(符号位1)的反码等于原码符号位不变,其余按位取反,补码等于反码加1。补码的补码等于原码。特殊数:10000000(补码)表示-128特殊数:1000000000000000(补码)表示-32768物理地址=段地址x10H+段内偏移地址;8086的总线周期由4个时钟周期组成。BHEA0对应操作00同时访问两个存储体,读/写一个字的信息,对于规则字(低位在偶地址,高位在奇地址)需要一个总线周期。对于非规则字(低位在奇地址,高位在偶地址)需要两个总线周期01访问奇地址地址存储体,一个字节10访问偶地址地址存储体,一个字节11无操作A0:选通存储器低位(偶地址)库,低电平有效。BHE:选通存储器高位(偶地址)库,低电平有效。CPU的中断响应包括两个总线周期,在每个总线周期中都从INTA端输出一个负脉冲,第一个总线周期的INTA负脉冲,用来通知中断源,CPU准备响应中断,中断源应准备好中断类型号。第二个总线周期的INTA负脉冲期间,外设接口应立即把中断源的中断类型号送到数据总线的低8位AD7-AD0上。第四章寻址方式例子立即数寻址1050H寄存器寻址AX存储器寻址特点:有[]直接寻址[1064H]寄存器间接寻址[SI/DI/BX]寄存器相对寻址[SI/DI/BX/BP+10H]基址变址寻址[SI/DI+BX/BP]基址变址相对寻址[SI/DI+BX/BP+10H]I/O端口寻址端口直接寻址OUT21H,AXINAX,21H端口间接寻址OUT21H,DXINDX,21H指令易错点MOV1.源操作数,目的操作数不能同为存储器操作数2.段寄存器必须通过AX修改3.IP,CS不能做目的操作数PUSH1.目的操作数不能是立即数2.目的操作数必须是16位POP1.目的操作数不能是立即数2.目的操作数不能是CS3.目的操作数必须是16位XCHG1.源操作数,目的操作数不能同为存储器操作数2.段寄存器不能参加交换3.两操作数长度要一致OUT直接寻址00H-FFH,间接寻址必须用DXIN直接寻址00H-FFH,间接寻址必须用DXADDSUB1段寄存器不参加加减乘除运算2源操作数,目的操作数不能同为存储器操作数3目的操作数不能为立即数DECINC1.单操作数指令,存储器操作数必须加确定其长度的指令LEA1目的操作数必须是16位通用寄存器2源操作数必须是存储器操作数移位指令1.单操作数指令,存储器操作数必须加确定其长度的指令注意:堆栈向地址减小方向生长;转移指令配合(CMPA,BANDA,B)转移条件JMP无条件转移JZ/JE相等/前一个操作的寄存器等0JNZ前一个操作的寄存器不等0测试无符号数测试带符号数JBJL小于JAEJGE大于等于JAJG大于JBEJLE小于等于第五章标准方法返回DOS系统:PUSHDSMOVAX,0PUSHAX非标准方法返回DOS系统:MOVAH,4CHINT21HDOS功能调用:1.子程序的入口参数送相应的寄存器2.子程序编号送AH3.发中断请求INT21H(系统功能调用指令)1号功能调用(键盘有键按下,就读入响应的ASCII码)MOVAH,1INT21H2号功能调用(显示DL中的ASCII码)MOVDL,待显示的ASCII字符MOVAH,2INT21H9号功能调用(显示以$结尾的字符串,字符串偏移地址在DX中)MOVDX,待显示字符串的首字符的偏移地址MOVAH,9INT21H第七章中断处理过程:中断请求,中断响应,保护断点,中断处理,中断返回。中断向量表:8086/8088有256种中断,每个中断服务程序的入口地址占用4个存储单元,低地址的两个单元存放地址偏移量(IP),高地址的两个单元存放段地址(CS).256*4=1024=1K,地址范围是00000H-003FFH。类型(0-4)他们已有固定用途,类型(5-31)系统保留,所以用户有224个自定义的中断。中断入口地址=类型号x4DOS功能调用法直接装入法PUSHDS;MOVDX,OFFSETINT60MOVAX,SEGINT60MOVDS,AXMOVAH,25H;送功能号MOV60H;送中断类型号INT21H;系统功能调用POPDS;恢复DSXORAX,AX;AX清零MOVDS,AX;DS清零MOVAX,OFFSETINT60MOVDS:[1080H],AXMOVAXSEGINT60MOVDS:[1080H+2],AX例4.7从偏移地址TABLE开始的内存区中,存放着100个字节型数据,要求将这些数据累加,并将累加和的低位存SUM单元,高位存SUM+1单元.LEABX,TABLE;数据表地址指针送(BX)MOVCL,100;循环次数送XORAX,AX;AX清零,CF清零LOOPER:ADDAL,[BX];加一个数到ALJNCGOON;如果无进位,转到GOONINCAH;有进位,AH加1GOON:INCBX;数据指针加1DECCL;循环次数减1JNZLOOPER;循环次数若不为0,转到LOOPERMOVSUM,AX;AX送SUM,SUM+1HTL;结束例4.13一个数据块由大小写英文字符,数字和其他各种符号组成,结束符是回车符CR(ASII码为0DH),数据块得首地址为BLOCK1,将数据块传送到以BLOCK2为首地址的内存区,并将其中的小写字母转换为大写字母,其余不变。LEASI,BLOCK1;源地址指针送LEADI,BLOCK2;目标地址指针送DICLD;清方向标志DFNEXT:LODSB;取一个字符到ALCMPAL,0DH;是否是回车符JZDONE;是,则转DONGCMPAL,61H;否则,是否小于‘a’JCOK;是,转‘OK’CMPAL,7BH;否则,是否大于‘z’JNCOK;是,转‘OK’SUBAL,20H;否则AL减20HOK:STOSB;送存JMPNEXT;转移到NEXTDONE:HTL;停止例4.16在内存中的数据段中存放了若干个8位带符号数,数据块得长度为COUNT,首地址为TABLE,试统计其中的正数负数,及零的个数,并分别将统计结果存入PLUS,MINUS,ZERO单元。XORAL,AL;AL清零MOVPLUS,AL;PLUS清零MOVMINUS,AL;MINUS清零MOVZERO,AL;ZERO清零LEASI,TABLE;数据表首地址送SIMOVCX,COUNT;循环次数送CXCLD;清方向标志DFCHECK:LODSB;取一个字符到ALORAL,AL;使数据影响标志位JSX1;如为负,转X1JZX2;如为0,转X2INCPLUS;否则为正,PLUS加1JMPNEXT;X1:INCMINUS;MINUS单元加1JMPNEXT;X2:INCZERO;ZERO单元加1NEXT:LOOPCHECK;CX减1不为0.转CHECKHTL;结束例4.17在以DATA1为首地址的内存数据中,存放了200个16位带符号数,将其中的最大数和最小数找出来,分别存放在MAX,MIN单元中。LEASI,DATA1;数据块首地址送SIMOVCX,200;循环次数送CXCLD;清方向标志DFLODSW;读一个字到AXMOVMAX,AX;送MAX单元MOVMIN,AX;送MIN单元DECCX;循环次数减1NEXT:LODSW;读一个字到AXCMPAX,MAX;与MAX单元内容比较JGGREATER;大于MAX,转GREATERCMPAX,MIN;与MIN单元内容比较JLLESS;小于MIN转LESSJMPGOON;转GOONGREATER:MOVMAX,AX;AX送MAX单元JMPGOON;LESS:MOVMIN,AX;AX送MIN单元GOON:LOOPNEXT;HLT;结束例5.8求两个数的平均值。这两个数分别放在x单元和y单元中,而平均值放在z单元中。DATASEGMENTxDB95;yDB87;zDB?;DATAENDS;CODESEGMENT;MAINPROCFAR;ASSUMECS:CODE,DS:DATA;START:PUSHDS;标准法返回DOSMOVAX,0;标准法返回DOSPUSHAX;标准法返回DOSMOVAX,DATA;装填段寄存器DSMOVDS,AX;MOVAL,x;第一个数送入ALADDAL,y;两数相加,结果送入ALMOVAH,0;ADCAH,0;带进位加法,进位送入AHMOVBL,2;除数2送入BLDIVBL;求平均值送ALMOVz,AL;结果送入Z单元RET;标准法返回DOSMAINENDP;CODEENDS;ENDSTART;例5.10给定以下符号函数y=1(x0),y=0(x=0),y=-1(x0)给定任意x值,假定是-25,存放在x单元中,函数值存放在y单元中,根据x的值确定函数y的值。DATAXSEGMENTxDB-25;yDB?;DATAXENDS;CODEXSEGMENT;MAINPROCFAR;ASSUMECS:CODEX,DS:DATAX;START:PUSHDS;标准法返回DOSMOVAX,0;标准法返回DOSPUSHAX;标准法返回DOSMOVAX,DATAX;装填段寄存器DSMOVDS,AX;MOVAL,x;x送入ALCMPAL,0;比较AL和0JGELOOP1;如果大于等于0,转LOOP1MOVAL,0FFH;将-1送ALMOVy,AL;否则AL小于零,y=-1RET;标准法返回DOSLOOP1:JELOOP2;如果等于零,转LOOP2MOVAL,1MOVy,AL;不等0则AL大于0,y=1RET;标准法返回DOSLOOP2:MOVAL,0MOVy,AL;y=0RET;标准法返回DOSMAINENDP;CODEXENDS;ENDSTART;例5.12从xx单元开始的30个连续单元中存放有30个无符号数,从中找出最大数送入yy单元。DATASPSEGMENTxxDB73,59,61,45,81,107,37,25,14,64,3,17,9,23,55,97,115DB78,121,67,215,137,99,241,36,58,87,100,74,62,yyDB?DATASPENDSCODEXSEGMENT;MAINPROCFAR;ASSUMECS:CODESP,DS:DATASPSTART:PUSHDS;标准法返回DOSMOVAX,0;标准法返回DOSPUSHAX;标准法返回DOSMOVAX,DATASP;装填段寄存器DSMOVDS,AX;MOVAL,xx;首数据送ALMOVSI,OFFSETxx;数据段指针送SI等价LEASI,xxMOVCX,29;循环次数送CXLOOP1:INCSI;数据指针加1CMPAL,[SI];比较AL和指向数据JAELOOP2;如果AL大于等于[SI],转LOOP2XCHGAL,[SI];否则AL小于[SI],交换LOOP2:DECCX;循环次数减1,等价LOOPLOOP1JNZLOOP1;循环次数不为0,等价LOOPLOOP1MOVyy,AL;AL送yyRET;标准法返回DOSMAINENDP;CODESPENDS;ENDSTART;例5.13从自然数1开始累加,直到累加和大于1000为止,统计被累加的自然数的个数,把统计的个数送入n单元,把累加和送入sum单元。DATASSEGMENTnDW?sumDW?DATASENDSCODESSEGMENT;MAINPROCFAR;ASSUMECS:CODES,DS:DATASSTART:PUSHDS;标准法返回DOSMOVAX,0;标准法返回DOSPUSHAX;标准法返回DOSMOVAX,DATAS;装填段寄存器DSMOVDS,AX;MOVAX,0;累加和AL清零MOVBX,0;自然数数据加1MOVCX,0;累加数个数CX清零LOO
本文标题:微机原理考试复习要点
链接地址:https://www.777doc.com/doc-5949712 .html