《微机原理与接口技术》实验指导书喻菲菲编班级:_______学号:_______姓名:_______广东技术师范学院机电学院目录MASM611安装指南 ................................................................................. 错误!未定义书签。
实验一:汇编语言上机环境及基本操作................................................. 错误!未定义书签。
实验二:输入输出程序的编制 ................................................................ 错误!未定义书签。
实验三:分支结构程序设计 .................................................................... 错误!未定义书签。
实验四:循环结构程序设计 .................................................................... 错误!未定义书签。
课程类型:学科专业基础课课程代码:09401309 课程总学时: 51 实验课程性质:非独立设课课程实验学时: 6综合性、设计性实验项目数: 3 个 6 学时适用专业:机械设计制造及其自动化开课时间:二年级第二学期开课单位:机电学院撰写人:喻菲菲审定人:周莉MASM611安装指南(以下适用于XP系统,win7可以按照,但是无法连接link,不兼容)双击文件夹MASM611full下的安装文件setup.exe,出现下面的界面按ENTER回车键继续按向下的箭头键选中第二项按默认方式安装,按ENTER回车键继续按向下的箭头键选中第二项安装在D盘,按ENTER回车键继续按向下的箭头键选中第二项Install for DOS/Windows & NT,按ENTER回车键继续按向下的箭头键选中第二项MS-DOS/Microsoft Windows,按ENTER回车键继续选中默认项无变化,按ENTER回车键继续已安装成功,按ENTER回车键继续按ENTER回车键继续按ENTER回车键继续按ENTER回车键继续按ENTER回车键继续按向下的箭头键选中最后一项退出安装,按ENTER回车键点击开始菜单中的运行,键入cmd,点确定,进入DOS界面。
输入cd\ 返回到根目录,输入D: 进入D盘输入cd masm611进入D:\masm611文件夹,再输入cd bin进入D:\masm611\bin文件夹输入edit 01.asm进入程序编辑界面实验一:汇编语言上机环境及基本操作一、实验目的及要求1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。
(在BIN目录下进行编辑(EDIT)、汇编(MASM)、链接(LINK)和DEBUG调试)3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、实验类型演示性实验三、实验内容1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
设定源程序的文件名为ABC。
DATA SEGMENTBUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCN EQU $-BUFDATA ENDSSTACK SEGMENT STACK ’STACK’STA DB 10 DUP(?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,CNDEC CXMOV AL,[BX]INC BXLP: CMP AL,[BX]JBE NEXTMOV AL,[BX]NEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START键入以下命令:C:\>MASM611\BIN\EDIT ABC.ASM此时屏幕的显示状态如图1所示。
图1 用EDIT编辑ABC.ASM程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在DOS状态下,采用宏汇编程序MASM对源程序文件进行汇编,其操作过程如图2所示。
图2 MASM宏汇编程序工作窗口汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。
其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。
这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。
3.用连接程序生成可执行程序文件经汇编以后产生的目标程序文件(.OBJ文件)并不是可执行程序文件,必须经过连接以后,才能成为可执行文件(即扩展名为.EXE)。
连接过程如图3所示。
图3 LINK连接程序工作窗口上述提示行回答以后,连接程序开始连接,如果连接过程中出现错误,则显示出错误信息,根据提示的错误原因,要重新调入编辑程序加以修改,然后重新汇编,再经过连接,直到没有错误为止。
连接以后,便可以产生可执行程序文件(.EXE文件)。
4.程序的执行当我们建立了正确的可执行文件以后,就可以直接在DOS状态下执行该程序。
如:C:\>MASM611\BIN\EDIT ABC本程序当中没有用到DOS中断调用指令,所以在屏幕上看不到程序执行的结果。
我们可以采用调试程序DEBUG来进行检查,相关内容请参见实验二。
四、实例分析下面通过一个汇编语言源程序的实际例子,来了解汇编语言源程序的建立、汇编、连接、运行的完整过程。
给出的程序是从键盘输入10个字符,然后以与键入相反的顺序将10个字符输出到显示屏幕上。
设定源程序名为STR.ASM。
1.用EDIT建立汇编语言源程序在DOS状态下,调用EDIT编辑程序建立文件名为STR.ASM的汇编源程序,如图4所示。
图4 用EDIT建立汇编语言源程序2.用MASM汇编生成目标文件源程序文件建立完毕后,调用宏汇编程序MASM对STR.ASM进行汇编,如图5所示。
图5 用MASM汇编生成目标文件3.用LINK进行连接生成可执行文件汇编完毕,程序正确,则可调用LINK进行连接,以生成可执行文件STR.EXE,连接过程如图6所示。
图6 用LINK连接生成可执行文件4.程序的运行在DOS状态下,直接键入可执行的程序文件名STR,然后从键盘输入“09”10个数字,输入回车键后,计算机将10个数字倒序排列输出,即“10”。
再次键入可执行的程序文件名STR,从键盘输入“abcdefghIj”10个字符,输入回车键后,计算机将10个字符倒序排列输出,即“jihgfedcba”。
运行过程及其结果如图7所示。
图7 程序的运行状态及结果实验二:输入输出程序的编制一、实验目的与要求了解DOS的中断调用,实现数据的输入与输出二、实验类型验证性实验三、实验原理及说明利用DOS中断调用中的1号,2号和9号调用功能实现数据的输入与输出,同时通过本程序的调试了解汇编软件的使用。
1号调用:键盘输入字符入口参数:无出口参数:输入字符的ASCII码在AL寄存器中。
2号调用:显示器输出入口参数:要输出的字符的ASCII码放在DL寄存器中出口参数:无9号调用:显示器输出字符串入口参数:DS:DX中存放输出字符串缓冲区的首地址,字符串要求用字符”$”结束。
出口参数:无四、实验内容和步骤1、使用9号调用输出一串提示字符串:Please input a number,(0-9)2、用1号调用从键盘输入一个字符:0-9中任意一个3、再用2号调用将输入的字符显示出来五、实验报告要求请写出你的实验程序实验三:分支结构程序设计一、实验目的与要求1.掌握多分支结构程序设计的方法;2.掌握无符数和带符号数比较大小转移指令的区别。
二、实验类型设计性实验三、实验内容和步骤1.在数据区中定义三个带符号字节变量:115,23,-202.编写程序将其中的最大数找出送到MAX单元中,并将这个数以十六进制的形式显示出来。
四、编程思路1.该题目要求掌握多分支程序设计方法。
2.为了实现指定功能,应从以下几个方面考虑:1)确定编程的算法思想。
2)确定带符号数比较大小转移应选择哪一组条件转移指令。
五、实验报告要求请写出你的实验程序实验四:循环结构程序设计一、实验目的与要求1.掌握循环结构程序设计的方法;2.掌握数据块传送程序设计的方法;3.掌握串传送指令的应用。
二、实验类型设计性实验三、实验内容和步骤1.编写程序实现将数据段STR1单元开始的20个字符移到STR2开始的存储区,20个字符串可以自己定义,例如:'WHAT IS YOUR NAME?',0AH,0DH,'$'2.假设STR1+20>STR2,可以用串传送指令,也可以用MOV传送指令。
四、编程思路该题目要求掌握单循环程序设计方法。
为了实现指定功能,应从以下几个方面考虑:1. 数据串操作的起始位置从高地址还是从低地址开始。
2. 确定使用串传送指令,还是用MOV指令。
3. 确定循环程序的结构。
五、实验报告要求请写出你的实验程序。