- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 汇编语言程序格式 1、2课件
第四章 汇编语言程序格式
本章重点:伪操作指令,汇编语言程序格式
第一节 汇编程序功能
一、建立汇编语言源程序
使用文本编辑器建立汇编语言源程序,源程序必须符合汇编语言格式(第三节介绍),文件后缀为.asm
二、汇编程序(汇编为动词)
使用masm.exe建立目标程序:masm 源程序名
汇编程序功能:
1、检查汇编语言源程序
2、测出源程序中语法错误,如有错误,给出错误信息
3、产生源程序的目标程序(后缀为.obj),并可给出列表文件(后缀为.lst)
4、展开宏指令(第七章介绍)
三、建立可执行程序 link 目标程序 生成exe文件 ;第二节 伪操作
伪操作:又称伪指令,用于在源程序中完成处理器选择,数据定义,分配存储区,指示程序开始、结束等功能。伪操作的目的是在汇编时形成正确的目标程序。
伪操作与指令不同之处在于:指令是在程序运行时由计算机来执行处理的,伪操作是由汇编程序masm处理的。
一、处理器选择伪操作
用于选择指令系统:8086/8088,286,386……
一般作为程序的第一句。若程序中未选择指令系统,默认为8086/8088。
格式: .8086
.286 .286p (保护模式)
.386 .386p (保护模式)
.486 .486p (保护模式)
.586 .586p (保护模式);二、段定义伪操作
作用:用于按段组织程序和利用存储器
1、完整的段定义伪操作
(1)分段伪操作
格式:
段名 segment [定位类型] [组合类型] [使用类型] [类别]
……
段名 ends
作用:将汇编语言源程序分成段,以便于程序的编制、汇编、连接。
对于数据段、附加段、堆栈段,省略号处是存储单元定义、分配等伪操作;对于代码段则是指令及伪操作。
(定位类型、组合类型等用于将本程序与其他程序模块连接,本课不做要求;(2)段寄存器指向伪指令 assume
格式: assume 段寄存器名:段名(由分段伪操作确定)
作用:明确段与段寄存器的关系
注意:assume指定某段分配给某段寄存器,但不能确定段地址,必须在代码段中将段地址(代码段地址除外)装入相应的段寄存器。
例:p119例4.1
2、简化段定义伪操作
.code [代码段名] ;定义代码段
.data ;定义数据段
.stack [堆栈段大小] ;定义堆栈段
注意:简化段不用ends作为段的结束符;
设定段寄存器用:mov ax,@data
mov ds,ax;例: .data ;定义数据段
……
.code ;定义代码段
start:
mov ax,@data ;得到数据段地址
mov ds,ax
……
mov ax,4c00h ;程序结束返回dos
int 21h
end start;三、程序开始和结束伪操作
1、模块名伪操作
格式:TITLE 模块名 (或 NAME 模块名)
作用:指定汇编语言模块名称。
注意:用于程序开始处的该伪操作并非必要。如无该伪操作,汇编时以源文件名作为模块名。
2、程序结束伪操作
格式:END [程序起始地址]
作用:告诉汇编程序模块结束
注意:如果多个程序模块相连接(多个源程序),只有主程序使用END 程序起始地址,其他子程序模块只用END表示模块结束。
四、过程定义伪操作(第六章子程序讲授)
;五、数据定义及存储器分配伪操作
1、模块名伪操作
格式:[变量名] 助记符 操作数,操作数…… [;注释]
作用:分配内存,并将操作数代表的数据存入指定内存单元;如有变量名则汇编程序时使其记以第一个字节的偏移地址,并根据助记符确定变量的类型属性。
助记符: DB 定义字节
DW 定义字(低位字节在第一个字节中,高位子节在第二个字节中)
DD 定义双字
文档评论(0)