汇编语言代码书写规范

汇编语言代码书写规范

每个汇编程序通常分为两个文件。一个文件用于保存程序的声明(declaration ),称为头文件。另一个文件用于保存程序的实现(implementation ),称为定义(definition )文件。头文件以“.h ”为后缀,定义文件以“.asm ”为后缀, 宏定义文件以“.mac ” 为后缀。

1.1 版权和版本的声明

版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:

(1)版权信息。

(2)文件名称,标识符,摘要。

(3)版本历史信息。

示例1-1 版权和版本的声明

1.2 头文件的结构

头文件由三部分内容组成:

(1)头文件开头处的版权和版本声明(参见示例1-1)。

(2)常量和变量的定义。

(3)宏定义(参见示例1-2)。

假设头文件名称为di.h ,头文件的结构参见示例1-3。

【规则1-2-1】用 .include di.h 头文件(编译器将从用户的工作目录开始搜索)。

【规则1-2-2】每个标号定义时, 要加空格时都用”Tab ”键, 定义符和定义值要整齐, 每个定义符后都在同一列加上”; ”(分号), 分号后加上每个标号的注释(参见示例1-3)。

第1章 文件结构

示例1-2 宏定义文件的结构

示例1-3 汇编头文件的结构

1.3 定义文件的结构

1.3.1定义文件有三部分内容:

(1)定义文件开头处的版权和版本声明(参见示例1-1)。

(2)对一些头文件的引用。

(3)程序的实现体(包括数据和代码)。

假设定义文件的名称为di.asm ,定义文件的结构参见示例1-4。

示例1-4 汇编定义文件的结构

1.3.2函数(参见示例1-5)

【规则1-3-1】原则上函数内不允许对绝对地址进行操作。

【建议1-3-1】函数内不要分配大的数组,占用堆栈空间。

【建议1-3-2】函数内尽量不要使用数字和字符等常量,而要用标识符常量,便于以后的修改。

【建议1-3-3】每个函数体不得超过150行(不含注释)

示例1-5 汇编语言的函数结构

1.4、编译连接环境

【规则1-4-1】在项目文档和项目源代码的ReadMe 文件,说明编译连接环境和方法,特别是 Dos 行命令下相关的 Path ,及编译连接参数。(参见示例1-6)

示例1-6 ReadMe.txt

第2章 程序的版式

版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要构成因素。因此,可以把程序的版式比喻为“书法”。

2.1 对齐

【规则2-1-1】 要求编辑中对齐使用 Tab ,而编辑软件中将Tab 设为 8 个字符位置,且跳格不用空格代替。

【规则2-1-2】每行程序宽度为6个Tab 宽, 即8*6=48个字符, 第49列为分号, 分号后写注释。

【规则2-1-3】标号从行首(即第1列) 开始输入, 标号后不直接跟汇编指令,

换行后加一

个Tab 键后再输入汇编助记符, 输完助记符后再加一个Tab 键才输操作数. (参见示例2-1)。

示例2-1 对齐

2.2 注释

汇编语言的注释符为”; ”。注释通常用于:

(1)版本、版权声明;

(2)函数接口说明;

(3)重要的代码行或段落提示。

【规则2-1-1】使用中文做注释。

【规则2-1-2】汇编语言是低级语言, 原则上要求每行都加上注释。最少注释率不得低于50%。

【规则2-1-3】边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

【规则2-1-4】注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

【规则2-1-5】尽量避免在注释中使用缩写,特别是不常用缩写。

【规则2-1-6】注释的位置应与被描述的汇编指令相邻,汇编语言一般把注释放在指令的右方。(参见示例1-4)。

第3章 命名规则

3.1 共性规则

【规则3-1-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。

标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue 写成NowValue 。

【规则3-1-2】单词连写时, 用第一个字母大写来区分。如: CurrentValue。

3.2 常量的命名约定

【约定3-2-1】常量全用大写的字母,用下划线分割单词。

例如:

MAX equ 100;

MAX_LENGTH equ 100;

3.3 变量的命名约定

【约定3-3-1】全局变量名的约定:

g_模块名+变量标识名

如:

g_card_CardNumber ds 1 ; 名片总数量 g_ sys_KeyCode ds 1 ; 系统变量, 保存键码

【约定3-3-2】模块变量名的约定:

m_模块名+变量标识名

如:

m_ec_WordOrder ds 2 ; 英汉单词序号

m_ec_DispBuffColumn ds 1 ; 显示缓冲区列计数 m_ec_DispBuffLine ds 1 ; 显示缓冲区行计数

3.4 函数的命名约定

【约定3-4-1】函数的命名约定:

fun_+模块标识+_+函数标识名;

如:

fun_sys_PutChar: ; 系统程序, 显示一个字符 fun_ec_Unpress: ; 英汉解压子程序

【约定3-4-2】函数体内跳转标号的命名约定:

函数名内单词第一个字母的集合+_+跳转标识名 如: 示例3-1

3.5 数据标识的命名约定

d_模块名+数据标识名

如:

d_ec_WordLeftTree:

d_ec_WordRightTree: ; 英汉单词左树 ; 英汉单词右树

汇编语言代码书写规范

每个汇编程序通常分为两个文件。一个文件用于保存程序的声明(declaration ),称为头文件。另一个文件用于保存程序的实现(implementation ),称为定义(definition )文件。头文件以“.h ”为后缀,定义文件以“.asm ”为后缀, 宏定义文件以“.mac ” 为后缀。

1.1 版权和版本的声明

版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:

(1)版权信息。

(2)文件名称,标识符,摘要。

(3)版本历史信息。

示例1-1 版权和版本的声明

1.2 头文件的结构

头文件由三部分内容组成:

(1)头文件开头处的版权和版本声明(参见示例1-1)。

(2)常量和变量的定义。

(3)宏定义(参见示例1-2)。

假设头文件名称为di.h ,头文件的结构参见示例1-3。

【规则1-2-1】用 .include di.h 头文件(编译器将从用户的工作目录开始搜索)。

【规则1-2-2】每个标号定义时, 要加空格时都用”Tab ”键, 定义符和定义值要整齐, 每个定义符后都在同一列加上”; ”(分号), 分号后加上每个标号的注释(参见示例1-3)。

第1章 文件结构

示例1-2 宏定义文件的结构

示例1-3 汇编头文件的结构

1.3 定义文件的结构

1.3.1定义文件有三部分内容:

(1)定义文件开头处的版权和版本声明(参见示例1-1)。

(2)对一些头文件的引用。

(3)程序的实现体(包括数据和代码)。

假设定义文件的名称为di.asm ,定义文件的结构参见示例1-4。

示例1-4 汇编定义文件的结构

1.3.2函数(参见示例1-5)

【规则1-3-1】原则上函数内不允许对绝对地址进行操作。

【建议1-3-1】函数内不要分配大的数组,占用堆栈空间。

【建议1-3-2】函数内尽量不要使用数字和字符等常量,而要用标识符常量,便于以后的修改。

【建议1-3-3】每个函数体不得超过150行(不含注释)

示例1-5 汇编语言的函数结构

1.4、编译连接环境

【规则1-4-1】在项目文档和项目源代码的ReadMe 文件,说明编译连接环境和方法,特别是 Dos 行命令下相关的 Path ,及编译连接参数。(参见示例1-6)

示例1-6 ReadMe.txt

第2章 程序的版式

版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要构成因素。因此,可以把程序的版式比喻为“书法”。

2.1 对齐

【规则2-1-1】 要求编辑中对齐使用 Tab ,而编辑软件中将Tab 设为 8 个字符位置,且跳格不用空格代替。

【规则2-1-2】每行程序宽度为6个Tab 宽, 即8*6=48个字符, 第49列为分号, 分号后写注释。

【规则2-1-3】标号从行首(即第1列) 开始输入, 标号后不直接跟汇编指令,

换行后加一

个Tab 键后再输入汇编助记符, 输完助记符后再加一个Tab 键才输操作数. (参见示例2-1)。

示例2-1 对齐

2.2 注释

汇编语言的注释符为”; ”。注释通常用于:

(1)版本、版权声明;

(2)函数接口说明;

(3)重要的代码行或段落提示。

【规则2-1-1】使用中文做注释。

【规则2-1-2】汇编语言是低级语言, 原则上要求每行都加上注释。最少注释率不得低于50%。

【规则2-1-3】边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

【规则2-1-4】注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

【规则2-1-5】尽量避免在注释中使用缩写,特别是不常用缩写。

【规则2-1-6】注释的位置应与被描述的汇编指令相邻,汇编语言一般把注释放在指令的右方。(参见示例1-4)。

第3章 命名规则

3.1 共性规则

【规则3-1-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。

标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue 写成NowValue 。

【规则3-1-2】单词连写时, 用第一个字母大写来区分。如: CurrentValue。

3.2 常量的命名约定

【约定3-2-1】常量全用大写的字母,用下划线分割单词。

例如:

MAX equ 100;

MAX_LENGTH equ 100;

3.3 变量的命名约定

【约定3-3-1】全局变量名的约定:

g_模块名+变量标识名

如:

g_card_CardNumber ds 1 ; 名片总数量 g_ sys_KeyCode ds 1 ; 系统变量, 保存键码

【约定3-3-2】模块变量名的约定:

m_模块名+变量标识名

如:

m_ec_WordOrder ds 2 ; 英汉单词序号

m_ec_DispBuffColumn ds 1 ; 显示缓冲区列计数 m_ec_DispBuffLine ds 1 ; 显示缓冲区行计数

3.4 函数的命名约定

【约定3-4-1】函数的命名约定:

fun_+模块标识+_+函数标识名;

如:

fun_sys_PutChar: ; 系统程序, 显示一个字符 fun_ec_Unpress: ; 英汉解压子程序

【约定3-4-2】函数体内跳转标号的命名约定:

函数名内单词第一个字母的集合+_+跳转标识名 如: 示例3-1

3.5 数据标识的命名约定

d_模块名+数据标识名

如:

d_ec_WordLeftTree:

d_ec_WordRightTree: ; 英汉单词左树 ; 英汉单词右树


相关内容

  • 编译原理名词解释
  • .名词解释: 1)前缀 答:前缀--是指符号串任意首部. 2)可归前缀 答:可归前缀--是指规范句型的一个前缀,这种前缀包含句柄且不含句柄之后的任何符号. 3)活前缀 答:活前缀--规范句型的一个前缀,这种前缀不含句柄之后的任何符号. 或给定文法规范句型的可归前缀的任意首部. 4)简单短语 答:简单 ...

  • 编译原理--教学大纲
  • <计算机编译原理>课程大纲 一.适用对象 本课程适用于计算机科学与技术以及相关专业的网络教育.成人教育学生. 二.课程性质 本课程是计算机科学与技术专业学生的专业基础课. 编译原理课程是计算机专业的一门主干课程.课程介绍程序设计语言编译程序构造的一般原理.基本设计方法.主要实现技术和一些 ...

  • 代码构建论文
  • 代码构建技术综述 作者姓名:龚江鹏 作者学号:09060119 作者专业及班级:计算机科学与技术专业(1)班 摘 要:一切自动化是人类的一个梦想,人们为了实现这个梦想不断努力.人们利用计算机软件与硬件实现办公自动化.管理自动化的同时,也在考虑程序代码的自动生成. 关 键 词:代码构建:未来趋势:框架 ...

  • 研究生论文书写规范
  • 内蒙古工业大学研究生学位论文撰写规范 研究生学位论文是研究生科学研究工作的全面总结,是描述其研究成果.代表其研究水平的重要学术文献资料,是申请和授予相应学位的基本依据,必须按照确定的规范认真执行. 为规范我校研究生学位论文撰写,依据中华人民共和国国家标准GB/T 7713.1-2006<学位论 ...

  • 南开大学研究生学位论文写作规范(修订版)20150403
  • 关于公布<南开大学研究生学位论文写作规范(修订版)> 的通知 各学院(所).各有关单位: <南开大学研究生学位论文写作规范(试用版)>已使用多年,使用过程中发现了一些不足之处,中间做过局部调整.为了进一步完善研究生学位论文的写作规范,提高学位培养质量,我们对<南开大学研 ...

  • 7猜数字游戏课程设计完整版
  • 北京邮电大学世纪学院 实验.实习.课程设计报告撰写格式与要求 (试行) 一.实验报告格式要求 1.有实验教学手册,按手册要求填写,若无则采用统一实验报告封面. 2.报告一律用钢笔书写或打印,打印要求用A4纸:页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米:行间距取固定值(设置值为2 ...

  • 现代汉语第一次作业
  • 第一次作业 一.简答题(共2 道试题,共10 分.本课程入门学习要求) 1. 浏览本课程各个部分的学习内容并简要介绍. 答:第一章为<国家通用语言文字法>解读,主要介绍了语言文字法的基本内容与实施: 第二章是语音,主要介绍了一些实用性的知识,如普通话的达标测试等: 第三章为词汇,主要介绍 ...

  • 仿QQ聊天系统的数据库设计与实现
  • 1 引言 数据库课程设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物 理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足用户的应用需求.信息管理要求是指在数据库中应该存储和管理哪些数据对象:数据操作要求是指对数据对象要进行哪些操作,如查询.加入.删除.修改.统计 ...

  • 地名管理学基本知识
  • 地名管理学基本知识 地名学是近代以来出现的交叉学科,与地理学.语言学. 历史学有天然的.不可分割的联系. 地名的基本概念 地名:地名是人们对具有特定方位.地域范围的地理实 体赋予的专有名称.地名:(geographical names)人们对各 个地理实体赋予的专有名称.地名:(Geographic ...