汇编语言及其程序设计方案.docVIP

  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文档。上传文档
查看更多
汇编语言及其程序设计方案

第五章 汇编语言及其程序设计 5.1 汇编语言程序结构 5.2 表达式及伪指令 5.3 汇编语言程序设计 5.4 DOS功能调用 5.5 汇编语言程序上机过程 5.1 汇编语言程序结构 汇编语言与汇编程序 前面介绍了指令,指令系统及程序的基本概念,由此了解到计算机所以能够自动地工作,是因为运行程序的结果.计算机能够按照程序中的安排去执行相应的指令,才使得计算机看起来工作得非常有序.通过第四章的内容还了解到计算机可直接识别的是机器指令,而用机器指令编写的程序称为机器语言程序.由于机器指令是用二进制编码来表示的,既不直观又难以记忆,所以使得机器指令编写的程序在使用上受到了限制. 第五章 汇编语言及其程序设计 为了解决机器语言使用上的不便,人们开始使用容易记忆和识别的符号指令编写程序.汇编语言就是用与操作功能含义相应的缩写英文字符组成的符号指令作为编程用的语言.因此说汇编语言实际上是一种符号语言,并且是一种面向机器的低级语言.在使用汇编语言编写程序时需要对计算机硬件有一定的了解.  下面分别使用机器语言和汇编语言编写的一段小程序, 以此观察它们的不同.  机器语言程序 汇编语言程序 0000 B0 09 MOV AL, 9 0002 04 08 ADD AL, 8 0004 F4 HLT 使用汇编语言编写的程序计算机是不能够直接地识别和执行的,必须经过翻译,将汇编语言程序翻译成机器语言程序.这个翻译是由汇编程序来完成的,汇编程序是由系统预先提供的系统软件之一,汇编程序不是简单的翻译,而是一个把源文件转换成二进制编码表示的目标文件(.OBJ)的过程(将这个过程称为汇编).在这个过程中,对源程序进行语法检查(又称扫描),得到无语法错误的结果后,还要经过连接程序,使目标程序成为计算机可执行文件(.EXE).汇编语言程序转换成为计算机可运行的程序的过程如下图 所示.  汇编语言 源程序 经汇编程序 转换为 目标文件 经连接程序 转换成可 执行文件 机器语言 机器码表示,例如B8H,C3H 汇编语言 用指令助记符表示机器码 例:机器码B8H,C3H的助记符为 MOV AX,BX CPU不同,机器码不同,助记符不同 高级语言 语言规范,可用于不同的CPU 广泛 较广 应用范围 较低 高 程序员硬件知识 低 高 对硬件的依附性 好 较差 源程序可读性 较低 高 代码效率 高级语言 汇编语言 语言 汇编语言和高级语言的比较 汇编语言程序结构特点 例:5个连续字节单元的累加 DATA SEGMENT ;定义数据段 D1 DB 5 DUP( ) ;连续的字节单元 CC EQU $-D1 ;对单元计数 SUM DW 0 ;为结果保留一个字 DATA ENDS ;数据段定义结束 STACK SEGMENT PARA STACK STACK ;定义堆栈段 DB 100 DUP ( ) ;100字节的栈空间 STACK ENDS ;堆栈段定义结束 CODE SEGMENT ;定义代码段 ASSUME DS:DATA,SS:STACK,CS:CODE ;对各段进行说明 BEGIN:MOV AX,DATA ;DS初始化为DATA MOV DS,AX LEA SI,D1 ;预置源数据的指针 定义存储单元的数据 伪指令 定义堆栈 段定义语句 作堆栈用的存储单元 指令 MOV CX,CC+1 ;预置次数 CLD ; (DF)=0,串指针自动增量 LODS BYTE PTR [SI] ;取一个数并修改指针 DEC CX ;修改次数 MOV AH,0 ;清AX的高字节 CLC ;清CF位 AGAN:ADC SUM,AX ;累加 LODS BYTE PTR [SI] ;再取数并修改指针 LOOP AGAN ;控制循环 MOV AH,4CH ;完成,返回DOS INT 21H CODE ENDS ;代码段结束 END BEGIN ;整个程序结束 段定义 汇编程序结束 源程序的一般格式 代码段是必需的.每段必须有且仅有一个名字,以SEGMENT定义段的起始,以ENDS定义段的结束,整个程序结束后需以END收尾.源程序的一般格式为: 段名1 SEGMENT 语句 … 语句 段名1 ENDS 段名2 SEGMENT 语句 … 语句 段名2 ENDS … END (标号) 汇编语言源程序的结构 段名1 SEGMENT 语句行 …… 语句行 段名1 ENDS 段名2 SEGMENT 语句行 …… 语句行 段名2 ENDS …… END 标号或过程名 一个源程序由若干段组成,如数据段,代码段,堆栈段等; 各段由若干条语句行组成; 指令必须放在代码段中; 为了确保程序的执行和正确返回,必须借助堆栈段; 根据编程需要确定是否需要数据段,附加段. 语句行的构成 1.指令性

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档