- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机原理4_asm_program
第四章 汇编语言程序设计 Assemble Language 一种面向机器的程序设计语言,是一种用符号表示的低级程序设计语言(机器语言的符号化描述),通常是为特定计算机或计算机系列专门设计的。 Assemble Language 用汇编语言编写的程序不能由机器直接执行,而必须经汇编程序翻译成机器语言程序。汇编语言指令与翻译成的汇编过程示意: 采用汇编语言进行程序设计的优点 可充分利用机器的硬件功能和结构特点,加快程序的执行速度,减少目标程序所占用的存储空间 常用来编写实时控制程序、实时通信程序,有时也用来编制某些系统软件程序。 缺点: 编程效率低(与人们描述计算过程的需要差距大) 与机器硬件的具体结构联系过于紧密——在一种结构的机器上开发的程序极难移植到另一种不同结构的机器上去。 汇编语言程序的简历及汇编过程 检查源程序; 测出源程序中的语法错误,并给出出错信息; 产生目标文件(.OBJ),并可给出列表文件(同时列出汇编语言源程序和机器语言目标程序的文件,称之为.LST文件)和交叉索引文件(列出程序中使用的符号、变量和标号以及引用情况,称之为.CRF文件)。 展开宏指令。 汇编示意图 汇编程序的主要功能 汇编程序分两种,一种是基本汇编(ASM.EXE),一种是宏汇编(MASM.EXE),宏汇编功能比较强。 连接程序 汇编之后生成的OBJ文件必须经过链接过程,才能成为扩展名.EXE的可执行文件。 链接的过程就是调用连接程序(LINK.EXE),对OBJ文件进行定位、链接,最后生成扩展名为EXE的可执行文件。如果需要,也可生成MAP文件和LIB文件。 连接示意图: 调试程序(DEBUG.COM) DEBUG PROG.EXE - U (反汇编) - g =起始地址 断点地址 - T = 地址 指令条数 汇编语言程序开发中的相关文件 BIOS和DOS中断 ROM BIOS(Basic Input Output System)——装于从地址0FE00H开始的8k ROM中,提供了系统加电自检,引导装入,主要I/O设备的处理程序及接口控制等功能模块。使用BIOS功能调用,使程序员不必了解硬件I/O的具体接口特性,可直接通过入口参数来调用,给编程带来方便。 调用格式: 设置入口参数; 设置功能号; INT XXH; 例: MOV CX,0; MOV DX,0; MOV AH,1; 功能号为1 INT 1AH; DOS 中断(DOS 系统功能调用) 指类型为21H的软件中断,其对应的中断处理程序中包含了一系列最常用的功能子程序,这些子程序分别实现外设管理、文件读/写和管理、目录管理等功能。 例:在显示器上输出字符 $: MOV DL,’$’; (24H) 设置入口参数 MOV AH,6; 设置功能号为6 INT 21H; DOS系统功能调用 宏指令的定义、调用和扩展(宏定义、宏调用和宏扩展) 宏(MACRO)是源程序中一段有独立功能的程序代码、它只需在源程序中定义一次,就可以多次用一条宏指令来调用它。 宏定义是用伪指令来实现的。其格式为: 宏指令的定义、调用和扩展 经宏定义定义后的宏指令就可以在源程序中调用,这种对宏指令的调用称宏调用,宏调用的格式为: Macro-name [actual parameter list](每一项之间用逗号隔开) 当源程序被汇编时,汇编程序将对每个宏调用作宏展开。宏展开就是用宏定义体取代源程序中的宏指令名,而且用实在参数一一取代宏定义的形式参数。(例子见下一张) 例1 宏定义可以无变元 宏定义:SAVEREG MACRO PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI ENDM 宏调用: SAVEREG 宏展开: 将宏定义体的内容(具有独立功能的代码段)全部列出。 例2 宏定义带形式参数 宏定义: FOO MACRO P1, P2, P3 MOV AX, P1 P
文档评论(0)