8086汇编语言(一) 汇编语言源程序

news/2024/11/30 5:48:05/

汇编语言源程序

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]

http://www.ppmy.cn/news/112720.html

相关文章

2022大学生免费(24元)申请个人软著专利(微信小程序)

文章目录 一、发放的软著证书二、申请流程概览三、官网提交申请四、纸质材料打印五、纸质材料邮寄六、模板及代码统计工具 点击查看《再易江南》微信小程序 一、发放的软著证书 挂号信封 软著证书 点击查看《再易江南》微信小程序 二、申请流程概览 一般情况下,按照…

推荐一款源代码统计分析、开发工作量估算、测试缺陷预测的开发工具 —— 代码统计分析工具(SourceCounter)

目录 一、软件简介 二、主要功能 三、更新日志 四、关键字 一、软件简介 代码统计分析工具 4.0,支持 30多种代码格式。能够统计包括:代码行数、注释、空行、文件大小等数据。另外,还支持对软件开发项目的各个开发阶段的工数、成本、质量…

Android Studio统计项目代码量

写完项目之后想知道自己写了多少行代码,毕竟代码敲了这么久,敲了多少行代码自己都不知道,我用的是Android studio 开发工具,他有个插件Statistic提供这个功能 首先点击FIle ,找到Setting,点进去 然后搜索栏输入staticstic,我的…

从源程序到可执行文件的四个过程

这里写目录标题 预处理编译汇编链接 程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接,如下图所示: -E选项:提示编译器执行完预处理就停下来,后边的编译、汇编、链接就先不执行了。 -S选项&a…

c语言源程序最多可能由组成,一个c语言源程序是由什么组成_后端开发

golang的优势是什么?_后端开发 golang的优势:可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了;丰富的标准库,Go目前已经内置了大量的库,特别…

mmaction2行为识别综述

行为识别综述 目前行为识别领域的最佳模型还没有一个统一的标准。不同的数据集和任务需要不同的模型来进行处理,而且不同的模型都有其优缺点。以下列出一些在行为识别领域中常用的模型: 二维卷积神经网络(2D CNN):在…

使用Eclipse统计自己项目程序代码量【实测可用】

使用Eclipse统计项目代码量 最近在申请软著,在填写申请表的时候有一栏要填项目代码量,自己之前从未统计过,心血来潮开始各种找统计代码量的方法 因为项目使用的Eclipse开发的,所以第一时间找插件,但是发现人家Eclipse自…

c语言源程序的基础单位,c源程序的基本单位是什么

c源程序的基本单位是函数. C语言源程序是由:数据类型、常量与变量、数组、指针、字符串、文件输入/输出、运算构成。 1、数据类型 C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和…