汇编语言程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2014H)=00H, (2015H)=0AH 即将数据以字(双字节)的形式存放在从2010H开始的单 元上。
a
10
(6)DS
DS是定义存储空间伪指令。其作用是从指定的地址 单元开始,保留DS定义的字节数的存储单元。 例如:
ORG 2050H DS 8
a
11
(7)BIT
BIT是定义位地址符号伪指令。其作用是把位地址赋 给字符名。
第4章 汇编语言程序设计
在单片机的应用中,汇编语言程序设计时一 个关键问题。它不仅是实现人机对话的基础和直 接关系到所设计单片机控制系统的控制特性,而 且对系统的存储容量和工作效率也有很大影响。
a
1
4.1 汇编语言基础
根据程序设计语言的结构及其功能可以分为三种: (1)机器语言:机器语言是用二进制代码0和1表示指令 和数据的最原始的程序设计语言。 (2)汇编语言:在汇编语言中,指令用助记符表示,地 址、操作数可用标号、符号地址及字符等形式来描述。 (3)高级语言:高级语言是接近于人的自然语言,面向 过程而独立于机器的通用语言。
开始 取数据低4位 转换成ASCII码 存ASCII码 取数据高4位 转换成ASCII码 存ASCII码
结束
ORG 2000H MOV A,30H ANL A,#0FH ADD A,#30H MOV 32H,A MOV A,30H SWAP A ANL A,#0FH ADD A,#30H MOV 31H,A
操作码 操作数
DB
字节常数或ASCII字符
例如:ORG 2010
DB 76H, 73, 'C', 'B'
DB 0ACH
则(2010H)=76H, (2011H)=49H,(2012H)=43H,
(2013H)=42H,(2014H)=0ACH
即将数据以字节的形式存放在从2010H开始的单元上。
a
9
(5)DW
a
13
4.2 汇编语言程序设计
➢4.2.1 汇编语言程序设计步骤 ➢4.2.2 汇编语言程序的设计方法 ➢4.2.3 汇编语言的编辑和汇编 ➢4.2.4 顺序程序 ➢4.2.5 分支程序 ➢4.2.6 循环程序 ➢4.2.7 子程序
a
14
4.2.1 汇编语言程序设计步骤
➢ 1. 分析问题 ➢ 2. 确定算法 ➢ 3. 设计程序流程图 ➢ 4. 分配内存单元 ➢ 5. 编写汇编语言源程序 ➢ 6 .调试程序
例如: A1 BIT P2.0 A2 BIT 02H
a
12
(8)DATA
DATA是定义标号数据地址赋值伪指令。其作用是给 它左边的字符名赋值。其格式如下:
字符名 DATA 表达式 例如: ORG 0200H
AA DATA 35H ┆
MOV A, AA DATA伪指令一般用来定义程序中所用的8位或16位 数据或地址。
ORG 1000H START: MOV A, #20H
┇
END
a
6
(2)END
END 是结束汇编伪指令。其作用是通知汇编程序结 束汇编。汇编程序对END之后的所有汇编语言指令不再 汇编。
a
7
(3)EQU
EQU是赋值伪指令。其作用是给变量标号赋予一个 确定的数值(地址或数据)。其格式如下:
字符名 EQU 数或汇编符号 例如:
这里主要介绍汇编语言。
a
2
MCS-51单片机汇编语言,包含两类不同性质的指令。 (1)基本指令:即指令系统中的指令。它们都是机器能够 执行的指令,每一条指令都有对应的机器码。 (2)伪指令:汇编时用于控制汇编的指令。它们都是机器 不执行的指令,无机器码。
a
3
4.1.1 汇编语言格式
汇编语言源程序是由汇编语句(即指令)组成的。 汇编语言一般由四部分组成。一般格式为:
标号: START:
操作码 操作数 MOV A,30H
;注释 ;A←(30H)
a
4
4.1.2 伪指令
伪指令是在机器汇编时供汇编程序识别和执行的命 令,用来对机器的汇编过程进行控制。伪指令不是真正 的指令,这些指令不属于指令系统,不产生机器代码。 即利用伪指令告诉汇编程序如何进行汇编,同时也为人 们编程提供方便。
SJMP $ END
;取值 ;取低4位 ;转换成ASCII码 ;保存结果 ;取值 ;高4位与低4位互换 ;取低4位(原来的高4位) ;转换成ASCII码 ;保存结果
MCS-51汇编语言常用的伪指令有8条。下面我们分 别介绍。
பைடு நூலகம்
a
5
(1)ORG
ORG伪指令称为起始汇编指令,用来规定汇编时目的程序在程 序存储器中存放的起始地址。其格式为:
[标号:] ORG 16位地址 标号通常省略。在机器汇编时,当汇编程序检测到该语句时, 它就把下一条指令或数据的首字节按ORG后面的16位地址存入程序 存储单元。该指令常用于汇编语言源程序或数据块的开头。 例如:
DW是定义字伪指令。其作用是从指定单元开始定义 若干个字的数值或ASCII码字符。其格式如下:
操作码 操作数 DW 字常数或ASCII字符 例如:ORG 2010
DW 1234H, 76H, 10
DB 0ACH 则 (2010H)=12H,(2011H)=34H,
(2012H)=00H,(2013H)=76H,
执行的机器码。可以用手工汇编或机器汇编生 成.HEX目标程序。一般要在仿真器调试通过,最 后用编程器把目标程序写入EPROM。
a
17
4.2.4 结构化程序设计
一、顺序程序
顺序程序是一种最简单,最基本的程序。 其特点:程序按编写的顺序依次往下执行每一 条指令,直到最后一条。
a
18
例1
将30H单元内的两位BCD码拆开并转换成ASCII 码,存入RAM两个单元中(31H和32H)。
a
15
4.2.2 汇编语言程序的设计方法
汇编语言程序的设计方法主要是采用模块化 的程序设计方法。即实际的程序一般都由一个主 程序和多个子程序构成。每一程序模块都有特定 的功能。
a
16
4.2.3 汇编语言的编辑和汇编
(1)源程序编辑 用文本编辑器编写源程序,生成 .ASM文件
(2)汇编 汇编的目的是把源程序翻译成计算机能识别
AA EQU R1
K1 EQU 40
DD EQU 0F64H
┆
MOV A,AA ;即MOV A,R1
MOV A,K1 ;即40→A
LJMP DD
;即0F64H→PC
a
8
(4)DB
DB是定义字节伪指令。其作用是从指定单元开始定 义若干个字节的数值或ASCII码字符。常用于定义数据常 数表。其格式如下:
a
10
(6)DS
DS是定义存储空间伪指令。其作用是从指定的地址 单元开始,保留DS定义的字节数的存储单元。 例如:
ORG 2050H DS 8
a
11
(7)BIT
BIT是定义位地址符号伪指令。其作用是把位地址赋 给字符名。
第4章 汇编语言程序设计
在单片机的应用中,汇编语言程序设计时一 个关键问题。它不仅是实现人机对话的基础和直 接关系到所设计单片机控制系统的控制特性,而 且对系统的存储容量和工作效率也有很大影响。
a
1
4.1 汇编语言基础
根据程序设计语言的结构及其功能可以分为三种: (1)机器语言:机器语言是用二进制代码0和1表示指令 和数据的最原始的程序设计语言。 (2)汇编语言:在汇编语言中,指令用助记符表示,地 址、操作数可用标号、符号地址及字符等形式来描述。 (3)高级语言:高级语言是接近于人的自然语言,面向 过程而独立于机器的通用语言。
开始 取数据低4位 转换成ASCII码 存ASCII码 取数据高4位 转换成ASCII码 存ASCII码
结束
ORG 2000H MOV A,30H ANL A,#0FH ADD A,#30H MOV 32H,A MOV A,30H SWAP A ANL A,#0FH ADD A,#30H MOV 31H,A
操作码 操作数
DB
字节常数或ASCII字符
例如:ORG 2010
DB 76H, 73, 'C', 'B'
DB 0ACH
则(2010H)=76H, (2011H)=49H,(2012H)=43H,
(2013H)=42H,(2014H)=0ACH
即将数据以字节的形式存放在从2010H开始的单元上。
a
9
(5)DW
a
13
4.2 汇编语言程序设计
➢4.2.1 汇编语言程序设计步骤 ➢4.2.2 汇编语言程序的设计方法 ➢4.2.3 汇编语言的编辑和汇编 ➢4.2.4 顺序程序 ➢4.2.5 分支程序 ➢4.2.6 循环程序 ➢4.2.7 子程序
a
14
4.2.1 汇编语言程序设计步骤
➢ 1. 分析问题 ➢ 2. 确定算法 ➢ 3. 设计程序流程图 ➢ 4. 分配内存单元 ➢ 5. 编写汇编语言源程序 ➢ 6 .调试程序
例如: A1 BIT P2.0 A2 BIT 02H
a
12
(8)DATA
DATA是定义标号数据地址赋值伪指令。其作用是给 它左边的字符名赋值。其格式如下:
字符名 DATA 表达式 例如: ORG 0200H
AA DATA 35H ┆
MOV A, AA DATA伪指令一般用来定义程序中所用的8位或16位 数据或地址。
ORG 1000H START: MOV A, #20H
┇
END
a
6
(2)END
END 是结束汇编伪指令。其作用是通知汇编程序结 束汇编。汇编程序对END之后的所有汇编语言指令不再 汇编。
a
7
(3)EQU
EQU是赋值伪指令。其作用是给变量标号赋予一个 确定的数值(地址或数据)。其格式如下:
字符名 EQU 数或汇编符号 例如:
这里主要介绍汇编语言。
a
2
MCS-51单片机汇编语言,包含两类不同性质的指令。 (1)基本指令:即指令系统中的指令。它们都是机器能够 执行的指令,每一条指令都有对应的机器码。 (2)伪指令:汇编时用于控制汇编的指令。它们都是机器 不执行的指令,无机器码。
a
3
4.1.1 汇编语言格式
汇编语言源程序是由汇编语句(即指令)组成的。 汇编语言一般由四部分组成。一般格式为:
标号: START:
操作码 操作数 MOV A,30H
;注释 ;A←(30H)
a
4
4.1.2 伪指令
伪指令是在机器汇编时供汇编程序识别和执行的命 令,用来对机器的汇编过程进行控制。伪指令不是真正 的指令,这些指令不属于指令系统,不产生机器代码。 即利用伪指令告诉汇编程序如何进行汇编,同时也为人 们编程提供方便。
SJMP $ END
;取值 ;取低4位 ;转换成ASCII码 ;保存结果 ;取值 ;高4位与低4位互换 ;取低4位(原来的高4位) ;转换成ASCII码 ;保存结果
MCS-51汇编语言常用的伪指令有8条。下面我们分 别介绍。
பைடு நூலகம்
a
5
(1)ORG
ORG伪指令称为起始汇编指令,用来规定汇编时目的程序在程 序存储器中存放的起始地址。其格式为:
[标号:] ORG 16位地址 标号通常省略。在机器汇编时,当汇编程序检测到该语句时, 它就把下一条指令或数据的首字节按ORG后面的16位地址存入程序 存储单元。该指令常用于汇编语言源程序或数据块的开头。 例如:
DW是定义字伪指令。其作用是从指定单元开始定义 若干个字的数值或ASCII码字符。其格式如下:
操作码 操作数 DW 字常数或ASCII字符 例如:ORG 2010
DW 1234H, 76H, 10
DB 0ACH 则 (2010H)=12H,(2011H)=34H,
(2012H)=00H,(2013H)=76H,
执行的机器码。可以用手工汇编或机器汇编生 成.HEX目标程序。一般要在仿真器调试通过,最 后用编程器把目标程序写入EPROM。
a
17
4.2.4 结构化程序设计
一、顺序程序
顺序程序是一种最简单,最基本的程序。 其特点:程序按编写的顺序依次往下执行每一 条指令,直到最后一条。
a
18
例1
将30H单元内的两位BCD码拆开并转换成ASCII 码,存入RAM两个单元中(31H和32H)。
a
15
4.2.2 汇编语言程序的设计方法
汇编语言程序的设计方法主要是采用模块化 的程序设计方法。即实际的程序一般都由一个主 程序和多个子程序构成。每一程序模块都有特定 的功能。
a
16
4.2.3 汇编语言的编辑和汇编
(1)源程序编辑 用文本编辑器编写源程序,生成 .ASM文件
(2)汇编 汇编的目的是把源程序翻译成计算机能识别
AA EQU R1
K1 EQU 40
DD EQU 0F64H
┆
MOV A,AA ;即MOV A,R1
MOV A,K1 ;即40→A
LJMP DD
;即0F64H→PC
a
8
(4)DB
DB是定义字节伪指令。其作用是从指定单元开始定 义若干个字节的数值或ASCII码字符。常用于定义数据常 数表。其格式如下: