- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
安装VS2010、2012、2015 选中Visual C++ XP下需安装补丁 安装帮助文档:帮助-添加删除帮助内容 重置开发环境:工具-导入导出设置-重置 设置汇编语言关键字高亮显示 下载usertype.dat,拷贝到VS安装目录下的common files\IDE 在工具-选项-文本编辑器-增加.asm(Visual C++) 设置源程序显示行号:工具-选项-编辑器-C++ VS2015需下载C标准函数库msvcrt.lib 安装帮助文档 重置开发环境 设置汇编关键字高亮显示 设置显示行号 二、建立汇编语言工程 创建解决方案和工程 建议选择“空项目” 在旧解决方案里创建新工程后,要设置启动项目 设置汇编语言程序的编译器 工程上“生成依赖项” ,选择MASM 设置程序的运行环境 工程上属性-连接器-系统-子系统-console 添加源程序 选择visual c++的.cpp,但文件名用.asm 编译调试同Visual C++ 创建解决方案和工程 设置汇编语言编译器 设置程序运行环境 添加汇编语言源程序 编写汇编语言源程序 编译连接与运行调试 编译连接与运行调试 建议直接F10,一次性编译链接并进入单步调试模式。 调试时使用的跟踪类热键 F5 全速运行 Shift+F5 终止运行 F10 单步执行 F11单步进入子程序 Ctrl+F10 运行到当前光标处 F9 设置/取消断点 Shift+F11跳出本函数 调试时使用的查看类热键 ALT+8 反汇编 ALT+5 寄存器 ALT+6 内存 CTRL+ALT+M 1/2/3/4 VS中的标志位 Intel的标志位 OV OF UP DF EI IF PL SF ZR ZF AC AF PE PF CY CF 其实VS中的标志位是Intel标志位为1时对应的英文单词的速写 如PF=1 是偶校验 ParityEven Visual Studio寄存器的标志位 三、汇编语言程序格式 汇编语言面向硬件直接编程,所以需要对硬件环境和设置需要指示清楚 CPU 存储模式、函数调用缺省规范 堆栈段大小—若有深层递归需增加到符合要求 数据段定义 代码段定义 第一条指令位置 END main 程序结束要返回操作系统 调用OS标准函数ExiProcess(int return_val) 外部函数要用PROTO先声明再使用 Windows标准函数,PROTO STDCALL(可省) C函数PROTO C 可变参数类型 VARARG 参数类型为BYTE、DWORD等,不能DB、DD 外部的函数库用INCLUDELIB指明 用OPTION指明大小写是否敏感 由于调用C函数,大小写敏感 函数调用的参数传递 通过push param1等传递参数,倒着传输。 要注意是传地址(OFFSET 变量)还是传值 函数调用后的堆栈平衡 参数传递(push)改变了当前堆栈的栈顶ESP 函数调用后要把参数退出(pop)堆栈 C用 “ADD ESP,4*参数个数n” 即可堆栈平衡,不要pop,因为pop慢而且pop出来的数没有用 Windows标准调用的函数不用在主程序中堆栈平衡,因为子程序在返回时实现了堆栈平衡 函数调用的简写方法—宏缩写方式 INVOKE 函数名,参数1,参数2,…… 可代替 push参数 call函数 堆栈平衡 chr$ MACRO any_text:VARARG LOCAL txtname .data txtname db any_text,0 align 4 .code EXITM OFFSET txtname ENDM .code INVOKE printf,chr$(“Hello!”,0dh,0ah) ;与C语言的函数调用基本一致了。 采用chr$宏的函数调用缩写方式 四、汇编语言的程序元素 类型?数与表达式?指令/语句?函数/模块?源程序文件?工程?解决方案 标识符:关键字/保留字、标号、常量名、变量名、类型名、函数名、宏名等 表达式 常量表达式:编译器计算出来,放在二进制代码的位置 汇编语言没有变量表达式,寻址方式中的+*等不是EU计算的。一个变量表达式在汇编中要用多条指令实现 表达式具备与C同样的运算符顺序 有算术表达式、逻辑表达式 硬指令与软指令 硬指令:执行性语句,由CPU执行 软指令:指示性语句,由编译器/连接器识别,处理该指令 五、汇编语言的数据类型 简单数据类型与复杂数据类型 字符、数值、数组、地址与指针类型是简单数据类型 结构struct、联合union是复杂的数据类型,是多个数(类型可不同)组成的一个
您可能关注的文档
- 2016年中考科学复习:第38讲基本的化学反应教案.ppt
- 2014高三地理二轮专题复习——地表形态的变化教案.ppt
- 麦田里的守望者精选.ppt
- 改进物料包装规格增加移动时的稳定性提高托盘容积率-改精选.ppt
- 2014高压单选题(204T)教案.ppt
- 满井游记(经典)精选.ppt
- 2014高中生人际交往教案.ppt
- 标准横断面设计题稿.ppt
- 2016年中考物理热点专题五作图题教案.ppt
- 漫画八大危险作业注意事项精选.ppt
- 黑龙江省绥化市安达市任民中学2022-2023学年八年级下学期期中物理试题.pdf
- 高考激励演讲稿 .pdf
- 黑龙江省大庆市第六十九中学2022-2023学年九年级上学期期中考试化学试 .pdf
- 高校教师资格《高等教育心理学》试题(网友回忆版)六 .pdf
- 高三月考总结反思6篇 .pdf
- 高中化学第三单元化学能与电能的转化教学设计 .pdf
- 高中历史人教版必修二教案与教材资料(专题三第一课社会主义建设在探索.pdf
- 黑龙江省绥化市2022-2023学年九年级化学第一学期期末质量检测试题含解析.pdf
- 鳄鱼养殖项目可行性研究报告 .pdf
- 高等专科学校单招职业适应性测试模拟试题(附答案解析) .pdf
最近下载
- 丽声北极星自然拼读绘本第一级 Lola and the King 课件.pptx
- 人教版2024-2025学年九年级数学上册10月月考试题[含答案].pdf
- 品质工程教学课件.pptx
- 鲁教版五四制初一年级上册册数学知识点.pdf VIP
- 《聪明的牧羊人——欧洲民间故事精选》名著导读课件.pptx VIP
- QBT 2578-2002 陶瓷原料化学成分光度分析方法.docx VIP
- 《葡萄酒葡萄酒》课件.pptx VIP
- 新人教版高中数学选择性必修第一册全套教案含情景引入核心素养word版.docx VIP
- you and me(君と僕) 松井佑贵 吉他指弹 吉他谱.pdf
- 非急救转运协议书模板.docx
文档评论(0)