资源描述:
《微机原理与接口技术_朱有产_实验指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《微机原理及接口技术》实验指导书实验-汇编语言程序设计1一.实验目的1.学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。为后续课程打下坚实的基础。2.学会不同进位制数及编码相互转换的程序设计、调试和取得结果的方法。二.实验设备1.网管中心微机机房PC机三.实验准备1・根据实验目的认真做好实验前的预习,记住操作方法;2.预先编制好实验用的程序,提高实验效率。四.实验要求程序调试完后,须由实验辅导教师在机器上检査运行结果,经认可后在实验指导书签字,才算完成。每个实验完成后,应写出实验报告。实验报告的要求如下:1.设计说明:说明程序的功能、结构、原
2、理及算法。2.调试说明:上机时遇到的问题及解决办法的调试情况,观察到的现象及英分析,对程序设计技巧的总结以及程序输出结果的分析,实验的心得体会等。3・程序框图。4.程序清单。五.实验内容、步骤1••编语言程序上机操作方法实验举例如下:例1.1比较字符串bjchx试编写一程序,比较两个字符串stringl和string2所含的字符是否相同,若相同则显示'Match',否则,显示'Nomatch'。我们对以用串比较指令来完成题目所耍求的功能。上机过程如下:(1)建立asm文件在windows系统环境下,应丿IJ写字板编辑程序建立源文件。(2)用汇编程序MASM队源文件汇编产生目标
3、文件・OBJ在windows环境下,点击masm文件,而后输入.asm的一文件名:C:>MASMABC.ASMZ如汇编指示出错则需重新调用编辑程序修改错误,直到汇编通过为止。如调试时需要用Lst文件,则应在汇编过程中建立该文件。(3)用连接程序LINK产生可执行文件EXE在windows环境下,点击link文件,而后输入*.obj的文件名:C:>LINKABC.OBJ(4)执行程序在windows环境下,点击*.exe文件运行程序,也可在dos的环境下执行程序如下:C:>ABC/Match.是屏幕终端上显示出程序运行结果。♦另一种调试程序的方法是使用debug程序。2.系统操
4、作练习(一)数据传送练习将内存DATA1单元开始的0〜15共16个数传送到DATA2单元开始的数据区中。(二)数码转换程序调试练习将ASCII码表示的十进制数转换为二进制数。一.编程练习(A)编程实现将I•进制数的ASCII码转换为BCD码。要求:用DEBUG的E命令从键盘输入的九位十进制数的ASCII码已存放在3500H起始的内存单元内(例30H、30H、32H、34H、30H),把它转换为BCD码后,再分别存入350AH起始的内存单元内。若输入的不焰十进制数的ASCII码,则对应存放结果的单元内容为“FF,。(B)编程将十六位二进制数(用二字节十六进制数表示)转换为五位A
5、SCII码表示的十进制数。要求:在35OOH〜3501H单•元存放被转换的十六位二进制数(例00AAH),转换结果存放到3510H〜3514H单元中。(C)编程将存入35OOH〜3501H单元中的二字节四位十六进制数(例20ABH)转换为以字节的ASCII码,转换结果存入起始地址为35OAH的内存单元中。(D)编程实现将存入3500H〜3507H单元中的四个十进制数非压缩BCD码(例:0102,0304,0506,0708),转换成二进制数码(川十六进制数表示),并存入起始地址为3510H的内存单元屮。(E)编程实现将存入3600H〜3603H单元屮的四个I•进制数压缩BCD
6、码(例:12,34,56,78),转换成二进制数码(用十六进制数表示),并存入起始地址为3610H的内存单元中。(F)编程将存入3300H〜3301H单元屮的二字节四位十六进制数(例01ABH)转换为三字节的非压缩BCD码,转换结果存入起始地址为33OAH的内存单元中。实验二汇编语言程序设计2一.实验忖的1.掌握使川运算类指令编程及调试方法;2.学会运川运算类指令解决实际问题的方法;3.掌握运算类指令对各状态标志位的影响及其测试方法。二.实验设备PC系统机一台。三.实验内容、步骤及要求1.二进制双精度加法运算计算X+Y=Z,将结果Z存入某存储单元。本实验程序是双精度(2个16
7、位,即32位)运算,利用累加器AX,先求低十六位和,并存入低位和仔储单元,后求髙16位和,再存入高位和存储单元。由于低位和可能向髙位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时CF=1,高位字相加时加±CF中的Io2.十进制数的BCD码减法运算计算X・Y=Z,其中X、Y、Z为BCD码。3.乘法运算本实验实现十进制的乘法,被乘数和乘数均以BCD码形式存放于内存中,乘积在屏幕上显示。4.用减奇数开平方运算8086/8088指令系统中有乘除法指令但没有开平方指令,因此,开平方运算是通过程序来实