- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 搭建开发环境
实验一 搭建开发环境
实验目的
搭建汇编语言的开发环境,熟悉汇编程序开发的基本步骤,掌握基本的调试操作。
实验内容与要求
基于VISUAL STUDIO 平台,结合MASM32的汇编器,构建IA-32汇编语言的开发环境。
仪器、设备
PC机
实验步骤
VC6平台下的汇编语言开发环境搭建(使用MASM32的汇编器+VC6)
配置IDE环境:
在VC的tools/option/Directories页面中添加Irvine32.inc等所在的目录到include files中; 添加Irvine32.lib等所在的目录到library files.
将masm32中的ml.exe和ml.err拷贝到VC的Microsoft Visual Studio\VC98\Bin目录中
创建与配置project:
新建VC的win32 console类型空工程
创建一个asm后缀的文件,并把汇编代码(教材第85页addsub3.asm)输入该文件中,然后将该asm文件添加到Source Files
选中asm文件,在project settings/Custom Build页面中命令行加:
ml /c /coff /Fo$(TargetDir)\$(InputName).obj $(InputPath)
输出中加上:
$(TargetDir)\$(InputName).obj
“Project setting”页面的”link”选项卡中“object/library module ”中加入irvine32.lib
汇编与链接不带输出的加减法程序(即教材第85页addsubTest.asm);
在程序最后加入调用DumpRegs过程的语句,以输出各寄存器的值。
以单步执行的方式调试该程序,查看每步结果,并解释每步结果,并写成注释。(特别注意对标志位的影响)
(可选)尝试修改程序。
(可选)单步跟踪课件中4.3.3节的程序“ptr应用示例”,结合VC6的内存查看功能(通过菜单view(debug windows(Memory调出内存查看窗口)理解每步的执行结果。(注意课件中只是大部分代码,请补全头文件以及程序退出宏。)
参考资料1:
1. VC6.0等visual studio集成开发环境对标志位的称呼与通常的不同,它们的对应关系如下:
OV=overflow flag (OF)
UP=direction flag (DF)
EI=interrupt flag (IF)
PL= Sign Flag (SF)
ZR=zero flag (ZF)
AC=auxiliary flag (AF)
PE= parity flag (PF)
CY=carry flag (CF)
2. 参考资料2:
上述实验使用的是Visual Studio 6.0。实验完成以后也可以偿试其它的开发环境的配置。以下是Visual Studio 2010环境的配置,供参考:
VS2010平台下的汇编语言开发环境搭建
在? VC++? 中新建一个空项目,取名为? Test
定制? VC++? 工程构建规则
设置完? VC++? 生成自定义项文件后,再添加一个? C++? 文件,并注意取名时后缀名记为? .asm?
设置? VC++? 工程的项目属性
需要添加库路径,这里的库路径指的是 Intel? 汇编语言程序设计 中的 Irvine 库
设置包含路径
设置依赖库文件,添加 Irvine32.lib
设置项目输出
设置生成汇编代码列表,添加? $(ProjectName).lst? 属性
文档评论(0)