微机原理实验—汇编语言指导书.docx
徼知百科将垓口井去卡哈招且4X董洁编北京科技高校自动化学院限制科学与工程系2013年5月微机原理与接口技术是工科计算机与相关专业学习微型计算机基本学问和应用技能的重要课程。本课程帮助学生驾驭微型计尊机的硬件组成与运用:学会运用指令系统和汇编语言进行程序设计:熟识各种类型的接口与其应用,树立起微型计算机体系结构的基本概念,为后继计算机课程的学习与应用打好基础。试验教学是本课程的重要组成部分,对学生理解概念、进行程序设计与提高应用技能至关重要。在指导书中,每一个试验均依据该课程试验大纲的要求编写,力求紧扣理论学问点、突出设计方法、明确设计思路,通过多种形式完成试验任务,最终引导学生有目的、有方向地完成试验任务,得出试验结果C书中标(*)的试验可酌情选作。由于作者水平有限,书中难免存在不足之处,敬请读者指责指正。编者2013年5月前言2目录3第一部分汇编语言程序试验试验一显示程序试脸傅提!未定义书签.一、试验目的1二、试验所用设备1三、试验内容1四、试验步骤2五、参考程序清单2六、试验报告内容与要求3试验二数据传送试验4一、试验目的4二、试验所用设备4三、试验内容4四、试验步骤5五,试验报告内容与要求6试验三数码转换程序试验7一、试验目的7二、试验所用设备7三、试验内容7五、试验报告内容与要求9试验四运算类程序试验IO一、试验目的10二、试验所用设备10三、试验内容10四、试验步骤11五、试验报告内容与要求11试验五分支程序设计试验12一、试验目的12二、试验所用设备12三、试验内容12四、试验步骤12五、试验报告内容与要求13试验六循环程序设计试验14一、试验目的14二、试验所用设备14三、试验内容14四、试验步骤14五、试验报告内容与要求14试验七子程序设计试验15一、试验目的15二、试验所用设备15三、试验内容15四、试验步骤16五、试验报告内容与要求17试验八综合程序设计试验.18一、试验目的18二、试验所用设备18三、试验内容18四、试验步骤18五、试验报告内容与要求19其次部分16位微机接口技术试验附录一:试验报告格式20实暗一显示程序试殴一、试验目的1 .驾驭在PC机上以十六进制形式显示数据的方法:2 .驾驭部分DOS功能调用运用方法:3 .熟识汇编语言调试环境和TUrb。DebUgger的运用。二、试验所用设备PC微机一台。三、试验内容一般来说,程序须要显示榆出提示运行的状况和结果,有的还须要将数据区中的内容显示在屏幕上。本试验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成些提示信息的显示。试验中可运用DOS功能调用(INT21H).(1)显示单个字符输出入口:AH=O2H调用参数:D1.=输出字符(2)显:示字符串入口:AH=09H调用参数:DS:DX=串地址,$'为结束字符(3)键盘输入并回显入口:AH=O1.H返回参数:A1.=输出字符(4)返回DOS系统入口:AH=4CH调用参数:A1.=返回码四、试验步骤1 .运行轻松汇编软件,选择Edit菜单,依据试验内容的描述编写试验程序,本试验显示部分参考试验流程如图IT示;2 .运用Cofnpi1e菜单中的Cof1.IPi1e和1.ink对试验程序进行汇编、连接:3 .运用RUn菜单中的RUn,运行程序,视察运行结果;4 .运用RUn菜单中的DCbUg,谓试程序,视察调试过程中,数据传输指令执行后,各寄存器与数据区的内容:5 .更改数据区中的数据,考察程序的正确性。图17显示程序试验流程图五、叁考程序清单DATASEGMENTMESDB,Showaashex:*,OAH1ODH,$,SDDB'a'DATAENDSCODESEGMENTASSUMECS:CODE1DS:DATASTART:MOVAX,DATAMOVDSfXMOVDX,OFFSETMES:显示提示信息MOVA1.1.,0911INT21HMOVDI,OFFSETSDMOV1.fDS:DIANDA1.,OFOH;取高4位SHRA1.,4CMPA1.,OAH;是否是A以上的数JBC2ADDA1.,07HADDA1.,3011MOVD1.,A1.;显示字符MOVH,02HINT21HMOVA1.,DS:DIAND1.OFH;取低4位CMPA1.,OAHJBC3ADDA1.,07HC3:ADD1.,3011MOVD1.,A1.;显示字符MOVH,0211INT21HMOVX,4C00H;返回DoSINT21HCODEENDSENDSTART六、试验报告内容与要求写出程序调试过程与运行状况。实轴二数据传送试驻一、试验目的1 .熟识汇编语言调试环境和TUrboDebUgger的运用:2 .驾驭与数据有关的不同寻址方式。二、试验所用设各PC微机一台。三、试验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。参考试验程序:DDTASEGMENT;定义源数据段MSRDB"HE1.1.O,WOR1.D!*"1.ENEQU$-MSRDDATAENDSEXDASEGMENT;定义附加数据段MSDDB1.ENDUP(?)EXDENDSMYSTACKSEGMENTSTACK;定义堆栈段DW20D1.P(?)MYSTACKENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DDATA,ES:EXDASTART:MOVAX,DDATAMOVDS,AX;装载数据段寄存器MOVAX,EXDAMOVES,X;装载附加数据段寄存器MOVSI,OFFSETMSR;设置SIMOVDI,OFFSETMSD:设置D1.MOVCX,1.ENNEXT:MOVA1.,SI:起先传输数据MOVES:DI,A1.INCSIINCDIDECCXJNZNEXTPUSHESPOPDS;将附加段寄存器的段值赋给数据段寄存器MOVDX,OFFSETMSDMOVAH,9INT21HMOVAX,4C00H;利用DOS功能调用返回DoS状态INT2111CODEENDSENDSTART将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:MOVBX,0MOVCX,1.ENNEXT:MOV1.,MSRBXMOVES:MSDBX,A1.INCBX1.OOPNEXT四、试验步骤1 .运行轻松汇编软件,选择Edi1.菜单编写试验程序:2 .运用Compi1.e菜单中的Compi1.e和1.ink对试验程序进行汇编、连接;3 .运用RUn菜单中的RUn,运行程序,视察运行结果;4 .运用RUn菜单中的DebUg,调试程序,视察调试过程中,数据传输指令执行后,各寄存器与数据区的内容;5,更改数据区中的数据,考察程序的正确性。五、试验报告内容与要求写出程序调试过程与运行状况。实验三数码转换程序试一、试验目的驾我不同进制数与编码相互转换的程序设计方法。二、试验所用设备PC微机一台。三、试验内容计算机输入设备输入的信息一般是由ASC1.1.码或BCD码表示的数据或字符,CPU用二进制数进行计算或其它信息处理,处理结果的输出又必需依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换和代秒的转换是必不行少的。计算机与外设间的数码转换关系如图3T所示,数码对应关系如表3T所示。图3T计算机与外设间的数码转换关系1 .将ASCn码表示的十进制数转换为二进制数十进制数可以表示为:Dn×10n+Dn-1.×Ion-I+-DOX100=DiX1.oi其中Di代表十进制数I、2,39、0»上式可以转换为:DiX10i=(Dn×10+Dn-1.)×IOHDn-2)×10+÷D1.)X10+D0由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位Dn起先作乘10加次位的操作,依次类推,则可求出二进制数结果。本试验要求将缓冲区中的一个五位十进制数OO(H2的ASCn码转换成二进制数,并将转换结果按位显示在屏幕上。转换过程的参考流程如图3-2所示。表37数因转换对应关系2 .将十进制数的ASCH码转换为BeD码本试验要求将键盘输入的一个五位十进制数54321的ASCi1.码存放入数据区中,转换为BCD码后,并招转换结果按位分别显示于屏幕上。若输入的不是十进制数的ASC1.I码,则输出“FF”。提示:一字节ASCn码取其低四位即变为BCD码。转换部分的试验流程参见3-3。3 .将十六进制数的AsCI1.码转换为十进制数十六位二进制数的值域为0-65535,最大可转换为五位十进制数。五位十进制数可表示为:N0=D4X10'+D,×10,+Dj×10-+Di×10+D因此,将十六位二进制数转换为五位ASCI1.码表示的十进制数,就是求D并将它们转化为ASCI1.码。图3-2十进制ASCI1.转换为图3-3十进制ASCU转换为二进制数参考流程BCD码参考流程本试验要求将缓冲区中存放的OoOCH的ASeH码转换成十进制数,并将转换结果显示在屏幕上。转换部分的试验流程参见图3-4。4 .BCD码转换为二进制码本试验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。转换部分的试验流程参见3-5。四、试验步膜1 .运行轻松汇编软件,选择Edit菜单编写试验程序;2 .运用Compi1.e菜单中的CompiIe和1.ink对试验程序进行汇编、连接:3 .运用RUn菜单中的RUn,运行程序,视察运行结果:4 .运用RUn菜单中的DebUg,调试程序,视察调试过程中,数据传输指令执行后,各寄存器与数据区的内容:5 .更改数据区中的数据,考察程序的正确性。五、试验报告内容与要求依据试验要求编写程序并调试,写出程序调试过程与运行状况。图5-2分支程序试验流程图实验七子程序设计试验一、试验目的1 .驾驭子程序的定义调用方法:2 .驾驭系统功能调用程序的运用和编写方法。二、试验所用设备PC微机一台。三、试验内容在汇编程序设计中,用户通常会将常用的具有特定功能的程序段编制成子程序运用。般过程定义伪操作的格式如下:procedurenamePROCAttributeprocedurenameENDP其中AttribUte是指类型屈性,可以是NEAR或FA