汇编语言语法介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 汇编语言语法
✓ 汇编语言概念 ✓ 汇编语言的编程过程 ✓ 汇编语言程序结构 ✓ 汇编语言程序语法 ✓ 汇编语言伪指令
名词解释
汇 编: 将汇编语言编写的程序翻译成机器代码组成的目标程序的过程 成 为汇编
汇编程序: 实现自动完成汇编过程的软件叫汇编程序或汇编器,如 MASM.EXE。
源 程 序: 按汇编语言语法规则编写的文本文件叫汇编语言源程序或汇编语 言程序,如ASM文件。
典型的调试器有DOS中的Debug,Borland公司的Turbo Debug, Microsoft 公司的Code View。它们都具有程序加载、运行、单步跟踪 、断点跟踪、查看修改存储器、查看修改寄存器、反汇编等基本功能。 后两种还具备源程序级调试等高级功能,使用起来更加得心应手。
汇编语言源程序示例
标号: 指令助记符 操作数, …,操作数 ;注释 它由四部分组成,各部分之间用空格或制表符(TAB)分隔。
① 标号:不是必须的,只有当某条指令作为转移指令的目标时,该条指令 才需要加上标号,标号和指令之间必须用冒号(:)分隔。一个语句行可 以只由一个标号构成。
② 指令助记符:可以是8086/8088所有合法指令。 ③ 操作数:其个数和类型由指令助记符决定。 ④ 注释:以分号(;)开始,是对该语句行的文字解释,从分号开始到本行
stack segment para stack 'stack' ;定义堆栈段 db 1024 dup (?)
stack ends
data segment para 'data'
;定义数据段
hello db 'Hello, world !', 0dh, 0ah, '$'
data ends
code segment para 'code'
目标程序: 由源程序经过汇编而得到的一组机器代码叫目标程序,如OBJ文 件。
连接程序: 将目标文件与库文件或其它目标文件连接形成可执行文件的软 件叫连接程序
可执行程序:由机器代码组成的可提供操作系统执行的文件叫可执行程序或 可执行文件,典型的如COM文件、EXE文件。
汇编程序的主要功能
汇编程序(即汇编器)总的功能就是将用ASCII码形式的汇编源 文件转换成二进制机器代码组成的目标文件。 其具体功能包括以下几方面:
每个段有一个名字,以SEGMENT语句作为段的开始,以ENDS语句作为段的结束 。这两者都必须有名字,而且名字必须相同。
整个源程序以END语句作为结束。
汇编语言语句的类型
1、指令语句
指令语句,就是8086/8088的机器指令,它们告诉CPU做什么。 汇编程序把它们翻译成机器代码。每一条指令语句产生一条 8086/8088指令,由CPU执行操作。如MOV,ADD,JMP等等
根据任务要求,设计程序结构、算法,画出流程图。 2) 编辑
根据设计方案,创建汇编语言源程序。 它由程序员通过文本编辑器来完成。DOS下常用的有Edit、PE2等。 3) 汇编 将汇编语言源程序源程序转化为机器可以理解的目标程序。 汇编器用于完成这步工作。汇编器可以发现源程序中的语法错误,如格式
错误、非法指令、操作数类型不匹配等,提示程序员对源程序加以修改 ,并重新汇编。 常用的汇编器有 Masm、Turbo ASM等。
4) 连接
汇编后生成的目标程序虽然记载了CPU可理解的机器代码,但它缺少 DOS所需要的重定位信息,所以并不能直接运行。目标程序必须经过连 接器连接,生成附带重定位信息的可执行程序(EXE文件或COM文件) 才能运行。
连接器的一个任务就是从目标模块中产生一个运行模块,并使其具有可重 定位性。
连接器的第二个任务是可将几个目标模块结合成一个可执行的模块。并同 样使其具有可重定位性。这样,你可以一次编写程序的一部分,通过结 合,将几个目标模块合并,产生一个完整的运行模块。
;程序起始地址
汇编语言源程序的结构
汇编语言源程序采用分段结构,由若干个段构成一个源程序。而一个段又是由若干 个语句组成的,语句是汇编语言源程序的基础。源程序的一般格式为
NAMEl SEGMENT 语句 . . .
NAMEl ENDS NAME2 SEGMENT
语句 . . .
NAME2 ENDS END <程序起始地址标号>
;定义代码段
assume cs:code, ds:data, es:data, ss:stack
main proc far start:
push ds xor ax, ax push ax mov ax, data mov ds, ax lea dx, hello mov ah, 9 int 21h ret main endp code ends end main
连接器可以发现源程序中的连接错误,如段的溢出或覆盖,不存在或不匹 配的模块、不存在或不匹配的标号、变量等。
常用的连接程序是LINK.EXE,它在DOS系统和Microsoft Masm 5.0软件 包中都有提供。
5) 调试
完成设计、编辑、汇编、连接后得到的可执行程序中可能存在一些错误 (Bug),这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运 行出现结果错误、死机甚至其它无法预测的后果。我们称这类错误为逻 辑错误,它们是汇编器和连接器都无法发现的。这类错误只能靠程序员 凭借调试器对可执行程序进行耐心细致的跟踪调试,才能逐一排除。
2、指示语句
指示性语句,又称伪语句、伪操作,其构成主体是伪指 令,它们告诉汇编程序做什么。汇编程序并不把伪语句翻译成 机器代码,它们只是用来指明汇编程序在汇编期间需要做的一 些操作,如定义符号,分配存储单元,初始化存储器等等。例 如:
COUNT DB ?
汇编语言语句的基本格式
1) 指令语句的格式为
1) 检查源程序中的语法错误,并给出错误信息 2) 产生源程序的目标程序,并给出列表文件 3) 支持地址和数据的符号变量表示 4) 支持对内存的管理 5) 支持多种类型的数据表示 6) 支持程序的模块化组织 7) 支持宏汇编、条件汇编等高级操作ቤተ መጻሕፍቲ ባይዱ
汇编语言程序的开发过程和工具
一般来说,开发汇编语言程序有以下面五个步骤: 1) 设计
✓ 汇编语言概念 ✓ 汇编语言的编程过程 ✓ 汇编语言程序结构 ✓ 汇编语言程序语法 ✓ 汇编语言伪指令
名词解释
汇 编: 将汇编语言编写的程序翻译成机器代码组成的目标程序的过程 成 为汇编
汇编程序: 实现自动完成汇编过程的软件叫汇编程序或汇编器,如 MASM.EXE。
源 程 序: 按汇编语言语法规则编写的文本文件叫汇编语言源程序或汇编语 言程序,如ASM文件。
典型的调试器有DOS中的Debug,Borland公司的Turbo Debug, Microsoft 公司的Code View。它们都具有程序加载、运行、单步跟踪 、断点跟踪、查看修改存储器、查看修改寄存器、反汇编等基本功能。 后两种还具备源程序级调试等高级功能,使用起来更加得心应手。
汇编语言源程序示例
标号: 指令助记符 操作数, …,操作数 ;注释 它由四部分组成,各部分之间用空格或制表符(TAB)分隔。
① 标号:不是必须的,只有当某条指令作为转移指令的目标时,该条指令 才需要加上标号,标号和指令之间必须用冒号(:)分隔。一个语句行可 以只由一个标号构成。
② 指令助记符:可以是8086/8088所有合法指令。 ③ 操作数:其个数和类型由指令助记符决定。 ④ 注释:以分号(;)开始,是对该语句行的文字解释,从分号开始到本行
stack segment para stack 'stack' ;定义堆栈段 db 1024 dup (?)
stack ends
data segment para 'data'
;定义数据段
hello db 'Hello, world !', 0dh, 0ah, '$'
data ends
code segment para 'code'
目标程序: 由源程序经过汇编而得到的一组机器代码叫目标程序,如OBJ文 件。
连接程序: 将目标文件与库文件或其它目标文件连接形成可执行文件的软 件叫连接程序
可执行程序:由机器代码组成的可提供操作系统执行的文件叫可执行程序或 可执行文件,典型的如COM文件、EXE文件。
汇编程序的主要功能
汇编程序(即汇编器)总的功能就是将用ASCII码形式的汇编源 文件转换成二进制机器代码组成的目标文件。 其具体功能包括以下几方面:
每个段有一个名字,以SEGMENT语句作为段的开始,以ENDS语句作为段的结束 。这两者都必须有名字,而且名字必须相同。
整个源程序以END语句作为结束。
汇编语言语句的类型
1、指令语句
指令语句,就是8086/8088的机器指令,它们告诉CPU做什么。 汇编程序把它们翻译成机器代码。每一条指令语句产生一条 8086/8088指令,由CPU执行操作。如MOV,ADD,JMP等等
根据任务要求,设计程序结构、算法,画出流程图。 2) 编辑
根据设计方案,创建汇编语言源程序。 它由程序员通过文本编辑器来完成。DOS下常用的有Edit、PE2等。 3) 汇编 将汇编语言源程序源程序转化为机器可以理解的目标程序。 汇编器用于完成这步工作。汇编器可以发现源程序中的语法错误,如格式
错误、非法指令、操作数类型不匹配等,提示程序员对源程序加以修改 ,并重新汇编。 常用的汇编器有 Masm、Turbo ASM等。
4) 连接
汇编后生成的目标程序虽然记载了CPU可理解的机器代码,但它缺少 DOS所需要的重定位信息,所以并不能直接运行。目标程序必须经过连 接器连接,生成附带重定位信息的可执行程序(EXE文件或COM文件) 才能运行。
连接器的一个任务就是从目标模块中产生一个运行模块,并使其具有可重 定位性。
连接器的第二个任务是可将几个目标模块结合成一个可执行的模块。并同 样使其具有可重定位性。这样,你可以一次编写程序的一部分,通过结 合,将几个目标模块合并,产生一个完整的运行模块。
;程序起始地址
汇编语言源程序的结构
汇编语言源程序采用分段结构,由若干个段构成一个源程序。而一个段又是由若干 个语句组成的,语句是汇编语言源程序的基础。源程序的一般格式为
NAMEl SEGMENT 语句 . . .
NAMEl ENDS NAME2 SEGMENT
语句 . . .
NAME2 ENDS END <程序起始地址标号>
;定义代码段
assume cs:code, ds:data, es:data, ss:stack
main proc far start:
push ds xor ax, ax push ax mov ax, data mov ds, ax lea dx, hello mov ah, 9 int 21h ret main endp code ends end main
连接器可以发现源程序中的连接错误,如段的溢出或覆盖,不存在或不匹 配的模块、不存在或不匹配的标号、变量等。
常用的连接程序是LINK.EXE,它在DOS系统和Microsoft Masm 5.0软件 包中都有提供。
5) 调试
完成设计、编辑、汇编、连接后得到的可执行程序中可能存在一些错误 (Bug),这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运 行出现结果错误、死机甚至其它无法预测的后果。我们称这类错误为逻 辑错误,它们是汇编器和连接器都无法发现的。这类错误只能靠程序员 凭借调试器对可执行程序进行耐心细致的跟踪调试,才能逐一排除。
2、指示语句
指示性语句,又称伪语句、伪操作,其构成主体是伪指 令,它们告诉汇编程序做什么。汇编程序并不把伪语句翻译成 机器代码,它们只是用来指明汇编程序在汇编期间需要做的一 些操作,如定义符号,分配存储单元,初始化存储器等等。例 如:
COUNT DB ?
汇编语言语句的基本格式
1) 指令语句的格式为
1) 检查源程序中的语法错误,并给出错误信息 2) 产生源程序的目标程序,并给出列表文件 3) 支持地址和数据的符号变量表示 4) 支持对内存的管理 5) 支持多种类型的数据表示 6) 支持程序的模块化组织 7) 支持宏汇编、条件汇编等高级操作ቤተ መጻሕፍቲ ባይዱ
汇编语言程序的开发过程和工具
一般来说,开发汇编语言程序有以下面五个步骤: 1) 设计