- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言调试工具的使用
2008-04-09 13:01
软件工具 宏汇编程序 MASM5.0动态调试程序 DEBUG 宏汇编程序 MASM5.0
汇编( Assemble )就是把用汇编语言编写的源程序翻译(汇编)成机器语言的目标程序。其基本工具是汇编程序。可使用小汇编程序( ASM ), 也可以使用微软公司产品宏汇编程序( MASM )。实验推荐使用宏汇编程序,因为它不但可以代替 ASM ,而且可以汇编具有宏定义的汇编程序。
如何编写和汇编语言程序
软件运行基本环境
汇编源程序编写
汇编处理 — 执行宏汇编程序 MASM.EXE
目标代码链接 执行链接程序 LINK.EXE
应用程序执行
如何编写和汇编语言程序
可以用普通文本编辑器编辑汇编语言源程序。常用的有 MS-DOS 下的 EDIT 文本编辑程序, Windows 下的写字板( WORDPAD.EXE )等。用户通过屏幕编辑程序键入源程序,检查无误,可将源程序存到汇编系统盘上,该程序的扩展名为· ASM 。 软件运行基本环境
运行汇编程序必备的软件环境: DOS 操作系统;汇编系统。
汇编系统盘应包含如下文件:
MASM 宏汇编程序文件
LISK 连接程序文件
CRFF 索引程序文件(也可不用)
汇编源程序编写
1 )源程序的书写格式
当 CPU 访问内存时,是把存储器分成若干个段,通过 4 个段寄存器中存放的地址对内存储器访问,因此在编源程序时必须按段的结构来编制程序。由于每个段的物理空间为≤ 64KB ,所以程序中各段可以分别为一个或几个。源程序的书写一般有如下形式:
逻辑堆栈段 堆栈段名 SEGMENT STACK
用变量定义预置的堆栈空间
·
·
堆栈段名 ENDS
逻辑数据段 数据段名 SEGMENT
用变量定义预置的数据空间
·
·
数据段名 ENDS
逻辑代码段 代码段名 SEGMENT
ASSUME 定义各段寻址关系
过程名 PROC …
程序
·
·
过程名 ENDP
代码段名 ENDS
END 过程名或起始标号
在源程序中最少要有一个代码段,数据段根据需要可有可无,也可以增设附加段。对于堆栈段也可以根据需要可有可无,但在连接( LINK )时计算机将显示警告性的错误:
Warning : N STACK segment
There was 1 error detected.
在程序中如果没有用到堆栈时,该错误提示不影响程序的运行,如果程序中用到堆栈时必须设置堆栈段。
其中: SEGMENT 、 ASSUME 、 PROC … ENDP 为伪指令,伪指令是发给汇编程序 ASM 的,而不和微处理器打交道,在汇编时不产生目标代码,只是把源程序中各段的设置情况告诉汇编程序。
2 )段寄存器的段地址的装入
Assume 伪指令语句只是建立了当前段与段寄存器的联系,但不能把各段的段地址装入相应的段寄存器中,段寄存器的段地址的装入是在程序中完成的。
( 1 ) DS 、 ES 、 SS 的装入
由于段寄存器不能用立即数寻址方式直接传送,所以段地址装入可通过通用寄存器传送给段寄存器。
MOV AX ,逻辑段名
MOV 段寄存器, AX
其中逻辑段名为程序中定义各逻辑段的名字,(不包括代码段),段寄存器是指与各逻辑段相对应的各段寄存器( DS 、 ES 、 SS )。
( 2 ) CS 的装入
代码段寄存器是装当前执行目标代码的段地址, IP 是提供下一条要执行的目标代码的偏移量,为了保证程序的正确执行, CS 和 IP 装入新值时是一起完成的。
对 CS 和 IP 的装入有如下几种情况:
①根据用户程序中的伪指令 END 后的标号为 CS 和 IP 提供代码段的段地址和目标代码的偏移地址。
②在程序运行过程中,当执行某些指令和操作时, CPU 自动修改 CS 和 IP 的值,使它们指向新的代码段。
3 )程序中的数据与变量
在汇编源程序中的数据除了立即数,由指令产生的数和通过键盘输入的数以外,还胡大量的数据是通过伪指令语句进行预置和分配的,也就是在某逻辑段中(除代码段),将所需的数据以某种形式存放起来,在程序中可任意调用。在数据定义的同时还可以定义变量,将变量与数据结合在一起。可以为某个变量分配存储空间以便在程序执行过程中存放中间结果和最终结果,使用起来极为方便。
(1)变量与数据的定义
变量与数据的定义可以通过符号定义伪指令 EQU 、=和数据定义伪指令 DB 或 DW 或 DD 来实现。
EQU 和=可以出现在程序的逻辑段内也可出现在逻辑段外。
(2)汇编程序中数据的提供方法
①用数据定义伪指令提供数据
如果程序要求原始数据为一批数据时,用数据定义伪指令 DB 、 DW 和 DD 来提供较为方便。
②用立即数的形式
您可能关注的文档
- 管网宣传册-彩版.doc
- 光电涂鸦摄影欣赏及简易制作方法.doc
- 广东女子职业技术学院2011年招生简章材料.doc
- 广东省高职高专院校网站设计大赛.doc
- 广东省教育技术能力中级培训的多选答案.doc
- 广告布局.doc
- 广告策划与创意实验报告.doc
- 广告公司总经理助理的工作职责和范围.doc
- 广告设计常用图像文件格式.doc
- 广告设计制作合同双方范本.doc
- 执业药师之《药事管理与法规》检测卷讲解含答案详解(最新).docx
- 执业药师之《药事管理与法规》全真模拟模拟题及答案详解(全国通用).docx
- 2025年执业药师之《西药学综合知识与技能》模拟试题附参考答案详解(突破训练).docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库含答案详解(培优a卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题精选附答案详解(名师推荐).docx
- 执业药师之《药事管理与法规》强化训练模考卷带答案详解.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺测试卷包附参考答案详解(b卷).docx
- 2025年执业药师之《西药学综合知识与技能》模考模拟试题及参考答案详解(夺分金卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题含答案详解【b卷】.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库带答案详解(b卷).docx
文档评论(0)