- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章汇编语言程序格式 第三章 汇编语言程序格式 概 述 3.1 汇编语言程序的开发 3.2 参数、变量和标号 3.3 程序段的定义和属性 3.4 复杂数据结构 要点及习题分析 概述1 概 述 1.“汇编”的含义?手工汇编 机器汇编 2.什麽是汇编程序? 3.什麽是伪指令?伪指令的作用; 伪指令与机器无关,取决于汇编程序的版本,版本越高,提供的伪指令数目增加,功能增强;如MASM6.0提供了.IF/.ENDIF等语句,使汇编语言程序设计类似高级语言的形式。 概述2 4.教材的“硬指令”:指的是CPU指令集中的指令。硬指令的条数和功能取决于CPU,和汇编程序无关;但是,用汇编指令(符号指令)表示的硬指令,能否被汇编程序识别并翻译成机器指令,则与汇编程序的版本有关,如4.0以下的版本不支持386的32位指令,5.0开始支持32位指令,6.11版支持Pentium(但还不支持MMX指令6.12支持MMX指令)。 本章以MASM6.X为蓝本,介绍常用伪指令、操作符,汇编、连接、运行程序的过程,以及修改调试方法。 3.1(目录)汇编语言程序的开发 3.1汇编语言程序的开发 3.1.1 汇编语言程序的语句格式 1)执行性语句 2)说明性语句 3.1.2 汇编语言的程序格式 1)简化段定义格式 2)完整段定义格式 3.1.3 汇编语言程序的开发过程 源程序的编辑、汇编、连接、调试 3.1.1汇编语言程序的语句格式 3.1.1 汇编语言程序的语句格式 两类语句:1)执行性语句 2)说明性语句 1)执行性语句(硬指令、代码段) 标号(冒号是标号的一部分):代表该指令的逻辑地址,为分支、循环、调用等指令提供转移的目的地址。是用户自定义的标识符。定义规则:最多31个字母、数字及特殊符号,不能以数字打头;默认情况下,不区别大小写;不能使用保留字。标号定义只可能出现在代码段。 执行性语句 硬指令助记符: 任何一条处理器指令或宏指令。 操作数: 立即数、寄存器、存储单元;无操作数、单操作数和双操作数。 注释(分号是注释的一部分): 增加程序的可读性。注释不应是指令功能的重复。如对于指令“mov cx,25”,“25送入寄存器CX”毫无意义,可能应该写成“设置循环次数”。 说明性语句 2)说明性语句(伪指令、可位于任何段) 名字 伪指令助记符 参数,参数…;注释 名 字: 可以是变量名、段名、子程序名或宏名,这 些名字既反映逻辑地址,又具有自身的各种属性;对不同的说明性语句,其中的名字具有不同的属性,具体内容在介绍伪指令时介绍。名字也可以是一个常数或一个符号的代号,可称其为“符号名”,这种名字仅仅具有标识的作用。 名字与标号的区别:无冒号;可以在任何段定义(严格来说是变量名和符号名)。 名字的定义规则与标号相同。 说明性语句(e) 伪指令助记符:本章主要内容。 参数:伪指令要求的内容,常数、变量、表达式… 注释:增加可读性。 两种语句的四部分要用分割符分开,操作数和参数用逗号,其他用空格或制表符。 3.1.2程序格式 3.1.2 汇编语言的程序格式 使用汇编语言编写程序时必须遵循的语法规则。 完整的汇编语言源程序由段组成:若干个代码段、数据段、附加段或堆栈段;独立运行的程序必须包含一个代码段,并指出程序的启动语句;所有的执行语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内;堆栈段不是必须的,但最好设置堆栈段。 编写汇编语言源程序通常应遵循所谓“标准格式”,本书介绍标准格式的两种表示形式,一种符合MASM 5.0及更新版本的语法规则,称为“简化段定义格式”;另一种符合早期版本的语法规则,称为“完整段定义格式”(5.0及以后的版本也支持)。 简化段定义格式 例3.1a 简化段定义格式 ;lt301a.asm .model small .stack .data String db ‘hello,everybody!’,0dh,0ah,’$’ .code .startup ;说明程序的起点,设置DS、SS mov dx,offset,string mov ah,9 int 21h .exit 0 ;程序结束,形成返回DO
文档评论(0)