东南大学微机期末复习.ppt

上传人:sh****n 文档编号:12691815 上传时间:2020-05-13 格式:PPT 页数:36 大小:614.31KB
返回 下载 相关 举报
东南大学微机期末复习.ppt_第1页
第1页 / 共36页
东南大学微机期末复习.ppt_第2页
第2页 / 共36页
东南大学微机期末复习.ppt_第3页
第3页 / 共36页
点击查看更多>>
资源描述
1,微机系统与接口课程总结,基本内容,1微机系统基础(数制、系统、P/MPU(FPU)、IA-16/32)2指令和用途系统硬件相关3汇编语言程序设计(伪指令-数据-程序流)4半导体存储器(概念、MPU接口电路)5接口技术数字接口及应用编程6.接口技术模拟接口及应用编程7IA-32原理概念,2,第一章、微机系统基础,重点:数制、补码的概念与运算8086/8088CPU硬件结构微机系统组成及各部分之间关系8086/8088工作方式,3,第一章、微机系统基础,1.数制、补码的概念与运算,也决定通用寄存器的位数,4,(1)数制、补码的概念与运算,带符号数的表示把符号数码化:第一位:符号位(0=正数;1=负数)带符号数:原码和反码是人为定义,补码是机器特性!补码计算机擅长做加法!A-B=A+(-B)掌握原码、反码、补码在特定字长内(n=8/16/32)表示范围,相互转换十进制数的二进制编码表示压缩/非压缩BCD码输入输出符合习惯!,5,(1)数制、补码的概念与运算,在微机系统中,数值以补码表示和存储的例:-4八位100H-4=0FCH,16位10000H-4=0FFFCH例:汇编指令MOVAX,-3(AX)=?,数据定义伪指令(人工输入形式)物理存储(二进制数)DB-20H(100H-20H=E0H),1(0FFH),-20(ECH),81H(-127)DW200,-200,0FFF0H,1,-200H,200HMAX=?Min=?,根据实际物理存储内容判别,6,(1)数制、补码的概念与运算,非数值(字母与符号)的二进制编码表示,ASCII码:00-7FH字符(美国标准信息交换代码)0DHCR回车0AHLF换行字符:0-930-39H;A41H,a61H,无符号数CF进位/有符号数OF溢出:运算结果超出范围3AH和7CH无符号数相加,和是B6H(182没超过0255范围,CF=0)3AH和7CH有符号数相加,和是B6H182超过了-128+127范围,OF=1;-74,当两个相同符号数相加(含两个不同符号数相减),而运算结果的符号与原数符号相反时,产生溢出。,7,(2)8086/8088CPU硬件结构,CPU基本构成:执行单元EU:执行指令,含ALU和通用寄存器;总线接口单元BIU:与存储器或I/O端口之间进行数据传送,并能形成物理地址,含段寄存器和指令指针寄存器;预取-指令队列,并行-流水线,FLAGS各位定义IF,DF,TF,CF,ZF,OF/SF,AFCLI/STI;CLD/STD;单步运行(中断)重要信号:ALE,WR,RD,IOR/W,AEN,NMI,INTR,RESET,DEN,结合寻址方式掌握寄存器及用途数据寄存器、段寄存器CS/DS/ES/SS(用于存放段起始地址)、基址指针BP/堆栈指针SP、变址SI/DI、控制:IP/FLAGS,8,(2)8086/8088CPU硬件结构,有效地址EA(偏移量地址)逻辑地址=段基址S和偏移地址物理地址=S*16+EA(得到20位物理地址,A19-A0),存储单元/堆栈/中断矢量表,存储器:高字节高地址,低字节低地址。堆栈段:SS表示堆栈段的段基,SP指向栈顶PUSHAX;(SP)(SP-2);(SP+1)(AH);(SP)ALPOPAX;(AL)(SP);(AH)(SP+1);(SP)(SP+2)并不改变堆栈里单元内容,以字为单位操作,SP值总是偶数,先进后出(FILO)。中断矢量表:中断类型号n=0255,256*4=1K(00000-003FFH),连续存放,高字节IP,低字节CS。,9,Intel8086/8088微处理器基本结构,图1.9功能结构,10,(3)微机系统组成及各部分之间关系,总线:地址,数据,控制根据传送相关内容区分I/O编址方式概念,区分8086访问存储器和/IO:单独编址:A19A0220=1M存储空间;A15-A0216=I/O空间100H以上需用DX间址:MOVDX,2F8HINAL,DXOUTDX,AL,11,(4)8086/8088工作过程,CPU收到RESET信号后:各寄存器的状态=0000H,CS=0FFFFH启动地址FFFF0H(FFFFH:0H),理解软硬件对应关系:指令总线及其控制(三态)时钟周期T=晶振频率的倒数,最小的单位;指令周期:指令从取出到执行完毕时间;机器周期:取指、译指、运算、存储器读写、I/O读写、中断响应、等待Tw、空闲周期每一项基本操作;,总线周期一次访存储器或I/O端口操作所用的时间BIU完成总线接口操作,理解总线时序图与指令相关,12,(4)8086/8088工作过程,MOVDS,AX;不访问总线周期MOVAX,SI;DS为默认段寄存器产生/RD信号,总线读操作MOVBX+20,BX;总线写SUBBX,AL;总线读,总线写,两次总线周期ADDAL,BX;一次总线周期OUTDX,AL;DX间址,产生/IOWR,总线I/O写操作,最小/最大模式单/多处理器,一个指令周期可能包含零个或多个总线周期:,13,例题,(2001).8086/8088系统中管理CPU与存储器或与I/O设备之间数据传送的单元是_.A.EUB.MMUC.BIUD.PU(2006).8086/8088段寄存器的功能是_,某一时刻程序最多可以指定访问_个存储段。A1.用于计算有效地址B1.用于存放段起始地址及计算物理地址C1.分段兼容8080/8085指令D1.方便分段执行各种数据传送操作A2.3B2.4C2.6D2.64KE2.初始化时程序指定,14,例题,(2006)8086/8088系统中复位信号RESET的作用是使_A.处理器总线休眠B.处理器总线清零C.处理器和协处理器工作同步D.MPU恢复到机器的起始状态并重新启动(2011B)在独立I/O编址方式下,下面的说法_是对的。A一个具体地址只能对应输入/输出设备B一个具体地址只能对应内存单元C一个具体地址既可对应输入/输出设备又可对应内存单元D只对应I/O设备或者只对应内存单元,15,第二章、指令系统,重点:1、寻址方式2、掌握重要指令/伪指令转移控制(转移指令、过程调用、中断)3、结合指令/伪指令,分析内存/堆栈内容变化、指针变化(程序阅读题),指令实现微机算术、逻辑运算和控制功能,16,寻址方式,寻址方式(寻找操作数地址的方式):立即、寄存器直接、寄存器间址、变址、基址、基+变址掌握默认寄存器,段超越ES:CS:SS:DS:指令前缀指令=操作码+目标,源操作数CMPAX,BP;源操作数在堆栈段中ADDAX,WORDPTRBX+SI;源操作数在数据段中ADDAX,DATA1;直接寻址,17,基本指令集,掌握基本指令数据传输:MOV,LEA,PUSH,POP,算术运算:ADD,SUB,INC,DEC,CMP,MUL,DIV逻辑位移:AND,OR,TEST,XOR,SHL,SHR,SAR,ROL,ROR,RCL,RCR判断跳转:JMP,JZ,JNZ,JC,JNC,JA,JB,LOOP,LOOPZ过程调用:CALL,RET,INTn,IRETCPU控制:CLD,STD,STI,CLI输入输出:IN,OUT了解指令ADDC,SBB,NEG,IMUL,IDIV,PUSHF,POPF,REPMOVSB(W)串指令,18,基本指令集,错误指令:MOVBX,ALCMPBX,SIMOVAX,BXBPADDAL,BX+DX+10HMOVES,DSMOVES,1000ADDDS,AXPOPCSMOVCS,AX,错误指令:MOVSI,OFFSETWORD2BXOUT298H,ALMULBXJMPES:3000HJMPDATA2DIJNZDATA1CMP39,AL,19,基本伪指令集,掌握伪指令DB,DW,DD;ORG,OFFSET/SEG,$,(WORD/BYTE/FAR/NEAR)PTR,.datadata1DB03H,02H,01H,00Hdata2DB08Hdata3DB09H,MOVAH,data1;AH=03H。MOVAL,data1+2*2;AH=08H。标号或变量加/减某个整型常;量时仍表示标号或变量。MOVAL,data2-data1;AL=04H。同一段内的两个标号或变量;相减,得到的是数值。立即寻址。MOVAH,data2+data3;错,两个变量不能相加。INCdata2;data2所代表的内存单元里的值加1。,20,基本伪指令集,例:已知数据段段基=2100HORG2000HBV1DB2DUP(1,2)BV2DBABWV1DWBV2+2000HDWV1DDWV1,用变量名来间接定义变量,指针:指针变量(近2/远4),21,基本伪指令集,DP1DDPRC1,PRC2CODESEGMENT;设CS为8B00HPRC1PROCFAR;8B00:1000:PRC1ENDPPRC2PROCFAR;8B00:2C20:PRC2ENDP,00H10H00H8BH20H2CH00H8BH,DP1,用过程名来间接定义变量,(PRC1),8B00:1000H,指针:指针变量(近2/远4),22,存储器访问方式字节/字/双字,掌握BYTE/WORD(NEAR)/DWORD(FAR)PTRDECBYTE/WORDPTRSI;MOVWORD/BYTEPTR2000,20;CMPBYTEPTRSI,100,23,转移类指令的跳转地址,转移类指令,跳转地址段内直接短JMPSHORTxxxx;8位偏移段内直接近JMPNEARPTRxxxx;16位偏移段内间接JMPBX,JMPWORDPTRBX+20H;用寄存器/存储器段间直接JMP2000:8000H;20位物理地址空间段间间接JMPFARPTRBXJMPDWORDPTRSI;用字存储器,JMPES:3000H;错,操作数大小(字节)非法JMPWORDPTRES:3000H;对,24,转移类指令,CALL/RET改变程序流CALLnear_proc;(sp)(sp)-2,(SP)+1):SP)(IP);(IP)(IP)+dispCALLfar_proc;(sp)(sp)-2,(SP)+1):SP)(CS);(CS)SEGfar_proc;(sp)(sp)-2,(SP)+1):SP)(IP);(IP)OFFSETfar_procCALLreg16/mem16;例如CALLAXRETnINTn;(FLAGS,IF=TF=0;CS,IP入栈)IRET,25,例题,(2001).在下列指令中,影响堆栈内容的指令是_.A.POPB.CALLC.JMPD.IRET(2007).下列指令中_在执行时不需要总线操作周期。INAL,80HB.OUTDX,ALC.SUBCX,0010HD.ADDBX+1000,AL(2007)指出下列指令或伪指令中所有错误者:_。(A)SUBWORDPTRDI+BP,2(B)DW-54,20H,60000(C)DECSI(D)INAL,282H(E)MOVCS:BX+100,BX(F)POPCS,26,.汇编语言程序设计-数据-定义,DATASAMPLSEGMENTATA800H(段的地址)ORG1000H;起始偏移量地址DATA1DBABC;存放在1000H41H,42H,43HBUFFER1DB-20BUFFER2DW-120H;存储变量:FEE0H,LENGTH1EQU(=)BUFFER2-BUFFER1=?,$:当前地址(可移动)NEXT:JMP$;LENGTH1EQU$-NEXT,27,.汇编语言程序设计,模块化,结构:分枝(比较-散转)/循环(条件)条件转移Jcc-程序流的控制:JZ/JE,JNZ/JNE,JS,JNS,JO,JP/JPE,JNP/JPOLOOP计数循环(CX次,先减后判断);条件循环(计数)JCXZ,LOOPE/Z,DEC/INCCOUNTER;JCC或先CMP后JCC,过程/子程序利用-目的?CALLproc_name;CALLBX;CALL2000H;CALL200:40A8H,28,.汇编语言程序设计,循环遍历:MOVSI(BX/DI),OFFSET;初始指针INC/DECBX/SI/DI指针修改(字节,字,双字)ADDSI/BX/DI,10指针修改MOVAL/AX,SI+2;MOVBX+100,AL/AX(取存数据)MOVAL,DH,MOVAX,SI(寄存器交换)ANDAL,100,ORXORTEST(提取、测试)CMPAL,10,CMPDX,SI(比较之后JZ表示相等),29,.汇编语言程序设计-编程(例),从数据段以DAT为首地址的字符串中寻找A字符(A=41H,该字符串以$结尾,$=24H),并将它们的偏移地址依次存放于ADDR为首的存储区内,并以0结束。要求写出程序主要片断(不必用伪指令定义变量,可直接用指令性语句编写)。,DATADDR,忠实理解题意-要求-建模分析,30,参考程序,MOVSI,0MOVDI,OFFSETADDRMYLOOP:MOVAL,DATSICMPAL,A;或CMPAL,41HJNZNEXT;非A字符MOVDI,SI;是A字符,保存偏移地址INCDI;修改当前偏移地址存储表指针INCDI;占两个字节INCSI;修改数据偏移指针,指向下一字符JMPMYLOOP,NEXT:CMPAL,$JZFINISH;遇到串结束符$INCSIJMPMYLOOP;继续处理FINISH:XORAX,AXMOVDI,AX;00结束,31,参考程序,变化:如果要求在规定的字串长度范围内(如不超过1000个),找到结束符$,将单元FLAG清零,否则写入0FFH;加条件循环语句,MOVSI,OFFSETDATMOVDI,OFFSETADDRMOVCX,1000;循环初值MYLOOP:MOVAL,SICMPAL,A;或CMPAL,41HJNZNEXT;非A字符MOVDI,SI;是A字符,保存偏移量地址INCDI;修改当前偏移量地址存储表指针INCDI;占两个字节JMPNEXT1;继续循环NEXT:CMPAL,$JZFINISH;遇到串结束符$,32,参考程序,NEXT1:INCSI;修改数据指针,偏移指向下一数据LOOPMYLOOP;1000个数未到,继续处理MOVAL,0FFH;未遇到A,错误标志JMPPEXIT;出口FINISH:XORAL,AL;MOVAL,0MOVDI,AL;0结束,接着将00写入FLAG单元PNEXT:MOVFLAG,AL;程序出口,写FLAG标志,33,其它编程举例,例题:在数据段中有一个数组,首地址为BUFF,数组中第一个字节存放数组的长度。M是一个字节型内存变量。编写一个程序,以M为关键字,在数组BUFF中查找第一个值为M的字节,找到以后把它从数组中剔除(删去),并将后续高地址字节逐个向前移动,最高地址字节补0。例如,对于M单元存放00H,数组BUFF为8,1,0,2,3,4,0,6,7,处理之后为8,1,2,3,4,0,6,7,0。,34,其它编程举例,DATASEGMENTBUFFDB8,1,0,2,3,4,0,6,7MEQU0DATAENDSCODESEGMENTASSUMECS:CODE,ES:DATA,DS:DATASTART:MOVAX,DATAMOVES,AXMOVDS,AXMOVAL,M;AL存放关键字MOVDI,OFFSETBUFFMOVCL,DIMOVCH,0,35,L1:INCDICMPAL,DILOOPNZL1JNZSTOP;CX=0,未找到关键字MINCDIDEL:MOVBL,DIMOVDI-1,BLINCDILOOPDEL;循环次数就是上一个循环剩下的CX=6MOVBYTEPTRDI-1,0STOP:MOVAH,4CHINT21HCODEENDSENDSTART,36,仔细审题:字节、字、DB、DW、字符、字符串程序阅读题:可列出存储单元图编程题:代码完整/片段,加注释,可画流程图接口题:写出地址译码的分析过程,闭卷考试:6月14日周四下午2:00,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!