《微机原理考前复习串讲》由会员分享,可在线阅读,更多相关《微机原理考前复习串讲(135页珍藏版)》请在金锄头文库上搜索。
1、微机原理及应用总复习串讲丁 艳 微机原理及应用总复习考试题型:1.填空题(每空1分)10%2.选择填空题(单选,每题1分)10%3.简答题(2题) 10%4.指令伪指令(2题)15% 5.程序设计 10%6.硬件及程序设计题(4题) 45%第一、二、三类题型多为书中基本概念,请同学们注意看书。第四、五、六类题型请注意课件中讲解的例题、书中例题、上 机考试题以及书后练习等。微机原理及应用第一章 基础知识 n1理解Bit, byte, word,doubleword 等基本概念n2掌握计算机中常用的数制与编码:q十进制、二进制数、十六进制的运算和转换;qBCD码的加、减运算及调整;q常用的ASCI
2、I码:数字、大小写英文字母的ASCII码表示q数据在内存中的存贮方式n3掌握有符号数的表示法、加、减运算及溢出的概念;n4掌握“与”、“或”“非”以及“异或”等逻辑运算 。微机原理及应用对一个机器数X:n若X0 ,则 X反=X原 且X补= X反= X原n若X0000:0064H78H0000:0065H45H0000:0066H23H0000:0067HIPCS90H78H45H23H0000:0064H0000:0065H0000:0066H0000:0067HP101微机原理及应用已知(SP)=0150H,(SS)=3550H,(CS)=9000H,(IP)=0200H, (0005CH)
3、=6FH,(0005DH)=5AH,(0005EH)=07H,(005FH) =7CH,在地址为90200H开始的连续两个单元中存放一条两字节指令 INT 17H。试指出在执行该指令并进入相关的中断例程时,SP,SS, IP,CS寄存器的内容以及SP所指向的字单元的内容是多少?答案:答案: 计算17H型中断向量在向量表中存放的地址17H00010111B 17H45CH(IP) = 5A6FH(CS) = 7C07H6FH5AH07H7CH0000:005CH0000:005DH0000:005EH0000:005FH执行中断指令并进入相关的中断例程时(SS)= 3550H(SP)= 0150
4、H6 = 014AH微机原理及应用第五章 8088/8086指令系统n1.指令格式(标号: 指令助记符 操作数 ; 注释), 有的指令 为双操作数,有的指令为单操作数, 有的指令无操作数。 要特 别注意某些指令其隐含的操作数是什么。n2.寻址方式:(1)寻址方式(指定操作数或操作数地址的方式)共有七种 :立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、相 对的寄存器间接寻址、基址加变址寻址、相对的基址加变址寻 址。(2)操作数的类型和操作数的三种可能存放方式(I/O传输 除外): 在指令中(立即数操作数); 在寄存器中(寄存器操作数); 在内存中(内存操作数/存储器操作数)微机技术及应用80
5、86/8088的寻址方式小结微机原理及应用已知(DS)=2000H,(SS)=5000H,(ES)=3000H,(BX)=157BH,(SI)=1B7AH, (BP)=5C6DH,DATA=0050H,指出下列指令中的源操作数的寻址方式,并 计算该操作数的物理地址(1) MOV SI, 200(2) PUSHFPUSHF指令是把标志寄存器的值(是内容而不是地址)压 入由SP指向的堆栈顶部,同时堆栈指针SP的值减2。(3)CMP AX, 2000H段寄存器默认为DS,因此物理地址为:(DS)x10H+2000H=22000H(4) MOV DL, ES:BX指定段寄存器为ES,因此物理地址为:(
6、ES)x10H+(BX)=3157BH 立即数寻址; 寄存器寻址;直接寻址;寄存器间接寻址方式;微机原理及应用(5) INC BYTE PTR DATASI段寄存器默认为DS,因此物理地址为:(DS)x10H+(SI)+DATA=21BCAH(6) ADD AX, BXSI默认段寄存器为DS,因此物理地址为:(DS)x10H+(BX)+(SI)=230F5H(7) MOV BX, DATABXSI,默认段寄存器为DS,因此物理地址为:(DS)x10H+(BX)+(SI)+DATA=23145H(8) MOV AX, BP默认段寄存器为SS,因此物理地址为:(SS)x10H+(BP)=55C6D
7、H 相对变址寻址;基址加变址寻址;相对基址加变址寻址堆栈段基址寻址,微机原理及应用3使用指令时,应注意的几个问题(1)注意区别立即寻址方式和直接寻址方式。如:MOV AX, 126 ;将数据126送入AX寄存器MOV AX, 126 ;将数据段中的126和127单元的内容送 AX.(2)使用寄存器间接寻址时应注意和寄存器寻址方式的区别。如:MOV AX, BX ;BX中的内容传送到AXMOV AX, BX ;BX所指示的地址中的内容送AX.(3)在双操作数指令中,源操作数和目的操作数不能同时 为存储器地址。如:M1和M2为两个存储器变量,则ADD M1, M2是错误指令.微机原理及应用(4)段
8、跨越前缀可修改操作数所在的段。如:MOV DL, MESS1SI 源操作数地址为:(DS)X16+(SI)+ OFFSET MESS1MOV DL, ES:MESS2SI 注意:MOV BX,ES:AX对吗?源操作数地址为:(ES)X16+(SI)+ OFFEST MESS2注意:段跨越前缀不能使用CS。提示:本指令的目的操作数DL决定了本指令将从存储单元中取一个字节而不是一个字。(5)代码段寄存器CS不能用作指令的目的寄存器。(6)用方括号提供的数据来至内存,方括号内的数为偏移地址,也称为有效地址EA。微机原理及应用4掌握各类指令的功能及特点(不仅要了解指令的功能还要了 解影响标志位的情况)
9、;正确使用指令系统,关键要清楚每条 指令的功能以及它们规定或限制使用的寄存器。请同学们特别 注意以下几个问题: (1)指令对地址还是对地址中的内容进行操作,这要严格加以 区分。如:LEA BX ,MESS ;(BX)MESS的偏移地址MOV BX ,OFFSET MESS ;(BX)MESS的偏移地址MOV BX,MESS ;(BX)字变量MESS中的内容(2)除LEA指令外,加中括号涉及到的操作数为内存操作数,通过地址对内存操作数进行存取,其地址由段基址和段内偏移地址组成。微机原理及应用(3)使用指令时,要清楚指令隐含的操作寄存器。如:在乘法和除法指令中,只指出源操作数地址,但要清楚目的操作
10、数必须存放在(AX)/(AL)中(乘法),或(AX)/(DX:AX)中(除法)。串指令(MOVS、SOTS、LODS、CMPS、SCAS),它们的寻址方式也是隐含的,指令规定操作是在数据段中SI所指示的地址和附加段中DI所指示的地址之间进行串处理的;在存取串时AL是隐含的存取寄存器。十进制调整指令(DAA、DAS等)也隐含地使用了AL寄存器。换码指令XLAT、循环指令LOOP、LOOPE、LOOPNE等,它们都要求预先在规定的寄存器内设置好操作数地址或记数值。(4)对带符号数和无符号数的操作应正确选择相应的条件转移指令。微机原理及应用(5)用移位指令来倍增或倍减一个值是很方便的,但要注意对带
11、符号数和无符号数所使用的指令应是不同的。如:(AX)=8520H, 请用移位指令实现 (AX)/2。当(AX)为无符号数时, SHR AX,1, ;结果是(AX)=4290H。当(AX)为带符号数时, SAR AX,1, ;结果为(AX)=0C290H (6)标号是程序中指令的符号地址,要注意和变量(数据符号)的 区别。如定义VAR是一个变量,LAB是程序中的一个标号,则JMP LAB ;指令的转移地址为LAB,指令合法。JMP VRA ;是一条非法指令。微机原理及应用7在传送类指令中(1)请注意理解堆栈的基本概念及其操作(2)I/O数据传送指令(跟外设交换数据的指令)中,特别注意:当端口号大
12、于0FFH时要先送入DX);例:设堆栈指针SP的初值为2000H, (AX)=3000H, (BX)=5000H,试问:答: (1)指令执行后SP会自动减2,故(SP)=1FFEH .(2)执行PUSH BX后SP自动减2,BX内容进入堆栈,而BX仍为5000H。再执行POP AX后,SP自动加2,堆栈内容5000H进入AX。故:(SP)=1FFEH,(AX)=5000H,(BX)=5000H(1)执行指令PUSH AX后SP=?(2)再执行PUSH BX及POP AX后SP=? AX=? BX=?微机原理及应用假如AL=20H,BL=10H,当执行CMP AL, BL后,问:答:(1)因为(
13、AL)=20H(BL)=10H,故当是无符号数时,影响CF 和ZF标志位,且CF=0,OF=0.(2)当AL,BL中是有符号数时,AL,BL中仍为正数,比较结果影响 SF,OF,ZF标志位,但(AL)(BL),故结果为 ZF=0,SF=0,OF=0.(1)若AL,BL中内容是两个无符号数,比较结果如何?影响哪几个标志位? (2)若AL,BL中内容是两个有符号数,结果又如何?影响哪几个标志位?qCMP(比较)指令,类似于减法运算,但只影响标志位,不影响 所运算的值;用此指令时须考虑有符号数和无符号数的区别.8数据操作类指令微机原理及应用根据要求写指令(1)AX寄存器低四位清零 (2)BX寄存器低
14、四位置”1”AND AX,0FFF0H(3)CX寄存器低四位变反XOR CX,000FH(4)用TEST指令测试DL寄存器位3, 位6是否同时为零,若是,将0送 DL,否则1送DHTEST DL,48H ;0100 1000B=48HJZ LOOP1 ;为零,则ZF=1,转LOOP1,0送DLMOV DH,1 ;否则ZF=0,不转移,1送DHJMP TT1LOOP1 :MOV DL,0TT1:HLTOR BX,000FHqTEST类似于AND指令,但只影响标志位,不将运算结果 送入目标操作数。微机原理及应用设(BX) 1011 1001 1011 1001 , CF 0 ,(CL) 03。 确
15、 定下列指令分别执行后(BX)?(1) SHL BL, 1(2) SAL BL, CL(3) SHR BL, CL(4) SAR BL, 1(5) ROL BH, 1(6) RCL BX, CL(7) RCR BL, CL(8) ROR BH, 1(BL)= 0111 0010 CF=1(BL)= 1100 1000 CF=1(BL)= 0001 0111 CF=0(BH)= 0111 0011 CF=1(BH)= 1101 1100 CF=1(BL)= 1101 1100 CF=1(BX)= 1100 1101 1100 1010 CF=1(BL)= 0101 0111 CF=0注意:所移动次数大于1时须将值送CL微机原理及应用9在串指令中,注意操作数的隐含规则:q串传送指令 MOVSB / MOVSW:将一个字节/字从( DS:SI) 传送到(ES:DI)完成操作后自动修改SI、DI,使其指向串的 下一个元素q串比较指令 CMPSB / CMPSW:比较( DS:SI)和(ES:DI)的值,自动修改SI、DI,指令前通常加重复前缀REPZ/REPE 。q串搜索指令:SCASB/SCASW:在首地址为ES:DI的串中搜索 某个元素(字节/字)事先要将待搜索的元素存入AL/AX,指令前通常加重复前缀REPNZ/REPNE。自