8086汇编语言 汇编语言源程序

Posted _DiMinisH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8086汇编语言 汇编语言源程序相关的知识,希望对你有一定的参考价值。

汇编语言源程序

1. 汇编语言源程序结构

  一个完整的汇编语言源程序通常由若干个逻辑段(Segment)组成, 包括数据段、附加段、堆栈段和代码段,它们分别映射到存储器中的物理段上。每个逻辑段以 SEGMENT语句开始, 以 ENDS语句结束,整个源程序用END语句结尾。
  代码段中存放源程序的所有指令码, 数据、变量等则放在数据段和附加段中。程序中可以定义堆栈段,也可以直接利用系统中的堆栈段。具体一个源程序中要定义多少个段应根据实际需要来定。但一般来说,一个源程序中可以有多个代码段, 也可以有多个数据段、附加段及堆栈段, 但一个源程序模块只可以有一个代码段、一个数据段、个附加段和一个堆栈段。将源程序以分段形式组织是为了在程序汇编后,能将指令码和数据分别装入存储器的相应物理段中

2. 源程序结构框架

段名1 SEGMENT
...
段名1 ENDS
段名2 SEGMENT
...
段名2 ENDS
...
段名n SEGMENT
...
段名n ENDS

3. 语句类型和格式

(1). 指令性语句的一般格式
[标号] : [前缀] 操作码 [操作数1, 操作数2] [;注释]

“[ ]” 括起来的内容可以省略, 操作数可以有2个、1个和没有。

(2). 指示性语句的一般格式
[名字] [伪操作] 操作数1, 操作数2, ... [;注释]

“[ ]” 括起来的内容可以省略。

4. 数据项

(1). 常量
常量类型表示举例
十进制常量以字母 “D” 结尾或不加结尾52D, 52
二进制常量以字母 “B” 结尾1011B
十六进制常量以字母 “H” 结尾5CH
字符常量用单引号括起的一个或多个ASCII字符码’DD’
(2). 标号 LABLE

  指令的标号由程序员确定, 不能与指令助记符或伪指令名, 也不能由数字打头, 字符个数不能超过31个。
  标号有3种属性: 段值、偏移量和类型。

(3). 变量

  变量是存储器中的某个数据区的名字, 变量的类型有:

类型长度表示
字节8位BYTE
16位WORD
双字32位DWORD
四字64位QWORD
十节字80位TBYTE
(4). 表达式

  表达式不是指令, 本身不能执行, 在程序执行时, 表达式本身是一个有确定值的操作数。

运算符符号
+
-
*****
/
取余MOD
AND
OR
NOT
异或XOR
等于EQ
不等于NE
小于LT
大于GT
小于等于LE
大于等于GE
(5). 运算符
名字运算符作用例子
取偏移地址运算符OFFSET取标号或变量的偏移地址MOV SI, OFFSET DATA1
取段地址运算符SEG取标号或变量的段地址MOV AX, SEG DATA1
属性运算符PTR指定其后面存储器操作数的类型MOV AL, BYTE PTR [SI]
方括号运算符[ ]表示存储器操作数, 括号中的内容表示操作数的偏移地址
段重设运算符:用来指定一个存储器操作数的段属性而不管原来隐含的段MOV AX, ES:[SI]

以上是关于8086汇编语言 汇编语言源程序的主要内容,如果未能解决你的问题,请参考以下文章

8086 汇编

8086汇编学习之代码段数据段栈段与段地址寄存器

用intel8086/8088汇编语言写的程序用啥编译器编译最好啊?

8086汇编第一部分:基本概念

8086 - 蜂鸣直到得到输入

8086汇编语言 几个汇编程序