单片微机原理及应用课件_第4章_汇编语言程序设计
微机原理及应用(第五版)PPT课件
![微机原理及应用(第五版)PPT课件](https://img.taocdn.com/s3/m/79d4e39b767f5acfa0c7cd9d.png)
• 第一章 微型计算机基础知识 • 第二章 微型计算机组成及微处理器功能结构 • 第三章 80X86寻址方式和指令系统 • 第四章 汇编语言程序设计 • 第六章 半导体存储器及接口 • 第八章 中断和异常 • 第九章 输入/输出方法及常用的接口电路
2021
1
第一章 微型计算机基础知识
X为负时:求[X]补是将[X]原的符号位不变,其余各位
变反加1.
求[X]反是将[X]原的符号位不变,其余各位
变反.
2021
微机原理及应8用
补码没有+0和-0之分;反码有+0和-0之分
[+0]补=00…..00=0 [-0]补=00…..00=0 [+0]反=00…..00=0 [-0]反=00…..00=111…..11
解: ①.设x=129,y=79则
[x]补=10000001B,[y]补=01001111B [-y]补=[y]变补=10110001B [x-y]补=[x]补+[-y]补=00110010B 最高位有进位,
结果为正[x-y]补= [x-y]原=00110010B x-y=50
②.设x=79,y=129则
• 二进制:数的后面加后缀B. • 十进制:数的后面加后缀D或不加. • 十六进制:数的后面加后缀H.
2021
微机原理及应5用
1.1.3 整数
1.无符号数
8、16、32位全部用来表示数值本身。
最低位LSB是0位,最高位MSB是7、15、31。
2.带符号整数
1).原码: 设X=+1011100B,Y=-1011100B
• 补码:优点:符号位和数值一起运算; 减法可以变成加法运算.
单片原理及应用(第2版)第4章 MCS-51单片机汇编语言程序设计
![单片原理及应用(第2版)第4章 MCS-51单片机汇编语言程序设计](https://img.taocdn.com/s3/m/5496f59c51e79b89680226e0.png)
• • • • • • • • • • • • • • •
程序2: 例B程序 : 程序 ORG 0000H MOV DPTR, #2000H MOV R0, #20H LOOP: CLR C MOVX A, @DPTR CJNE A, #24H , L1 JZ EXIT L1: MOV @R0, A INC DPTR INC R0 SJMP LOOP EXIT: MOV @R0, #24H SJMP $ END
17
• 例A: • 将以20H为起始地址的内部 将以 为起始地址的内部RAM中的 中的20 为起始地址的内部 中的 个连续单元清零 • MOV R0,#20H , • MOV R1,#20 , • CLR A • LOOP:MOV @R0,A : • INC R0 • DJNZ R1, LOOP • SJMP $
• • • • • • • • • • • • • • • • • •
例4.6
ORG 0000H SJMP ADD1 ORG 0030H MOV R3, #00H MOV R4, #00H MOV R2, #08H MOV R0, #60H CLR C MOV A, R4 ADD A, @R0 MOV R4, A INC R0 CLR A ADDC A, R3 MOV R3, A DJNZ R2, LOOP SJMP $ END
11
4.4 循环结构的程序
• 循环程序是强制CPU重复执行某一指令序列的 一种程序结构形式。 • 凡是遇到需要重复操作的程序,这时可用循 环程序结构。 • 循环结构程序简化了程序书写,减少了内存 占用空间。 • 循环结构的程序一般由5部分组成:初始化, 循环体、循环修改、循环控制和结束部分。
12
13
微机原理及应用第四章汇编语言程序设计基础
![微机原理及应用第四章汇编语言程序设计基础](https://img.taocdn.com/s3/m/b3887c2d4693daef5ff73d05.png)
画流程图:以图示形式表示解决具体问题的思路和方法
编制源程序:精心挑选合适的指令和操作数的寻址方式
用注释行说明程序,便于阅读、调试和修改。
调试程序:
汇编
执行
Y
源程序--→机器程序--→分析结果正确--→调试程序完成
N
修改
4
• 起止框 • 处理框 • 判断框
• 连线
流程图图例
开始
结束
XX+1 Y Y-1
31H
取Data1和Data2
0000H
A, Data1 A, Data2
Y
不相等?
STEP1 ;两数不等,转STEP1
N
F0
;两数相等,F0置位
设置标志F0
Y
异号?
ACC.7, TEST;两数异号,转TEST A, Data2 ;两数同号,恢复Data1 结束
N
Y
Data1小?
Y
Data1正?
A, Data2 ;比较 STEP3 ; Data1小,转STEP3 BIG, Data1 ; Data1大
CJNE A, #0AH, $+3
clr c subb A,#30h
JNC ADD_37;若大于等于0AH,则加37Hcjne A,#10,$+3
ADD_30:ADD A, #30H;若小于0AH,则加30H
jc A, HEXASC1 ;A<10转移
MOV R2, A ;保存结果
RET
;子程序返回
subb A,#07h ASCHEX1: ret
3
2、 程序设计步骤
分析课题→确定算法和数据结构→确定操作步骤→画流程 图→编制源程序→调试程序
凌宏江-单片微型计算机原理4-PPT文档资料
![凌宏江-单片微型计算机原理4-PPT文档资料](https://img.taocdn.com/s3/m/5d15cbff195f312b3169a537.png)
材料学院 单片微型计算机原理与应
7
1) ORG (Origin)
格式:ORG 表达式 功能:规定程序块或数据块存放的起始地址。 注:表达式必须为16位地址值,同一源程序中可多次 使用,自小至大,不能重叠。 如:
ORG LJMP ORG LJMP ORG … … … RETI 0000H START 000BH INTT0 0030H
材料学院本科生用电子教案 2019-2019学年第一学期
单片微型计算机原理与应用
主讲教师:凌宏江
华中科技大学材料学院
目 录
第一章 概述 第二章 MCS-51的内部结构 第三章 MCS-51的指令系统 第四章 汇编语言程序设计 第五章 存储器及扩展技术 第六章 中断系统 第七章 I/O口扩展及应用 第八章 定时器/计数器 第九章 串行通信及其接口 第十章 A/D和D/A转换器接口 第十一章 显示器、键盘、打印机接口
材料学院 单片微型计算机原理与应
2
第四章 汇编语言程序设计
4.1 汇编语言程序设计概述 4.2 顺序程序设计 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
材料学院 单片微型计算机原理与应
3
4.1 汇编语言程序设计概述
所谓程序设计,就是按照给定的任务要求,编写出完 整的计算机程序。要完成同样的任务,使用的方法或程序并 不是唯一的。因此,程序设计的质量将直接影响到计算机系 统的工作效率、运行可靠性。 程序设计语言包括 机器语言 汇编语言 高级语言 汇编语言源程序由以下两种指令构成
材料学院 单片微型计算机原理与应
6
2. 伪指令
伪指令并不是真正的指令,也不产生相应的机 器码,它们只是在计算机将汇编语言转换为机器码 时,指导汇编过程,告诉汇编程序如何汇编。 “伪”字体现在汇编时不产生机器指令代码, 不影响程序的执行,仅产生供汇编时用的某些命令, 在汇编时执行某些特殊操作。
C单片微机的程序设计PPT课件
![C单片微机的程序设计PPT课件](https://img.taocdn.com/s3/m/ace2d6d5eefdc8d377ee32a2.png)
操作码域: 是指令的助记符或定义符,用来表示指令的性质,规定这个指令语句的操作
类型。 伪指令语句中的定义符规定这个指令语句的伪操作功能。 对于标号缺省的语句,操作码域作为一行的开始。但在书写时,应与上一行的操
作码对齐。
第8页/共110页
操作数域: 给出的是参与运算或进行其它操作的数据或这些数据的地址。 操作数与操作码之间用空格“”分隔,若有两个操作数,这两个操作数之间必须
可用DL语句在同一源程序中给同一标号赋予不同的值,即可更改已定义的标 号值;而用EQU语句定义的标号,在整个源程序中不能更改。
第17页/共110页
⒌ DB(Define Byte) 定义字节伪指令 指令格式为:<标号> DB <表达式或表达式表> 含义:将表达式或表达式表所表示的数据或数据串存入从标号开始的连续存储单 元中。标号为可选项,它表示数据存储单元地址。表达式或表达式表是指一个字节或 用逗号分开的字节数据。可以是用引号括起来的字符串。字符串中的字符按ASCII码 存于连续的ROM中。例如:
第5页/共110页
② 汇编语言语句的格式 指令语句的格式为: 【标号(名字)】:助记符(操作码)【操作数(参数)】;【注释】 伪指令语句的格式: 名字 定义符 参数 ;注释 各字段之间用1个空格或字段定界符分隔,常用的字段定界符有冒号“:” 、逗号 “,”和分号“;”。其中方括号括起来的是可选择部分。
第10页/共110页
例:把片外存储器2200H单元中的数送入片内70H单元中。
标号域 操作码域 操作数域
注释域
BEGIN:MOV DPTR,#2200H ;(DPTR)=2200H
MOV R0,#70H
;(R0)=70H
MOVX A,@DPTR ;(A)=((DPTR))
单片微机原理系统设计与应用课后部分习题答案
![单片微机原理系统设计与应用课后部分习题答案](https://img.taocdn.com/s3/m/8d1d354376232f60ddccda38376baf1ffc4fe3d6.png)
单⽚微机原理系统设计与应⽤课后部分习题答案第⼆章 MCS-51单⽚机硬件结构2-5. 8051单⽚机堆栈可以设置在什么地⽅?如何实现?答:8051单⽚机堆栈可以设置在内部RAM中。
当系统复位时,堆栈指针地址为07H,只要改变堆栈指针SP的值,使其为内部RAM中地址量,就可以灵活的将堆栈设置在内部RAM中。
2-16. 8051单⽚机内部数据存储器可以分为⼏个不同的区域?各有什么特点?2-21.复位后,CPU内部RAM各单元内容是否被清除?CPU使⽤的是哪⼀组⼯作寄存器?它们的地址是什么?如何选择确定和改变当前⼯作寄存器组?答:复位并不清除CPU内部RAM单元中内容,掉电会清除内部RAM 中内容。
复位以后因为PSW=00H,所以选择⼯作寄存器0区,所占地址空间为00H-07H。
⼯作寄存器组可以查询PSW中的RS1(PSW.4)和RS0(PSW.3)来确定,改变当前RS1和RS0的值即可改变当前⼯作寄存器组。
2-22.指出复位后⼯作寄存器组R0-R7的物理地址,若希望快速保护当前⼯作寄存器组,应采取什么措施?答:复位⼯作寄存器组R0-R7的物理地址为00H-07H。
如希望快速保护当前⼯作寄存器组,可以通过改变PSW中RS1(PSW.4)和RS0(PSW.3)的当前值来完成。
第三章 MCS-51指令系统3-6.设系统晶振为12MHz,阅读下列程序,分析其功能,并⼈⼯汇编成机器代码。
答:因为AJMP指令必须有PC指针地址,所以本题解题时设程序开始地址为1000H。
本程序完成功能是使P1.0⼝输出⽅波:T=2*((3*250+2+2)*10+1+2+2)=15090us=15.09ms翻译成机器语⾔的难点在于AJMP⼀句,根据AJMP指令代码可知,该指令为2个字节,⾼8为字节构成为“A10A9A800001”,低8位字节构成为“A7-A0”。
⼜有设置了程序起始地址为1000H,很容易可以写出各指令的地址,AJMP的绝对转移⽬标地址为1002H,A10=0、A9=0、A8=0,所以机器代码为“01 02”,⽬标地址在2区,因为A15-A11为“00010”。
单片微机原理及应用课件 第4章 汇编语言程序设计
![单片微机原理及应用课件 第4章 汇编语言程序设计](https://img.taocdn.com/s3/m/c1cc298884868762caaed5b3.png)
N B
图4-3 分支程序结构流程图
2.双向分支程序设计举例
【例4.2】 设X存在30H单元中,根据下式
X+2 Y= 100 X>0 X=0 求出Y值,将Y值存入31H单元。
∣X∣ X<0
解:根据数据的符号位判别该数的正负,若最 高位为0,再判别该数是否为0。程序流程如 图所示。 参考程序如下:
开始
汇编语言源程序是由汇编语句(即指令)
组成的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下: 标号: 操作码 操作数 A,30H ;注释 ;A←(30H)
START: MOV
各段之间必须用定界符隔开。
返回本节
1、标号段
标号是用户给指令语句设定的一个符号, 在汇编产生目标程序时,汇编程序将把标号 所指的指令语句目标码首地址值赋给该标号。 于是,标号便可作为地址或数据在其它语句 的操作数段中引用。 标号是以字母开头的1~8个字母或数字串组 成,注意,不能使用指令助记符、伪指令或 寄存器名来作标号,标号不能重复定义。
特点:程序按编写的顺序依次往下执行每一条 指令,直到最后一条。 【例4.1】 将30H单元内的两位BCD码拆开并 转换成ASCII码,存入RAM两个单元中。程 序流程如图4-1所示。参考程序如下:p71
开始
取数据低4位 转换成ASCII码 存ASCII码 取数据高4位 转换成ASCII码 存ASCII码 结束
8.END:汇编结束
源程序结束指令。在END以后所写的指令, 汇编程序都不予处理。一个源程序只能有一 个END指令,放在程序结尾。
小结:1、为什么要对汇编程序进行汇编?
2、机器汇编的过程是怎样的? 3、常用伪指令的功能各是什么?
4.2 汇编语言程序设计
《单片微型计算机原理及应用》课件第4章
![《单片微型计算机原理及应用》课件第4章](https://img.taocdn.com/s3/m/998dfd480166f5335a8102d276a20029bd6463ed.png)
IP寄存器的格式如表4―3所示。
表4―3 中断优先级寄存器IP的格式
其中: PX0:外部中断0优先级控制位。 PT0:定时器0中断优先级控制位。 PX1:外部中断1优先级控制位。 PT1:定时器1中断优先级控制位。 PS:串行口中断优先级控制位。 上面优先级控制位规定1为高优先级,0为低优先级。
图4―2 外部中断请求(电平方式)的撤除
4.1.7 中断程序举例 在中断服务程序编程时,首先要对中断系统进行初
始化,也就是对几个特殊功能寄存器的有关控制位进 行赋值。具体来说,就是要完成下列工作:
(1)开中断和允许中断源中断; (2)确定各中断源的优先级; (3)若是外部中断,则应规定是电平触发还是边沿 触发。
4.1.4 中断响应的条件、过程与时间
1.中断响应的条件
单片机响应中断的条件为中断源有请求(中断允许 寄存器IE相应位置1),且CPU开中断(即EA=1)。这样,在 每个机器周期内,单片机对所有中断源都进行顺序检测, 并可在任1个周期的S6期间,找到所有有效的中断请求, 还对其优先级进行排队。但是,必须满足下列条件:
单片机一旦响应中断,首先对相应的优先级有效触 发器置位。然后执行1条由硬件产生的子程序调用指令, 把断点地址压入堆栈,再把与各中断源对应的中断服务 程序的入口地址送入程序计数器PC,同时清除中断请求 标志(串行口中断和外部电平触发中断除外),从而程序 便转移到中断服务程序。以上过程均由中断系统自动 完成。
4.1.5 MCS-51单片机的中断系统
MCS-51系列单片机的中断系统属于8位单片机中 功能较强的1种中断系统,它可以提供5个中断源,每个中 断源有两个中断优先级别可供选择,可实现两级中断服 务程序嵌套。此外,所有中断均可由软件设定为允许中 断或禁止中断,也就是说,用户可以用关中断指令(或复 位)来屏蔽所有的中断请求,也可以用开中断指令使CPU 接受中断请求。MCS-51单片机的中断系统结构示意图 如图4―1所示。
单片微型计算机原理及其应用电子教案[1]
![单片微型计算机原理及其应用电子教案[1]](https://img.taocdn.com/s3/m/d8cb35979e3143323868931e.png)
•
•D7
•D6
•D5
•D4
•D3
•D2
•D1
•D0
•
•PCON •SMOD
•—
•—
•—
•GF1
•GF0
•FD
•IDL
•二、 等待工作方式 •三、 掉电方式
PPT文档演模板
单片微型计算机原理及其应用电子教 案[1]
• 第三章 MSC-51 单片机的指令系统
• 3.1 指令系统概述
PPT文档演模板
单片微型计算机原理及其应用电子教 案[1]
2.1 MCS-51单片机的结构原 理
n 一、 8051单片机的结构
PPT文档演模板
•图 2-1 MCS-51单片机的基本结构
单片微型计算机原理及其应用电子教
案[1]
二、 8051单片机的内部结构和 工作原理
n 8051单片机的内部结构框图如图 2-2 所 示,下面分别进行介绍:
•3.指令周期 • 二、 MCS-51单片机指令的取指和执行的时序
•三、 访问外部ROM和RAM的时序
PPT文档演模板
•图 2-11 访问外部ROM的时序
单片微型计算机原理及其应用电子教 案[1]
•1.访问外部ROM的时序 •2.访问外部RAM的时序
PPT文档演模板
•图 2-12 访问外部RAM的时序
PPT文档演模板
•图 2-5 P0口的位结构
单片微型计算机原理及其应用电子教 案[1]
•(2) P1口位的结构
•图 2-6 P1口的位结构
PPT文档演模板
•图 2-6 P1口的位结构
单片微型计算机原理及其应用电子教 案[1]
单片微型计算机原理及应用(第二版) 第4章
![单片微型计算机原理及应用(第二版) 第4章](https://img.taocdn.com/s3/m/9e0671707c1cfad6185fa770.png)
(2)SCON串行口控制寄存器,字节地址为98H。 SCON的低2位锁存串行口的接收中断和发送中断标 志,其格式如表4―2所示。
表4―2 SCON锁存的中断源
TI:串行口发送中断标志。在串行口以方式0发送 时,每当发送完8位数据后,由硬件置位TI;若以方式1、2、 3发送时,在发送停止位的开始时置位TI。TI=1表示串行 口发送器正在向CPU申请中断。值得注意的是当CPU 响应该中断后,转向中断服务程序时并不复位TI,TI必须 由用户在中断服务程序中用软件清0(可用CLRTI或其它 指令)。
(1)无同级或高级中断正在服务; (2)现行指令执行到最后1个机器周期且已结束; (3)若现行指令为RETI或需访问特殊功能寄存器IE或 IP的指令时,执行完该指令且紧随其后的另1条指令也已 执行完。
单片机便在紧接着的下1个机器周期的S1期间响应 中断。否则,将丢弃中断查询的结果。
2.中断响应过程
第4章 中断、 定时与串行通信
4.1 MCS-51单片机的中断系统 4.2 定时/计数器 4.3 串行通信接口
4.1 MCS-51单片机的中断系统
4.1.1 中断的概念 计算机暂时中止正在执行的主程序,转去执行中断
服务程序,并在中断服务程序执行完了之后能自动回到 原主程序处继续执行,这个过程叫做“中断”。
中断需要解决两个主要问题:一是如何从主程序转 到中断服务程序;二是如何从中断服务程序返回主程 序。
大体说来,采用中断系统改善了计算机的性能,主要 表现在以下几个方面:
(1)有效地解决了快速CPU与慢速外设之间的矛盾, 可使CPU与外设并行工作,大大提高了工作效率。
(2)可以及时处理控制系统中许多随机产生的参数 与信息,即计算机具有实时处理的能力,从而提高了控制 系统的性能。
0第05次课 第04章NEW
![0第05次课 第04章NEW](https://img.taocdn.com/s3/m/ff42be8a680203d8ce2f24ad.png)
微机原理及应用
4
汇编程序
汇编语言源程序
用助记符编写
汇语言 源程序
汇编程序
机器语言 目标程序
源程序的编译程序
微机原理及应用
5
二、汇编语言源程序结构
数据段名 SEGMENT … 数据段名 ENDS 附加段名 SEGMENT … 附加段名 ENDS 堆栈段名 SEGMENT … 堆栈段名 ENDS 代码段名 SEGMENT … 代码段名 ENDS
微机原理及应用
20
偏移量属性
偏移量属性( ):表示变量在逻辑段中离 偏移量属性(OFFSET):表示变量在逻辑段中离 ): 段起始点的字节 数。 例如变量DATA1的偏移量为 ,而DATA2的偏移量 的偏移量为0, 例如变量 的偏移量为 的偏移量 的偏移量为2。 为1,DATA3的偏移量为 。 , 的偏移量为 段属性和偏移量属性构成了变量的逻辑地址。 段属性和偏移量属性构成了变量的逻辑地址。
1
下面程序的功能是什么?
MOV AX,DATA1 MOV BX,DATA2 CMP AX,BX JL NEXT1 MOV CX,AX JMP NEXT2
NEXT1: NEXT2:
微机原理及应用
MOV CX,BX MOV AH,4CH INT 21H
第4章 汇编语言程序设计 章
3
本章主要内容: 本章主要内容:
微机原理及应用
10
数据定义伪指令
该伪指令主要为数据项分配存储单元并预初值。 该伪指令主要为数据项分配存储单元并预初值。 该伪指令构成的语句格式 语句格式是: 语句格式
DB 变量名+ 变量名+ DW DD +表达式1 表达式2 +表达式1,表达式2,… 表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编结果:(2000H)=74H 汇编结果 (2002H)=00H (2004H)=00H
5.DS:定义存储区 . :定义存储区(Define Store)
从指定的地址单元开始,保留一定数量存储单元。 从指定的地址单元开始,保留一定数量存储单元。 格式如下: 格式如下: [标号:] 标号: 标号 DS 表达式
START: MOV :
各段之间必须用定界符隔开。 各段之间必须用定界符隔开。
返回本节
1、标号段 、 标号是用户给指令语句设定的一个符号, 标号是用户给指令语句设定的一个符号, 在汇编产生目标程序时, 在汇编产生目标程序时,汇编程序将把标号 所指的指令语句目标码首地址值赋给该标号。 所指的指令语句目标码首地址值赋给该标号。 于是, 于是,标号便可作为地址或数据在其它语句 的操作数段中引用。 的操作数段中引用。 标号是以字母开头的 标号是以字母开头的1~8个字母或数字串组 字母开头 个字母或数字串组 注意,不能使用指令助记符 伪指令或 指令助记符、 成,注意,不能使用指令助记符、伪指令或 寄存器名来作标号 标号不能重复定义。 来作标号, 寄存器名来作标号,标号不能重复定义。
8.END:汇编结束 . :
源程序结束指令。 以后所写的指令, 源程序结束指令。在END以后所写的指令, 以后所写的指令 汇编程序都不予处理。 汇编程序都不予处理。一个源程序只能有一 指令, 个END指令,放在程序结尾。 指令 放在程序结尾。
小结: 小结:1、为什么要对汇编程序进行汇编? 为什么要对汇编程序进行汇编? 2、机器汇编的过程是怎样的? 机器汇编的过程是怎样的? 3、常用伪指令的功能各是什么? 常用伪指令的功能各是什么?
汇编语言及汇编过程
汇编程序功能 汇编 源程序 (汇编指令程序) 汇编指令程序) 目标程序 (机器码指令程序) 机器码指令程序)
汇编指令与机器码指令有一一对应的关系。 汇编指令与机器码指令有一一对应的关系。 汇编程序是一种翻译程序,将源程序翻译成目标序。 汇编程序是一种翻译程序,将源程序翻译成目标序。
2.EQU:赋值(或等值指令) . :赋值(或等值指令)
给变量标号赋予一个确定的数值。 给变量标号赋予一个确定的数值。其值在整个程序 中不改变,且可多次使用。 中不改变,且可多次使用。 格式为:标号(字符名称) 格式为:标号(字符名称) 例如, 例如,COUNT EQU 16H ADDR EQU 数或汇编符号 ; COUNT=16H
2、操作码段 、 操作码指出指令操作的性质或控制要求。 操作码指出指令操作的性质或控制要求。该 段可以是指令助记符或伪指令助记符。 段可以是指令助记符或伪指令助记符。 3、操作数段 、 操作数是指令操作码操作的对象, 操作数是指令操作码操作的对象,它是参加 操作的数或是操作数据所在的地址。 操作的数或是操作数据所在的地址。 操作数有三种类型的信息: 操作数有三种类型的信息: 立即数、寄存器和地址。 立即数、寄存器和地址。
其中,表达式一般是数值,即要保留的内存单元数。 其中,表达式一般是数值,即要保留的内存单元数。 例如, 例如, ORG 1000H DS DB 而(1005H )=23H。 。 5 23H
汇编结果:从地址 开始, 个字节的内存单元, 汇编结果 从地址1000H开始,保留 个字节的内存单元, 从地址 开始 保留5个字节的内存单元
为区分数字和字符,凡数字以0~9开头。 开头。 为区分数字和字符,凡数字以 开头
4.1.3 伪指令
1.ORG:汇编起始地址 . : 用来说明程序段或数据存储区的起始地址。 用来说明程序段或数据存储区的起始地址。 格式为: 格式为: ORG 例如程序: 例如程序: START: : 十六位地址 ORG 1000H MOV A,#20H , MOV B,#30H , ┇ 说明程序从1000H开始存放。在一个源程序 开始存放。 说明程序从 开始存放 可以多次使用ORG指令。但不能重叠。 指令。 中,可以多次使用 指令 但不能重叠。
目标程序
第一次汇编 第二次汇编 A82F 7A00 E6 FB 0B 8005 08 B64401 0A DBF9 8A2A 80FE
80NEXT 08 B644NEXT 0A DBLOOP 8A2A 80FE
2、机器பைடு நூலகம்编 、
两次扫描过程。 两次扫描过程。 第一次扫描:检查语法错误,确定符号名字; 第一次扫描:检查语法错误,确定符号名字; 建立使用的全部符号名字表; 建立使用的全部符号名字表; 每一符号名字后跟一对应值( 每一符号名字后跟一对应值(地址或 数)。 第二次扫描:是在第一次扫描基础上, 第二次扫描:是在第一次扫描基础上,将符号地址转 换成地址(代真); 换成地址(代真); 地址 利用操作码表将助记符转换成相应的目 标码。 标码。
第4章 汇编语言程序设计 章
4.1 汇编语言基本概念 4.2 汇编语言程序设计
4.1 汇编语言基本概念
4.1.1 程序设计语言 4.1.2 汇编语言的语句结构 4.1.3 伪指令
返回本章首页
4.1.1 程序设计语言
按照语言的结构及其功能可以分为三种: 按照语言的结构及其功能可以分为三种: 1.机器语言:机器语言是用二进制代码 和1表 .机器语言:机器语言是用二进制代码0和 表 示指令和数据的最原始的程序设计语言。 示指令和数据的最原始的程序设计语言。 2.汇编语言:在汇编语言中,指令用助记符表 .汇编语言:在汇编语言中, 地址、 操作数可用标号、 示 , 地址 、 操作数可用标号 、 符号地址及字 符等形式来描述。 符等形式来描述。 3.高级语言:高级语言是接近于人的自然语言, .高级语言:高级语言是接近于人的自然语言, 面向过程而独立于机器的通用语言。 面向过程而独立于机器的通用语言。
2.汇编语言的语句格式 .
汇编语言源程序是由汇编语句(即指令) 汇编语言源程序是由汇编语句(即指令) 组成的。汇编语言一般由四部分组成。 组成的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下: 其典型的汇编语句格式如下: 标号: 标号: 操作码 操作数 A,30H , ;注释 ;A←(30H) ( )
6.BIT:位定义 . :
把位地址赋给确定的字符名称。 把位地址赋给确定的字符名称。常用于定 义位符号地址。 义位符号地址。 格式如下: 格式如下: 字符名称 例如, 例如, BIT 位地址
AA BIT P1.0 BB BIT P2.0
汇编后,把位地址 分别赋给变量AA 汇编后,把位地址P1.0、 P2.0分别赋给变量 、 分别赋给变量 和BB,在程序中它们就是位地址了。 ,在程序中它们就是位地址了。
汇编结果:(2000H)=14H 汇编结果 (2002H)=41H (2004H)=42H
4.DW:定义字数据 (Define Word) . :
按字的形式把数据存放在存储单元中。 按字的形式把数据存放在存储单元中。其中高字节数 存入低位地址。 存入低位地址。 格式如下: 格式如下: [标号:] 标号: 标号 例如, 例如, DB 字常数表 7423H, 00ABH, 20 (2001H)=23H (2003H)=ABH (2005H)=14H ORG 2000H TAB: DW
源程序
ORG 1000H START: R0, START:MOV R0,2FH R2, MOV R2,#00H A, MOV A,@R0 R3, MOV R3,A INC R3 SJMP NEXT LOOP: LOOP:INC R0 @R0,#44H, CJNE @R0,#44H,NEXT INC R2 NEXT: R3, NEXT:DJNZ R3,LOOP 2AH, MOV 2AH,R2 SJMP $ END 地址 1000 1002 1004 1005 1006 1007 1009 100A 100D 100E 1010 1012 A82F 7A00 E6 FB 0B
汇编程序的汇编过程
汇编有两种方法:手工汇编、机器汇编。 汇编有两种方法:手工汇编、机器汇编。
1、手工汇编: 手工汇编: 第一次汇编:确定地址,翻译成各条机器码,字符标号 第一次汇编:确定地址,翻译成各条机器码, 原样写出; 原样写出; 第二次汇编:标号代真, 第二次汇编:标号代真,将字符标号用所计算出的具体 地址值或偏移量代换。 地址值或偏移量代换。
返回本节
汇编语言源程序: 汇编语言源程序:用汇编语言编写的程序 称为汇编语言源程序,简称源程序。 称为汇编语言源程序,简称源程序。计算机 不能直接识别和执行源程序。 不能直接识别和执行源程序。 汇编(过程):将汇编语言源程序翻译成 汇编(过程):将汇编语言源程序翻译成 ): 机器码目标程序的过程,称为汇编过程, 机器码目标程序的过程,称为汇编过程,或 简称为汇编。 简称为汇编。 汇编程序:它是计算机的系统软件之一, 汇编程序:它是计算机的系统软件之一, 用于将汇编语言源程序翻译成目标程序。 用于将汇编语言源程序翻译成目标程序。
信息表示方法: 信息表示方法 • 二进制(B) 二进制( ) • 十进制(D或无字尾) 十进制( 或无字尾 或无字尾) • ASCII码(‘ ’) 码 • • 如:MOV A,#0A4H • 4、注释段 、 • 为了便于阅读和交流,对程序进行注释。 为了便于阅读和交流,对程序进行注释。 汇编时对注释部分不予理会。 汇编时对注释部分不予理会。 十六进制( ) 十六进制(H) PC现行值($) 现行值( ) 现行值 指令标号等。 指令标号等。
4.1.2 汇编语言的语句结构
1.汇编语言的指令类型 . MCS-51单片机汇编语言 , 包含两类不同 单片机汇编语言, 单片机汇编语言 性质的指令。 性质的指令。 (1)基本指令:即指令系统中的指令。它们都 )基本指令:即指令系统中的指令。 是机器能够执行的指令, 是机器能够执行的指令 , 每一条指令都有对 应的机器码。 应的机器码。 (2)伪指令:汇编时用于控制汇编的指令。它 )伪指令:汇编时用于控制汇编的指令。 们都是机器不执行的指令,无机器码。 们都是机器不执行的指令,无机器码。