A4-1-汇编语言语法-白底.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第四章汇编语言;汇编:将汇编语言编写的程序翻译成机器代码组成的目标程序的过程成为汇编

汇编程序:实现自动完成汇编过程的软件叫汇编程序或汇编器,如MASM.EXE。

源程序:按汇编语言语法规则编写的文本文件叫汇编语言源程序或汇编语言程序,如ASM文件。

目标程序:由源程序经过汇编而得到的一组机器代码叫目标程序,如OBJ文件。

链接程序:将目标文件与库文件或其它目标文件连接形成可执行文件的软件叫连接程序

可执行程序:由机器代码组成的可提供操作系统执行的文件叫可执行程序或可执行文件,典型的如COM文件、EXE文件。

;汇编过程;汇编程序(即汇编器)总的功能就是将用ASCII码形式的汇编源文件转换成二进制机器代码组成的目标文件。

其具体功能包括以下几方面:

1) 检查源程序中的语法错误,并给出错误信息

2) 产生源程序的目标程序,并给出列表文件

3) 支持地址和数据的符号变量表示

4) 支持对内存的管理

5) 支持多种类型的数据表示

6) 支持程序的模块化组织

7) 支持宏汇编、条件汇编等高级操作;一般来说,开发汇编语言程序有以下面五个步骤:

1)设计

根据任务要求,设计程序结构、算法,画出流程图。

2)编辑

根据设计方案,创建汇编语言源程序。

它由程序员通过文本编辑器来完成。DOS下常用的有Edit、PE2等。

3)汇编

将汇编语言源程序源程序转化为机器可以理解的目标程序。

汇编器用于完成这步工作。汇编器可以发现源程序中的语法错误,如格式错误、非法指令、操作数类型不匹配等,提示程序员对源程序加以修改,并重新汇编。

常用的汇编器有Masm、TurboASM等。;4) 连接

汇编后生成的目标程序虽然记载了CPU可理解的机器代码,但它缺少DOS所需要的重定位信息,所以并不能直接运行。目标程序必须经过连接器连接,生成附带重定位信息的可执行程序(EXE文件或COM文件)才能运行。

连接器的一个任务就是从目标模块中产生一个运行模块,并使其具有可重定位性。

连接器的第二个任务是可将几个目标模块结合成一个可执行的模块。并同样使其具有可重定位性。这样,你可以一次编写程??的一部分,通过结合,将几个目标模块合并,产生一个完整的运行模块。

连接器可以发现源程序中的连接错误,如段的溢出或覆盖,不存在或不匹配的模块、不存在或不匹配的标号、变量等。

常用的连接程序是LINK.EXE,它在DOS系统和MicrosoftMasm5.0软件包中都有提供。;汇编语言程序的开发过程和工具;5) 调试

完成设计、编辑、汇编、连接后得到的可执行程序中可能存在一些错误(Bug),这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运行出现结果错误、死机甚至其它无法预测的后果。我们称这类错误为逻辑错误,它们是汇编器和连接器都无法发现的。这类错误只能靠程序员凭借调试器对可执行程序进行耐心细致的跟踪调试,才能逐一排除。

典型的调试器有DOS中的Debug,Borland公司的TurboDebug,Microsoft公司的CodeView。它们都具有程序加载、运行、单步跟踪、断点跟踪、查看修改存储器、查看修改寄存器、反汇编等基本功能。后两种还具备源程序级调试等高级功能,使用起来更加得心应手。;stacksegmentparastackstack;定义堆栈段

db1024dup(?)

stackends

datasegmentparadata;定义数据段

hellodbHello,world!,0dh,0ah,$

dataends

codesegmentparacode;定义代码段

assumecs:code,ds:data,es:data,ss:stack

mainprocfar

start:

pushds

xorax,ax

pushax

movax,data

movds,ax

leadx,hello

movah,9

int21h

ret

mainendp

codeends

endmain;程序起始地址;;;;;;;汇编语言源程序采用分段结构,由若干个段构成一个源程序。而一个段又是由若干个语句组成的,语

文档评论(0)

RealGenius + 关注
实名认证
文档贡献者

如有不慎侵权,请联系删除!

1亿VIP精品文档

相关文档