汇编语言程序设计方法..pdf
《汇编语言程序设计方法..pdf》由会员分享,可在线阅读,更多相关《汇编语言程序设计方法..pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 汇编语言程序设计方法第一节 汇编语言程序设计1 1、程序设计语言、程序设计语言1)1)、机器语言、机器语言直接用二进制数表示指令和数据的最原始的程序设计语言。2)2)、汇编语言、汇编语言用助计符来表示的面向机器的程序设计语言。用汇编语言编制的程序须要用“人工汇编”或“机器汇编”将其翻译成机器语言,才能被机器认识。3)3)、高级语言、高级语言高级语言是一种面向过程而独立于计算机硬件结构的通用计算机语言。如FORTRAN、PASCAL、C 语言等。注意:注意:机器语言直接面对机器,实时性好,但难以编出较复杂的程序,现基本上被汇编语言代替;汇编语言是目前单片机初学者采用的一种编程方法,它具有
2、实时性强,对较复杂的程序也能编制。高级语言它面向过程易于编制复杂程序,具有通用性好,程序简单,但它要求占用较大的内存空间,实时性差,目前从事单片机的开发和研究工作须掌握这种方法。2 2、汇编语言的规范、汇编语言的规范1)1)、汇编语言源程序的格式、汇编语言源程序的格式标号:操作码目的操作数,源操作数;注释 2)2)、汇编语言伪指令、汇编语言伪指令ORG-起始地址伪指令;功能:用来规定目标程序或数据的起始地址。格式:标号:ORG16 位地址说明:在一个程序中允许有多个 ORG 指令,以规定不同程序段的起始位置。END-汇编结束伪指令;功能:用来告诉汇编程序,此源程序到此结束。50格式:标号:EN
3、D说明:在一个程序中有且只有一个 END 指令。例如:ORG1000HSTART:MOVA,BJNBACC.7,DONECPLADONE:MOVB,AENDEQU-赋值伪指令;格式:字符名称EQU数或汇编符号功能:将右边值赋给左边用户定义的字符说明:a、由 EQU 赋的字符可以作数值、数据地址、代码地址。b、由 EQU 伪指令所定义的符号必须先定义后使用。例如:SDGFGEQU58H;表示 SDGFG=58HDB-定义字节伪指令;格式:标号:DB8 位(二进制)数据表。功能:用于告诉汇编程序从指定的地址单元开始,定义若干个字节存储单元的内容。说明:a、数据表可以是二进制数也可以是ASC编码,数
4、据之间用逗号分开,ASC要加单引号,如 C,要写成C。b、它只适应程序存储器。例如:ORG1000HFIRST:DB73H,20H,45H,67H,01HMOVA,#55HDB34H,67H,89H,70H执行后的结果如图 1 所示、DW-定义值伪指令;功能:用来告诉汇编程序从指定的地址单元开始,定义若干个 16 位数据(二进制)。511000H73H1001H20H1002H45H1003H67H1004H01H1005H74H1006H55H1007H34H1008H67H1009H89H100AH70H格式:标号:DW字常数或 ASC字符说明:a、字常数可以是 8 位也可以是更多位。图图
5、1 1 由由DBDB建立的数据表建立的数据表b、尽管在存储数据的形式上与 DB 相同但使用不一样,DB 后面只能跟 8 位的数据或 ASC字符。C、它只适应程序存储器。d、单个 DW、DB 定义的数表个数不得超过 80 个,多于 80 个数据应用多个指令完成例如:ORG1000HPIOI:DW5678H,1234H,2379H结果如图 2 所示。、TA-数据地址赋值伪指令;格式:字符名称DATA 表达式功能:它的功能是给标号段中的标号赋以数值。说明:a、本语句与 EQU 相似,但本语句可以先用后定义;b、在程序中它常用来定义数据地址。、BIT-位地址赋值伪指令;格式:字符名称 BIT 位地址功
6、能:用于告诉汇编程序,把位地址赋予规定的字符名称,用于位处理程序中。例如:X0BITP1.03 3、汇编语言程序设计方法、汇编语言程序设计方法1 1)、程序设计过程、程序设计过程建立数学模型选择适当的算法编制程序流程图汇编语言程序设计汇编语言程序调试 2)2)、程序流程图、程序流程图程序流程图的作用52地址:数据1000H56H1001H78H1002H12H1003H34H1004H23H1005H79H图图 2 2 由由 DWDW 建立的数据建立的数据表能直观形象地表示各部分的逻辑关系及程序结构,它是设计程序特别是复杂程序的重要工具。程序流程图的组成端点框表示程序的开始或结束,用表示,可在
7、内填上相应文字。流程线表示程序的组向,用方向键表示。处理框表示一种处理功能;框内用文字说明。用不表示。判断框用表示,该框用于指示一个判定点,从这点产生分支,在框内就注明测试条件,而测试结果应注明在各分支流程线上。连接框连接框用表示,它表示流程中止而并非流程结束。通常用来辟免流程线交叉,在流程图中标识相同的连接框表示流程相连。子程序框用表示,该框表示调用子程序。在该框内填入相应的子程序名称或入口地址。程序流程图的设计程序流程图的设计将在具体的程序设计方法中针对具体的例子加以介绍。第二节第二节顺序与循环程序设计方法顺序与循环程序设计方法1 1、顺序程序设计顺序程序设计1)1)、顺序结构程序设计方法
8、、顺序结构程序设计方法建立数学模型画程序流程图编写汇编程序2)2)、应用举例、应用举例例 1:设有 16 位二进制数存放在 R0、R1 中(R0 存放高位),试编写实现 16 位二进制数“取反加 1”的操作程序。开始53低位取反加 1解法 1:程序流程如图 3 所示,程序如下:ORG1000HSTART:MOVA,R1CPLAADDA,#01HMOVR1,AMOVA,R0CPLA图图 3 3 程序流程图程序流程图ADDCA,#00HMOVR0,AEND解法 2:通过将 R0、R1 分别送 DPTR 的高低字节,然后利用 INCDPTR 实现加 1,取反后再用:CPLA 这样的指令实现。例 2:
9、设在 8031 单片机内部 RAM 的 40H 单元中存放 8 位二进制数,要求将其转换成相应 BCD 码并由高位的顺序存入内部 RAM 以 60H 为首址的 3 个连续单元中,试编写相应程序:解:本题的关键是如何将二进制数转换成 BCD 码。由数学变换知:8 位二进制/100=BCD 码的百位数余数/10=BCD 码的十位数余数=BCD 个位数程序如下:ORG1000HBINBCD:MOVR0,#60HMOVA,40HMOVB,#100DIVAB;整数存于 A 中MOVR0,AINCR0MOVA,#1054XCHA,BDIVABMOVR0,AINCR0XCHA,BMOVR0,AEND思考题:
10、对于任意一个 16 进制表示的数,如 AB9EF087,存放在以 20H 为首址的单元中,如何将其转化成 BCD 码?2 2、循环程序设计方法循环程序设计方法1)1)、循环结构程序的组成、循环结构程序的组成初始化部分:它是用来设置循环初始化状态,如设置地址指针、循环计数器初值等。循环处理部分:它是重复执行的数据处理程序。循环控制部分:它通过检测循环次数或循环结束条件从而控制程序循环继续与否。结束部分:它是对结果分析处理和存放结果。2)2)、循环程序设计方法、循环程序设计方法(1)单循环程序设计方法循环次数是已知的循环程序设计先分析要解决的问题,建立解决问题的数学模型,然后编写出对应的程序,按已
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 方法
限制150内