微机原理考前复习串讲课件_第1页
微机原理考前复习串讲课件_第2页
微机原理考前复习串讲课件_第3页
微机原理考前复习串讲课件_第4页
微机原理考前复习串讲课件_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

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

文档简介

《微机原理及应用》总复习串讲丁艳dingyan@《微机原理及应用》总复习串讲丁艳总复习考试题型:

1.填空题(每空1分)10%2.选择填空题(单选,每题1分)10%3.简答题(2题)10%4.指令伪指令(2题)15%5.程序设计10%6.硬件及程序设计题(4题)45%第一、二、三类题型多为书中基本概念,请同学们注意看书。第四、五、六类题型请注意课件中讲解的例题、书中例题、上机考试题以及书后练习等。总复习考试题型:第一、二、三类题型多为书中基本概念,请同学们第一章基础知识1.理解Bit,byte,word,doubleword等基本概念2.掌握计算机中常用的数制与编码:十进制、二进制数、十六进制的运算和转换;BCD码的加、减运算及调整;常用的ASCII码:数字、大小写英文字母的ASCII码表示数据在内存中的存贮方式3.掌握有符号数的表示法、加、减运算及溢出的概念;4.掌握“与”、“或”“非”以及“异或”等逻辑运算。第一章基础知识1.理解Bit,byte,word,d对一个机器数X:若X>0,则[X]反=[X]原且[X]补=[X]反=[X]原若X<0,则[X]反=对应原码的符号位不变,数值部分按位求反且[X]补=[X]反+1[例]:X=-52[X]原=10110100[X]反=1

1001011[X]补=[X]反+1=11001100有符号数的表示思考:已知某一机器码为C7H,当其为有符号数和无符号数是分别表示的十进制数为多少?对一个机器数X:有符号数的表示思考:

习题有一个16位的数值0101,0000,0100,0011:

(1)如果它是一个二进制数,和它等值的十进制数是多少?(2)如果它们是ASCII码字符,则是什么字符?(3)如果它们是压缩的BCD码,它表示的数是什么?20547答:答:PC答:5043习题有一个16位的数值0101,0000,0100,带符号数的运算时的溢出判断

两个有符号数进行加减运算时,如果结果超出可表示的有效范围就会发生溢出。其判定准则是: 当两个同符号数相加或异符号数相减时:(1)如果次高位向最高位有进位(或借位),而最高位向前位无进位(或借位),则结果发生溢出;(2)如果次高位向最高位无进位(或借位),而最高位向前位有进位(或借位),则结果也发生溢出;带符号数的运算时的溢出判断 两个有符号数进行加减运算时,如果带符号数的表示范围

(1)8位二进制数,原码、反码和补码所能表示的范围为:

原码、反码:-127~+127

补码:-128~+127

当运算结果超出以上范围时,就会产生溢出。(2)16位二进制数,原码、反码和补码所能表示的范围为:原码、反码:-32767~+32767

补码:-32768~+32767

当运算结果超出以上范围时,就会产生溢出。带符号数的表示范围例题计算(+72)+(-98)=?溢出标志位OF=?(+72)10=(+1001000)2,(+1001000)补=01001000(-98)10=(-1100010)2,(-1100010)补=1001111001001000+72+10011110+-9811100110-26

注意:本题中,一个正数加上一个负数,其结果在二进制补码的表示范围之内,无溢出。在运算时可从C6=0,C7=0,而判断得知无溢出,故OF=0。例题计算(+72)+(-98)=?溢出标志位OF=?例题计算(+72)-(-98)=?溢出标志位OF=?(+72)10=(+1001000)2,(+1001000)补=01001000(-(-98)10)=(+1100010)2,(+1100010)补=0110001001001000B+72+01100010B+9810101010B-86

注意:本题中,一个正数减去一个负数,其结果超出二进制补码的表示范围,因此出现溢出错误。在运算时可从C6=1,C7=0,而判断得知产生溢出,OF=1。例题计算(+72)-(-98)=?溢出标志位OF=?第二章微型计算机系统基础计算机的组成:CPU、存储器、输入/输出接口、总线三态输出电路

L门、E门的作用及其控制逻辑总线结构和总线分类控制字的写法、作用,怎样控制信息的往来。存储器(Memory)

掌握内存储器的几个概念:内存单元的地址和内容、内存容量、内存的操作、内存的分类触发器、寄存器、存储器第二章微型计算机系统基础计算机的组成:CPU、存储器、输入第三章微型计算机的基本工作原理计算机的组成结合FLASH动画理解简化计算机的工作原理掌握机器周期、机器节拍、取指周期、执行周期等基本概念。第三章微型计算机的基本工作原理计算机的组成第四章16位微处理器1.Intel8088CPU的结构:执行部件及总线接口部件(1)执行部件EU:①通用寄存器(AX、BX、CX、DX);②变址寄存器(SI、DI)③堆栈指针寄存器(SP);④基数指针寄存器(BP);⑤标志寄存器(FR);⑥算术逻辑部件(ALU);(2)总线接口部件BIU:①4个段地址寄存器(CS、DS、SS、ES);②指令指针寄存器(IP)③20位的地址加法器;④六字节的指令队列;(3)标志位:SF、ZF、CF、OF、AF、PF、DF、IF、TF(4)20位的地址加法器:完成逻辑地址与物理地址的转换;

(段基址*10H+偏移地址)执行部件及总线接口部件的并行关系第四章16位微处理器1.Intel8088CPUALU执行部分控制电路输入/输出控制电路地址加法器20位16位指令队列缓冲器8位执行部件(EU)总线接口部件(BIU)外部总线16位运算寄存器标志寄存器通用寄存器8086CPU结构图段寄存器DLCLBLALSIDIBPSPDHCHBHAH内部暂存器IPESSSDSCS

ALU执行部分输入/输出地址加法器20位16位指令队列缓冲器2.存储器结构: ①按字节编址,最大地址空间为2n个字节。8086、8088可寻址的存储器空间为1MB; ②存储器的分段(段基址、段边界、偏移量);(为什么分,怎样分) ③物理地址与逻辑地址;物理地址=段基址X10H+偏移地址例:设(CS)=123AH,(IP)=341BH,将要取出的指令的物理地址为:

341B偏移地址

+123A

0

段起始地址

____________157BB该指令的物理地址存储单元的表示:560H:1250H2.存储器结构:物理地址=段基址X10H+偏移地3.8088的总线工作周期①何为总线周期?CPU何时执行总线周期?8088的基本总线周期包括多少时钟周期?②什么情况下要插入Tw等待周期?插入多少个时钟周期取决于什么因素?Tw与空闲周期的区别?③8086/8088CPU读写操作与总线周期(字节读写、字读写)

例:判断下列两条指令执行时是否需要执行总线周期。

MOVAX,CXMOVAX,[BX]4.8088CPU的工作模式(掌握最大、最小工作模式的定义)5.8088CPU的引脚:地址线、数据线、控制线,输入、输出、双向,分时复用、控制信号的有效电平(高电平还是低电平有效)3.8088的总线工作周期8086CPU的引脚信号和功能20根地址线,其中16根与数据复用,4根与状态复用。

16根控制线

1个Vcc电源引脚线

2个GND地(管脚1和20)1个时钟信号

8086/8088CPU的第24-31脚在最大模式和最小模式下有不同的名称和定义。Vcc(5V)HLDA(RQ/GT1)ALE(QS0)AD15A17/S4A16/S3A18/S5A19/S6INTA(QS0)HOLD(RQ/GT0)DT/R(S1)DEN(S0)地NMI地

CLK1247113581216691317201014181519BHE/S7MN/MXWR(LOCK)AD14AD12AD9AD5AD13AD11AD8AD4AD0AD10AD7AD3AD6AD2AD1RDM/IO(S2)RESETTESTREADY40393734303836332925353228242131272326228086CPUINTR8086CPU的引脚信号和功能20根地址线,其中16根与数 ①20根地址线,其中AD7AD0

共8根与数据复用,4根与状态复用。如何使用分时复用信号线AD7AD0(加地址锁存器ALE); ②NMI(非屏蔽中断引脚), INTR(可屏蔽中断引脚)

INTA

③RD(读),WR(写); ④

M/IO

(存储器及I/O选择)

⑤HOLD与HLDA ⑥DT/R与DEN地A14A12A9AD5A13A11A8AD4AD0A10AD7AD3NMI地AD6AD2INTRAD1CLK1247113581216691317201014181519Vcc(5V)A15A17/S4SS0(HIGH)

HLDA(RQ/GT1)A16/S3A18/S5MN/MXWR(LOCK)ALE(QS0)A19/S6RDM/IO(S2)INTA(QS0)RESETHOLD(RQ/GT0)DT/R(S1)TESTDEN(S0)READY40393734302336332925353228242131272326228088CPU地A14A12A9AD5A13A11A8AD4AD0A10A6.系统总线及其作用?8088最小工作模式下的复位与启动操作、总线操作(读、写操作)、总线保持等。

RESET复位信号:复位信号必须为大于4个时钟周期的高电平脉冲,它使CPU停止工作,FR,IP,DS,SS,ES和指令队列清零,CS=FFFFH,当复位脉冲下降为低电平后CPU从FFFF0H处取指令重新开始工作。6.系统总线及其作用?8088最小工作模式下的复位与启动操作1.中断的基本概念、中断的分类,掌握中断类型码、中断向量表地址以及中断入口地址之间的关系,计算机处理中断的五个步骤,中断响应的条件,中断响应时CPU的任务,中断服务程序的几项工作以及中断响应与子程序调用的区别。2.8086/8088中断的响应过程

例:中断返回指令IRET和普通子程序返回指令RET在执行时,具体操作内容有什么不同?答:IRET除了弹出堆栈中的CS和IP外,还要弹出标志寄存器的值,而RET则不需要。中断操作1.中断的基本概念、中断的分类,掌握中断类型码、中断向量表地CSIPCSIPCSIPCSIPCSIPCSIPCSIP0000:0000H0000:0003H0000:0004H0000:0007H0000:0008H0000:000BH0000:000CH0000:000FH0000:0010H0000:0013H0000:0014H0000:007EH0000:007FH0000:03FFH类型0类型1类型2类型4类型3类型5类型31类型32类型255(十进制)(十进制)专用中断(共5个)保留中断(共27个)供用户定义的中断(共225个)CSCSCSCSCSCSCS0000:0000H0000:0已知类型号为19H的中断子程序放在2345:7890H开始的内存区域中,问向量表中如何存放该地址?答案:计算19H型中断向量在向量表中存放的地址19H=00011001B19H×4=01100100=64H地址存放90H=>0000:0064H78H=>0000:0065H45H=>0000:0066H23H=>0000:0067HIPCS90H78H45H23H0000:0064H0000:0065H0000:0066H0000:0067HP101已知类型号为19H的中断子程序放在2345:7890H开始的已知(SP)=0150H,(SS)=3550H,(CS)=9000H,(IP)=0200H,(0005CH)=6FH,(0005DH)=5AH,(0005EH)=07H,(005FH)=7CH,在地址为90200H开始的连续两个单元中存放一条两字节指令INT17H。试指出在执行该指令并进入相关的中断例程时,SP,SS,IP,CS寄存器的内容以及SP所指向的字单元的内容是多少?答案:计算17H型中断向量在向量表中存放的地址17H=00010111B17H×4=5CH(IP)=5A6FH(CS)=7C07H6FH5AH07H7CH0000:005CH0000:005DH0000:005EH0000:005FH执行中断指令并进入相关的中断例程时(SS)=3550H

(SP)=0150H-6=014AH已知(SP)=0150H,(SS)=3550H,(CS)=9第五章8088/8086指令系统1.指令格式(标号:指令助记符操作数;注释),有的指令为双操作数,有的指令为单操作数,有的指令无操作数。要特别注意某些指令其隐含的操作数是什么。2.寻址方式: (1)寻址方式(指定操作数或操作数地址的方式)共有七种:立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、相对的寄存器间接寻址、基址加变址寻址、相对的基址加变址寻址。(2)操作数的类型和操作数的三种可能存放方式(I/O传输除外): ①在指令中(立即数操作数); ②在寄存器中(寄存器操作数); ③在内存中(内存操作数/存储器操作数)第五章8088/8086指令系统1.指令格式(标号:指令8086/8088的寻址方式小结8086/8088的寻址方式小结已知(DS)=2000H,(SS)=5000H,(ES)=3000H,(BX)=157BH,(SI)=1B7AH,

(BP)=5C6DH,DATA=0050H,指出下列指令中的源操作数的寻址方式,并计算该操作数的物理地址(1)MOVSI,200(2)PUSHFPUSHF指令是把标志寄存器的值(是内容而不是地址)压入由SP指向的堆栈顶部,同时堆栈指针SP的值减2。(3)CMPAX,[2000H]

段寄存器默认为DS,因此物理地址为:(DS)x10H+2000H=22000H(4)MOVDL,ES:[BX]

指定段寄存器为ES,因此物理地址为:

(ES)x10H+(BX)=3157BH立即数寻址;寄存器寻址;直接寻址;寄存器间接寻址方式;已知(DS)=2000H,(SS)=5000H,(ES)=3(5)INCBYTEPTRDATA[SI]

段寄存器默认为DS,因此物理地址为:

(DS)x10H+(SI)+DATA=21BCAH(6)ADDAX,[BX][SI]

默认段寄存器为DS,因此物理地址为:(DS)x10H+(BX)+(SI)=230F5H(7)MOVBX,DATA[BX][SI],

默认段寄存器为DS,因此物理地址为:(DS)x10H+(BX)+(SI)+DATA=23145H(8)MOVAX,[BP]

默认段寄存器为SS,因此物理地址为:(SS)x10H+(BP)=55C6DH相对变址寻址;基址加变址寻址;相对基址加变址寻址堆栈段基址寻址,(5)INCBYTEPTRDATA[SI]相对变址寻3.使用指令时,应注意的几个问题(1)注意区别立即寻址方式和直接寻址方式。如:MOVAX,126;将数据126送入AX寄存器

MOVAX,[126];将数据段中的126和127单元的内容送AX.(2)使用寄存器间接寻址时应注意和寄存器寻址方式的区别。如:MOVAX,BX;BX中的内容传送到AX MOVAX,[BX];BX所指示的地址中的内容送AX.(3)在双操作数指令中,源操作数和目的操作数不能同时为存储器地址。如:M1和M2为两个存储器变量, 则ADDM1,M2是错误指令.3.使用指令时,应注意的几个问题(4)段跨越前缀可修改操作数所在的段。如:MOVDL,MESS1[SI]

源操作数地址为:(DS)X16+(SI)+OFFSETMESS1 MOVDL,ES:MESS2[SI]注意:MOVBX,ES:AX对吗??源操作数地址为:

(ES)X16+(SI)+OFFESTMESS2

注意:段跨越前缀不能使用CS。提示:本指令的目的操作数DL决定了本指令将从存储单元中取一个字节而不是一个字。(5)代码段寄存器CS不能用作指令的目的寄存器。

(6)用方括号提供的数据来至内存,方括号内的数为偏移地址,也称为有效地址EA。(4)段跨越前缀可修改操作数所在的段。 (6)用方括号提供的4.掌握各类指令的功能及特点(不仅要了解指令的功能还要了解影响标志位的情况);正确使用指令系统,关键要清楚每条指令的功能以及它们规定或限制使用的寄存器。请同学们特别注意以下几个问题:(1)指令对地址还是对地址中的内容进行操作,这要严格加以区分。

如:LEABX,MESS;(BX)←MESS的偏移地址

MOVBX,OFFSETMESS;(BX)←MESS的偏移地址

MOVBX,MESS ;(BX)←字变量MESS中的内容(2)除LEA指令外,加中括号涉及到的操作数为内存操作数,通过地址对内存操作数进行存取,其地址由段基址和段内偏移地址组成。4.掌握各类指令的功能及特点(不仅要了解指令的功能还要了解影(3)使用指令时,要清楚指令隐含的操作寄存器。如:①在乘法和除法指令中,只指出源操作数地址,但要清楚目的操作数必须存放在(AX)/(AL)中(乘法),或(AX)/(DX:AX)中(除法)。②串指令(MOVS、SOTS、LODS、CMPS、SCAS),它们的寻址方式也是隐含的,指令规定操作是在数据段中SI所指示的地址和附加段中DI所指示的地址之间进行串处理的;在存取串时

AL是隐含的存取寄存器。十进制调整指令(DAA、DAS等)也隐含地使用了AL寄存器。③换码指令XLAT、循环指令LOOP、LOOPE、LOOPNE等,它们都要求预先在规定的寄存器内设置好操作数地址或记数值。(4)对带符号数和无符号数的操作应正确选择相应的条件转移指令。(3)使用指令时,要清楚指令隐含的操作寄存器。(4)对带符号

(5)用移位指令来倍增或倍减一个值是很方便的,但要注意对带符号数和无符号数所使用的指令应是不同的。如:(AX)=8520H,请用移位指令实现(AX)/2。当(AX)为无符号数时,SHRAX,1,;结果是(AX)=4290H。当(AX)为带符号数时,SARAX,1,;结果为(AX)=0C290H

(6)标号是程序中指令的符号地址,要注意和变量(数据符号)的区别。如定义VAR是一个变量,LAB是程序中的一个标号,则JMPLAB;指令的转移地址为LAB,指令合法。

JMPVRA;是一条非法指令。(5)用移位指令来倍增或倍减一个值是很方便的,但要注意对带7.在传送类指令中 (1)请注意理解堆栈的基本概念及其操作 (2)I/O数据传送指令(跟外设交换数据的指令)中,特别注意:当端口号大于0FFH时要先送入DX);例:设堆栈指针SP的初值为2000H,(AX)=3000H,(BX)=5000H,试问:答:(1)指令执行后SP会自动减2,故(SP)=1FFEH.(2)执行PUSHBX后SP自动减2,BX内容进入堆栈,而BX仍为

5000H。再执行POPAX后,SP自动加2,堆栈内容5000H进入

AX。故:(SP)=1FFEH,(AX)=5000H,(BX)=5000H(1)执行指令PUSHAX后SP=?(2)再执行PUSHBX及POPAX后SP=?AX=?BX=?7.在传送类指令中例:设堆栈指针SP的初值为2000H,(假如AL=20H,BL=10H,当执行CMPAL,BL后,问:答:(1)因为(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中内容是两个有符号数,结果又如何?影响哪几个标志位?CMP(比较)指令,类似于减法运算,但只影响标志位,不影响所运算的值;用此指令时须考虑有符号数和无符号数的区别.8.数据操作类指令假如AL=20H,BL=10H,当执行CMPAL,BL后根据要求写指令(1)AX寄存器低四位清零(2)BX寄存器低四位置”1”ANDAX,0FFF0H(3)CX寄存器低四位变反

XORCX,000FH(4)用TEST指令测试DL寄存器位3,位6是否同时为零,若是,将0送DL,否则1送DHTESTDL,48H;01001000B=48HJZLOOP1;为零,则ZF=1,转LOOP1,0送DLMOVDH,1;否则ZF=0,不转移,1送DHJMPTT1LOOP1:MOVDL,0TT1:HLTORBX,000FHTEST类似于AND指令,但只影响标志位,不将运算结果送入目标操作数。根据要求写指令(1)AX寄存器低四位清零

设(BX)=1011100110111001,CF=0,(CL)=03。确定下列指令分别执行后(BX)=?(1)SHLBL,1(2)SALBL,CL(3)SHRBL,CL(4)SAR BL,1(5)ROL BH,1(6)RCL BX,CL(7)RCRBL,CL(8)RORBH,1(BL)=01110010CF=1(BL)=11001000CF=1(BL)=00010111CF=0

(BH)=01110011CF=1(BH)=11011100CF=1

(BL)=11011100CF=1(BX)=1100110111001010CF=1(BL)=01010111CF=0注意:所移动次数大于1时须将值送CL设(BX)=10111001101110019.在串指令中,注意操作数的隐含规则:①串传送指令MOVSB/MOVSW:将一个字节/字从(DS:SI)传送到(ES:DI)完成操作后自动修改SI、DI,使其指向串的下一个元素②串比较指令CMPSB/CMPSW:比较(DS:SI)和(ES:DI)的值,自动修改SI、DI,指令前通常加重复前缀REPZ/REPE。③串搜索指令:SCASB/SCASW:在首地址为ES:DI的串中搜索某个元素(字节/字)事先要将待搜索的元素存入AL/AX,指令前通常加重复前缀REPNZ/REPNE。自动修改DI注意比较REP,REPE/REPZ以及REPNE/REPNZ的退出循环条件有何不同。④读串指令LODSB/LODSW:将地址为DS:SI的一个字节/字读入AL/AX,自动修改SI⑤写串指令STOSB/STOSW:将AL/AX的值存入地址为ES:DI的内存单元,自动修改DI9.在串指令中,注意操作数的隐含规则:判断下列指令书写是否正确,不正确的请指出原因。(1)MOVAL,BX

BX为16位寄存器,AL为8位,类型不匹配

(2)MOVES,DS

错两个操作数不能同为段寄存器

(3)DEC[BX]

错本指令DEC后的目的操作数需指明类型

(4)MOV5,AL

5是一个立即数,目的操作数不能是立即数

(5)MOV[BX],[SI]

错两个操作数不能同时为内存单元判断下列指令书写是否正确,不正确的请指出原因。(1)MO(6)MOVDS,2000H

错不能给段寄存器用立即数的方式赋初值(7)POPCS

错代码段寄存器CS不能是目的操作数(8)PUSHCS

对代码段寄存器CS是源操作数(9)DIV12

错DIV源操作数不能是立即数(10)INBL,45H

错IN指令只能用累加器AL或AX(11)SHRAL,5

错移位次数大于1时应放入CL寄存器中判断下列指令书写是否正确,不正确的请指出原因。(6)MOVDS,2000H判断下列指令书写是否正确(12)MOVBX,[AX]

错AX寄存器不能用于寄存器间接寻址方式(13)MOVAX,[BX][BP]

错不能同时使用两个基址寄存器或变址寄存器进行间接寻址(14)XLATBX

错XLAT操作数是隐含的(15)XCHGAX,DS

错,段寄存器不能用于交换指令中判断下列指令书写是否正确,不正确的请指出原因。注意:CALL指令、RET指令、INT指令、IRET指令及其相关操作P133P133(12)MOVBX,[AX]判断下列指令书写是否正确例题 MOVAL,80H CBW CMPAL,80H指令执行后6个状态标志位的值是什么?例题 MOVAL,80H读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=0?BEGIN:INAL,5FH;从5FH端口读入数据到ALTESTAL,80H;测试,影响ZF标志位,若AL最高

位为1,则ZF=0,否则ZF=1JZBRCH1;若ZF=1,则转BRCH1MOVAH,0;

0送入AHJMPSTOP;转STOPBRCH1:MOVAH,0FFH;

0FFH送入AHSTOP:HLT;

结束

答:要AH=0,则需要AL的最高位为1.读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=第七章汇编语言程序设计汇编语言程序结构、语句类型及格式变量名及其属性、指令中的变量名表达式与关系运算符伪指令:DB、DW、DD、DUP、EQU、ORG、段定义/过程定义/程序结束伪指令:SEGMENT、ENDS、ASSUME、PROC、FAR、NEAR、ENDP、END常用DOS功能的调用方法:1、2、9、0AH、4CH号调用程序调试过程(编译、连接、运行、debug)第七章汇编语言程序设计汇编语言程序结构、语句类型及格式例题已知某数据段定义数据如下,请画出数据存储的示意图。DATA1EQU100DATA_BYTEDB10,4,10HLENGTH1EQU$-DATA_BYTEDATA_WORDDW100,100H,-16LENGTH2EQU$-DATA_WORDDATA_DWDD3*20,0FFFDH注意:DATA1、LENGTH1和LENGTH2不占用存储单元!LENGTH1=3,LENGTH2=6注意DUP表达式例题已知某数据段定义数据如下,请画出数注意:DATA1、LE读下面程序段,请问:程序执行后数据段数据的存储情况?DATASEGMENTBUF1DB2DUP(3,0,2DUP(‘ABC’),FFH)

BUF2EQU 1A7BHBUF3DW1250HLEN=$-BUF1DATAENDS …… MOVAX,BUF2 MOVSI,OFFSETBUF1 MOV[SI],AX7BH1AHLEN=?读下面程序段,请问:程序执行后数据段数据的存储情况?DATA某数据段如下所示,请说出变量VECT1和VECT2的属性以及其各自的偏移地址。

VECTORS

SEGMENTORG

10

VECT1DW

47A5H

ORG

20VECT2DW

0C596H┇

VECTORS

ENDS答:变量VECT1和VECT2具有3个属性:(1)段属性,即变量VECT1和VECT2均在数据段VECTORS中;(2)类属性,变量VECT1和VECT2均是字变量,即变量中每一项都占用两个字节;(3)偏移属性,VECT1的偏移地址为OAH,而VECT2的偏移地址为14H上一页下一页某数据段如下所示,请说出变量VECT1和VECT2的属性指令XORAX,OPR1XOROPR2中,OPR1和OPR2是两个已赋值的变量,这两个XOR操作有何区别?第一个XOR是CPU执行的,程序运行时执行。第二个XOR,OPR1XOROPR2是一个表达式,此中的XOR是逻辑操作符,它在汇编是求得一个值。P159指令XORAX,OPR1XOROPR2中,O对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?ABDB?DATA1DW40DUP(?)DATA2DB‘ABCDEF’<1>MOVAX,TYPEAB<2>MOVAX,TYPEDATA1<3>MOVCX,LENGTHDATA1<4>MOVDX,SIZEDATA1<5>MOVCX,LENGTHDATA2(AX)=1(AX)=2(CX)=40(DX)=40*2=80(CX)=1对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内微机原理考前复习串讲课件微机原理考前复习串讲课件第六章程序设计与汇编语言编程汇编语言的基本语句;汇编语言程序的分段结构;汇编语言程序的解题方法及思路;顺序程序、分支程序、循环程序、子程序调用。注意:课件中的例题、习题、书中的例题、习题以及上机考试题目。

第六章程序设计与汇编语言编程汇编语言的基本语句;注意:课件编一程序段,完成符号函数:假设x的值存放在DATA1中,y的值存放DATA2中。编一程序段,完成符号函数:假设x的值存放在DATA1中,y的BEGIN:MOVAL,DATA1CMPAL,0

JGE

BIG;大于等于转BIGMOVAL,0FFH;DATA2中置-1MOVDATA2,AL

JMPAA

BIG:

JEEQUAL;ZF=1,转EQUALMOVAL,1;DATA2中置+1MOVDATA2,AL

JMPAA

EQUAL:MOVAL,0;DATA2中置0MOVDATA2,AL

AA:MOVAH,4CHINT21HJGE为有符号数跳转指令BEGIN:MOVAL,DATA1JGE输入一个字符串,再输入一个字符,统计该字符在字符串里出现的次数在屏幕上输出DATASEGMENTBUFDB50;定义缓冲区用来存 放输入的字符串

DB? DB50DUP(?)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTA:MOVAX,DATA MOVDS,AX

LEADX,BUF ;输入字符串MOVAH,0AH;系统10号功能调用INT21H

MOVDL,0AH ;换行MOVAH,2 ;系统2号功能调用INT21H

MOVAH,1 ;输入要统计的字符INT21H ;系统1号功能调用

输入一个字符串,再输入一个字符,统计该字符在字符串里出现的次

MOVDL,0AH;回车

MOVAH,2INT21H

MOVDL,BL;将统计结果 放入DL准备输出

ADDDL,30H;将数字转 换为相应的ASCII码

MOVAH,2;输出统计结 果,系统2号 功能调用

INT21H ;返回DOSMOVAH,4CH INT21H

CODEENDS ENDSTA

MOVBL,0;清零BL寄 存器准备计数

LEADI,BUF+2;设置字符 串开始位置

MOVCL,BUF+1;设置实际 输入字符的个数

A:CMPAL,BYTEPTR[DI]; 比较当前字符是不 是和要统计的字符 相符

JNENEXT;不是则跳转

INCBL ;是则计数器加1NEXT:INCDI ;指向下一个字符

LOOPA;如此循环

MOVDL,0AH;回车比较两个等长的字符串是否相同,并找出其中第一个不相等字符的地址,将该地址送BX,不相等的字符送AL。设M1为源串首地址,M2为目标串首地址。DATASEGMENT

M1DB'AEC….'M2DB'ABC….‘LENEQU$-M2DATAENDSCODESEGMENT

ASSUMEDS:DATA,CS:CODE,ES:DATASTR:MOVAX,DATA

MOVDS,AX

MOVES,AX

LEASI,M1;(SI)←源串首地址

LEADI,M2;(DI)←目标串首地址

MOVCX,LEN;(CX)←串长度

CLD

;(DF)=0,使地址指针按增量方向修改比较两个等长的字符串是否相同,并找出其中第一个不相等字符的地REPECMPSB;若相等则重复比较

JZSTOP;(CX)等于0则转到STOPDECSI;否则(SI)-1,指向不相等单元

MOVBX,SI;(BX)←不相等单元的地址

MOVAL,[SI];(AL)←不相等单元的内容STOP:

MOVAH,4CHINT21HCODEENDS

ENDSTR注意:程序中找到第一个不相等字符后,地址指针已自动加了1,所以将地址指针再减1即可得到不相等单元的地址。注意:学会读程序,分析程序实现功能REPECMPSB;若相等则重复比较注意

DATASEGMENTBUFFER1DB50,?,50DUP(?)NEWLINEDB13,10BUFFER2DB50DUP('$')

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,ES:DATASTAPROCFARSTAA:MOVAX,DATAMOVDS,AXMOVES,AX

LEADX,BUFFER1MOVAH,0AHINT21H

用子程序实现将从键盘输入的一组字符串中的小写字母改为大写字母;键盘输入字符串;数据段赋首址;附加段赋首址DATASEGMENT用子程序实现将从键盘输入的一组字OVER:LEADX,NEWLINEMOVAH,9HINT21H

MOVAH,4CHINT21HSTAENDPCHECKBHPROCCMPBH,'a'JBCHECKBH_OVERCMPBH,'z'JACHECKBH_OVERSUBBH,'a'-'A'CHECKBH_OVER:RETCHECKBHENDPCODEENDSENDSTAALEASI,BUFFER1ADDSI,2LEADI,BUFFER2

MOVCH,[BUFFER1+1]MOVCL,0BEGIN:

INCCLCMPCH,CLJBOVERMOVBH,[SI]CALLCHECKBHMOV[DI],BHINCSIINCDIJMPBEGIN;取字符串个数;屏幕上显示字符串;返回DOS;循环结束控制‘a’-‘A’是一个表达式,在汇编时得到一个值(20H)OVER:LEADX,NEWLINEL第八章存储器存储器是计算机的重要组成部分,用来存放计算机系统工作时所用的信息——程序和数据。

1.理解基本概念:内存、外存、字扩展、位扩展2.掌握微型机的存储系统存储器定义(存储器由能够表示二进制数“0”和“1”的、具有记忆功能的一些物理器件组成。存储器能存放一位二进制数的物理器件称为一个存储元。若干存储元构成一个存储单元。);存储器的分类及其特点;数据在内存中的存贮方式3.掌握几种常用存储器芯片及其与系统的连接;第八章存储器存储器是计算机的重要组成部分,用来存放计算机1、内存和外存(1)内存(或主存),用于存放当前正在使用的程序和数据,CPU可以对它直接访问,存取速度快,但容量较小。(2)外存(或辅存),用于存放一些CPU暂时不处理的程序和数据。当CPU要处理这些信息时,必须先将其调入内存。需通过专用设备才能对其进行读写操作。外存包括软盘,硬盘,光盘等等。相对内存来说,外存容量大,存取速度较慢1、内存和外存(1)内存(或主存),用于存放当前正在使用的程(1)只读存储器ROM只读存储器(ReadOnlyMemory—ROM)——用户在使用时只能读出其中信息,不能修改或写入新的信息,断电后,其信息不会消失。只读存储器分类:①存储单元中的信息由ROM制造厂在生产时一次性写入,称为掩膜ROM(MaskedROM);②PROM(ProgrammableROM—可编程ROM)

程序和数据是由用户自行写入的,但一经写入,就无法更改,是一次性的ROM;2、存储器的分类(1)只读存储器ROM只读存储器(ReadOnlyMem(1)只读存储器ROM③EPROM(ErasebleProgrammableROM—可擦除可编程ROM)——可由用户自行写入程序和数据,写入后的内容可用紫外线灯照射擦除,然后可以重新写入新的内容,可以多次擦除,多次使用。

E2PROM(ElectricallyErasebleProgrammableROM—电可擦除可编程ROM)——可用电信号进行清除和改写的存储器,使用方便。掉电不丢失。随机存取存储器(RandomAccessMemory)——RAM的特点是存储器中的信息能读能写,且对存储器中任一单元的读或写操作所需要的时间基本是一样的。断电后,RAM中的信息即消失。(2)随机存取存储器RAM(1)只读存储器ROM③EPROM(Eraseble(2)随机存取存储器RAM按其制造工艺分:(1)双极型半导体RAM

存取时间短,与MOS型比,集成度低,功耗大,价格高。(2)MOS型RAM①SRAM(StaticRAM—静态RAM)——SRAM是利用半导体触发器的两个稳定状态表示“1”和“0”。只要电源不撤除,信息不会消失,不需要刷新电路。②DRAM(DynamicRAM—动态RAM)——DRAM是利用电容端电压的高低来表示“1”和“0”,为了弥补漏电需要定时刷新。一般微机系统中的内存采用DRAM,配有刷新电路,每隔1—2ms刷新一次。(2)随机存取存储器RAM按其制造工艺分:3存储容量存储容量是指一块存储芯片上所能存储的二进制位数。假设存储芯片的存储单元数是M,一个存储单元所存储的信息的位数是N,则其存储容量为M×N。D7…D1D03存储容量存储容量是指一块存储芯片上所能存储的二进制位数例题已知单片6116芯片的地址线是11位,每个存储单元是8位,求其存储容量?解:因为可编址范围211

,即M=211,

每个存储单元可存8位,即N=8,所以,6116的存储容量=211×8 =2×1024×8 =2K×8 =2KB例题已知单片6116芯片的地址线是11位,每个存储例题

若要组成64K字节的存储器,以下芯片各需几片? ①6116(2K×8) ②4416(16K×4)解:①(64K×8)÷(2K×8)=32(片)②(64K×8)÷(16K×4)=8(片)例题若要组成64K字节的存储器,以下芯片各需几片?解:区别:芯片的存储容量和微机的存储容量微机的存储容量——

由多片存储芯片组成的总存储容量。①微机的最大内存容量

——由CPU的地址总线决定。如:PC486,地址总线是32位,则,内存容许最大容量是232=4G;②实际的装机容量——

由实际使用的若干片存储芯片组成的总存储容量。区别:芯片的存储容量和微机的存储容量微机的存储容量——由4、存储器的基本结构1、存储体—由多个基本存储单元组成,容量即为M×N;2、地址寄存器(地址锁存器)—锁存CPU送来的地址信号;3、地址译码器—对地址信号进行译码,选择存储体中要访问的存储单元;4、读/写驱动电路—包括读出放大和写入电路;5、数据缓冲器—芯片数据信号经双向三态门挂在数据总线上,未选中该片,呈高阻状态;6、读/写控制电路—接受来自CPU的片选信号、读/写信号。(对ROM—只读;对DRAM-刷新信号)4、存储器的基本结构1、存储体—由多个基本存储单元组成,“读”操作工作过程(1)送地址—CPU通过地址总线将地址送入地址寄存器,并译码;(2)发出“读”命令—CPU通过控制总线将“存储器读”信号送入读/写控制电路;(3)从存储器读出数据—读/写控制电路根据“读”信号和片选信号选中存储体中的某一存储单元,从该单元读出数据,送到数据缓存器。再经过数据总线送到CPU。“读”操作工作过程(1)送地址—CPU通过地址总线将地址“写”操作工作过程(1)送地址—CPU通过地址总线将地址送入地址寄存器,并译码;(2)发出“写”命令—CPU通过控制总线将“写”信号送入读/写控制电路;(3)写入数据到存储器—读/写控制电路根据“写”信号和片选信号选中存储体中的某一存储单元,将数据总线上的数据,送到数据缓存器,再写入到选中的存储单元。“写”操作工作过程(1)送地址—CPU通过地址总线将地址5典型SRAM芯片地址线:A0---A12数据线:D0---D7输出允许信号:OE写允许信号:WE选片信号:CS1,CS22A12A7A6A5A4A3A2A1D0D1345678910111213141NCA0D2GND27WECS2A8A9A11OEA10CS1D6D526252423222120191817161528VCCD7D4D36264CMOSRAM芯片6264(8KB):

主要引脚功能6264芯片与系统的连接常用的SRAM还有6116,

6232,62256,适用于较小系统5典型SRAM芯片地址线:A0---A122A12A7A译码电路

作用:将输入的一组二进制编码变换为一个特定的输出信号,即:将输入的一组高位地址信号通过变换,产生一个有效的输出信号,用于选中某一个存储器芯片,从而确定了该存储器芯片在内存中的地址范围。

分类:(1)全地址译码:用全部的高位地址信号作为译码信号,使得存储器芯片的每一个单元都占据一个惟一的内存地址

(2)部分地址译码:用部分高位地址信号(而不是全部)作为译码信号,使得被选中得存储器芯片占有几组不同的地址范围译码电路作用:将输入的一组二进制编码变换为一个特定的输应用举例D0~D7A0A12•••WEOECS1CS2•••A0A12MEMWMEMRD0~D7A19&&A18A14A13A17A16A15VCCY074LS138G1G2AG2BCBA应用举例D0~D7A0A12•••WEOECS1CS2•••应用举例A19A18A17A16A15A14A131111111地址范围:FE000H-FFFFFH

A12A11----A00000H----1FFFH应用举例A19A18A17A16A15A14A1311111应用举例用存储器芯片SRAM6116构成一个4KB的存储器。要求其地址范围为:78000H~78FFFHG1=1G2A=G2B=0时,译码器处于使能状态。A、B和C三条线的输入决定Y0

–Y7的状态。A19A18A17A16A15A14A13A12A11011110CBA应用举例用存储器芯片SRAM6116构成一个4KB的存储器6动态随机存储器DRAM-典型芯片举例DRAM芯片Intel2164A—动态随机存取存储器,8条地址线,2位数据线(输出和输入),3条控制线,两条电源线,单片存储容量64K×1。地址线采用分时复用,由CAS(列选通)和RAS(行选通),从而实现16位地址线,M=216=64K。NCDINWEA0A112345678RASA2GNDVCCCASDOUTA3A4161514131211109A6A5A721646动态随机存储器DRAM-典型芯片举例DRAM芯片Inte7存储器扩展技术位扩展字扩展字位扩展用多片存储芯片构成一个需要的内存空间,它们在整个内存中占据不同的地址范围,任一时刻仅有一片(或一组)被选中——存储器的扩展。存储器的存储容量等于:单元数×每单元的位数字节数字长7存储器扩展技术位扩展用多片存储芯片构成一个需要的内存空间位扩展当构成内存的存储器芯片的字长小于内存单元的字长时,就要进行位扩展,使每个单元的字长满足要求。位扩展方法:将每片的地址线、控制线并联,数据线分别引出连接至数据总线的不同位上位扩展特点:存储器的单元数不变,位数增加位扩展当构成内存的存储器芯片的字长小于内存单元的字长时,就要位扩展例用8片2164A芯片构成64KB存储器LS158A0~A7A8~A152164A2164A2164ADBABD0D1D7A0~A7位扩展例用8片2164A芯片构成64KB存储器LS158A0字扩展地址空间的扩展。芯片每个单元中的字长满足,但单元数不满足扩展原则:每个芯片的地址线、数据线、控制线并联,仅片选端分别引出,以实现每个芯片占据不同的地址范围字位扩展根据内存容量及芯片容量确定所需存储芯片数进行位扩展以满足字长要求进行字扩展以满足容量要求若已有存储芯片的容量为L×K,要构成容量为M×N的存储器,需要的芯片数为:(M/L)×(N/K)字扩展地址空间的扩展。芯片每个单元中的字长满足,但单元数不满8主存储器设计1、芯片选择2、存储器芯片的基本地址3、存储器芯片的容量扩充4、存储器芯片与CPU连接8主存储器设计1、芯片选择①芯片选择①SRAM与CPU连接,不需要外围电路,连接简单,用于小型控制系统。②DRAM常用于大型系统,因为需要刷新电路,比如PC机的内存条。③ROM通常用于存放固定的系统程序。②存储器芯片的基本地址D7…D1D0例如:6116的基本地址:000H~7FFH6264的基本地址:0000H~1FFFH①芯片选择①SRAM与CPU连接,不需要外围电路,连接简单,③存储器芯片的容量扩充对1#来说其地址范围00

000000000000~00

011111111111(即000H~07FFH)用两片6116芯片(2K×8)即可扩展成4K×8位,这种扩展方式就称为字扩展。对2#来说其地址范围00

100000000000~00111111111111(即0800H~0FFFH)译码和译码器③存储器芯片的容量扩充对1#来说其地址范围用③存储器芯片的容量扩充显然,我们可以用2片2114组成1K×8位的存储器,这种扩展方式称为位扩展。对2114来说,存储容量是1K×4位,而正常数据都以字节作为存储单元,显然需要进行扩展。N=(1K×8位)÷(1K×4位)=2③存储器芯片的容量扩充显然,我们可以用2片21④存储器芯片与CPU连接地址总线低位直接相连,高位通过译码器相连。地址线的连接方式确定了芯片的地址。数据总线8位芯片的数据线可以直接与8088CPU的相连,与8086CPU连接,要分成两个存储体;低于8位的要进行位扩充后再与CPU相连。控制信号系统总线中与存储器有关的控制信号有IO/M,RD,WR(针对8088)。④存储器芯片与CPU连接地址总线低位直接相连,高位通例题所以27128地址范围:00100000000000000000——00100011111111111111即20000H—23FFFH如图是某一8088系统的存储器连接图,试确定其中各芯片的地址空间。解:(1)27128是ROM,没有WR,Y0=0选中该片;该片14条地址线,其基本地址00000000000000~11111111111111;高6位:A19A18=00;A17=1;A16A15A14=000;例题所以27128地址范围:如图是某一8088系统的存储器连00110000000000000000—00110001111111111111即30000H—31FFFH解:(2)6264是SRAM,13条地址线,用2片,基本地址0000000000000~1111111111111;1#6264的高7位:A13=0

且Y4=0有效选中此片,则A16A15A14=100;A19A18=0;A17=1;1#6264地址范围:00110000000000000000解:(22#6264地址范围:00110010000000000000—00110011111111111111即32000H—33FFFH解:(2)6264是SRAM,13条地址线,用2片,基本地址0000000000000~1111111111111;A13=1

且Y4=0有效选中此片,2#6264的高7位:则A16A15A14=100;

A19A18=00;A17=1;2#6264地址范围:解:(2)6264是SRAM,13条第九章输入/输出接口I/O端口及其编址方式基本输入输出方法串口和并口

温馨提示

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

评论

0/150

提交评论