欢迎来到天天文库
浏览记录
ID:1036974
大小:464.50 KB
页数:20页
时间:2017-11-07
《机械专业-微机原理与接口技术-实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理与接口技术实验指导书201汇编基本原理21.1程序,可直接运行的程序,汇编源程序,汇编21.2CPU取指令、执行指令的过程32汇编工具MASM5.0使用方法32.1汇编源程序文件的建立方法32.2编译阶段52.3链接阶段62.4程序调试阶段73实验项目9实验一寻址方式和汇编语言程序上机调试步骤9实验二清零实验11实验三码制转换实验13实验四数据区移动实验16实验五冒泡法排序实验18201汇编基本原理1.1程序,可直接运行的程序,汇编源程序,汇编程序程序以文件的形式存在,它是由若干条“指令”顺序排列存储构成的。指令是对符合CPU指令集的所有信息的统称,“指令”在程序中以两种
2、形式存在,一种是以“指令代码”的形式(在可直接运行的程序文件中),另一种是以“助记符”的形式(在汇编源程序文件中)。无论“可直接运行的程序”还是“汇编源程序”,其中的指令都是以顺序排列的方式存储的,只是指令存在的方式不同。可直接运行的程序当程序中的指令是以可执行的“指令代码”的形式存在时,该程序即为可直接运行的程序,该程序所在的文件即为“可执行程序文件”。“直接运行”是指该程序中的指令代码可以被CPU直接执行。汇编源程序当程序中的指令是以“助记符”的形式存在时,该程序即为汇编源程序。该程序所在的文件即为“汇编源程序文件”。汇编每一条指令助记符都一一对应着一条指令代码。将以助记符形
3、式存储的汇编源程序文件翻译成以指令代码形式存储的可执行程序文件的过程叫汇编。其逆过程叫反汇编。换言之,以图1所示为例,经过汇编过程后,汇编源程序文件(*.asm)中以顺序排列方式存储着的所有指令助记符1到指令助记符n,都一一对应的转换成了可执行程序文件(*.exe)中的指令代码1到指令代码n。图1201.2CPU取指令、执行指令的过程如图1所示,CPU取指、执行指令的的过程如下1)CPU中程序计数器PC所指向的地址即为将要取出的指令代码所在的地址;2)PC指向地址后,经读信号有效,该地址中存放的指令代码通过数据总线传送到CPU内部指令寄存器IR中,此时CPU只是取出该指令的二进制
4、代码,尚不知道该二进制代码的具体含义;3)CPU内部的指令译码器ID对IR寄存器中的二进制代码进行译码,经比对其内部的指令集后,CPU即可知道IR中二进制代码的具体指令代码含义;4)知道指令代码的具体含义后,IR中的指令将被执行。2汇编工具MASM5.0使用方法MASM5.0宏汇编程序用于DOS环境下。这里我们主要使用它的MASM.exe编译工具和LINK.exe链接工具。如前所述,汇编是将助记符书写的源程序文件翻译为二进制指令代码的可执行文件的过程。在MASM5.0工具,实际的汇编过程分为两个阶段,编译阶段和链接阶段。图22.1汇编源程序文件的建立方法可以使用任何一个文本编辑软
5、件来建立汇编源程序文件。如在windows环境下可以使用其“记事本”工具,在DOS环境下可以使用edit.com工具等。需要注意的是,建立的汇编源程序文件必须以.asm为扩展名,由于DOS不支持中文和长文件名系统,因此*.asm的文件名部分不可以采用中文输入法输入文件名,常见的可以采用英文、数字或下划线等,并且字符的长度不可以超过8个(最多可以是8个)。例如“12345678.asm”和“abc_1.asm”都是合法的,而“123456789.asm”及“汇编.asm”都是非法文件名,不能被masm5.0的编译工具识别。此外,存盘路径也不可以出现中文或长字符。实例:在window
6、s操作系统点“开始”菜单——“运行”栏,在其中输入cmd,回车,进入模拟DOS环境。如图3所示。20MASM5.0工具通常安装在实验室电脑的D:或者E:根目录下。在模拟DOS环境中敲入D:或者E:,进入相应盘的根目录。然后敲edit回车,进入文本编辑环境。如图4所示。图320图4在edit编译器中,输入源程序,点击“file”菜单的“saveas”“另存为”选项,选择存盘路径为D:或者E:(根据masm5.0所在的路径选择),在FileName栏中输入汇编源程序文件名abc.asm,点击“ok”即建立汇编源程序文件成功。如图5所示。图52.2编译阶段如图2所示,建立好
7、汇编源程序后,需要使用masm.exe工具进行编译,编译的目的是为了得到*.obj的目标代码文件,该文件是纯二进制代码文件,不能直接显示在屏幕上。经链接后才能得到可执行文件*.exe。在编译阶段中,masm.exe工具将对源程序的语法进行检验,如果发现错误将给予提示。错误提示分为严重错误和警告错误两种。严重错误指示某些指令存在语法错误,不能形成对应的二进制机器指令。而警告错误指示某些指令含义不够明确,需要提醒程序员注意。程序员可以根据提示对源程序进行修改,直到得到正确的结果为止。
此文档下载收益归作者所有