单片机课件第4章
合集下载
单片机讲稿第四章精品PPT课件

振荡器脉冲
机器周期脉冲 Tcy
光源
光接
收器
定时器/计数器有四种工作方式,由工作方式控制寄存器 TMOD和控制寄存器TCON设定。
(1)工作方式控制寄存器 TMOD
M1 M0 00 01 1 13 位定时器 /计数器(TH 的 8 位和 TL 的低 5 位 ) 16 位定时器/计数器 (TH 的 8 位和 TL 的 8位 ) 自动重装入初值的 8 位定时器/计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作
第四章 单片机的定时器/计数器和中 断系统
4.1 单片机的定时器/计数器
定时器/计数器的结构与应用
MCS - 51单片机的内部结构
计数脉冲输入
时钟源
4K ROM (EPROM)
SFR, 128 字节RAM
定时器/计 数器0、1
CPU
并行I / O 接口 P0 P1 P2 P3
串行接口
中断系 统
定时器/计数器是MCS-51单片机的重要功能模块之一。 在检测、控制及智能仪器等应用中,常用定时器做实时时钟, 实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲, 驱动步进电动机一类的电气机械。计数器主要用于外部事件 计数。
Y P1.0取反 TH0,TL0赋初值
程序流程框图
2、方式 1
T0或T1 构成16位定时器或计数器 ● 如希望T0工作于方式1定时时,TMOD设为如下命令字
000 1 ● 如希望T0工作于方式1计数时,TMOD设为如下命令字
010 1
● 同样在定时器/计数器T0、 T1 定时或计数前,在相应的寄存 器TH0、TL0, TH1、TL1中要赋予初值。
运行。其结构机器如周下期:
机器周期脉冲 Tcy
光源
光接
收器
定时器/计数器有四种工作方式,由工作方式控制寄存器 TMOD和控制寄存器TCON设定。
(1)工作方式控制寄存器 TMOD
M1 M0 00 01 1 13 位定时器 /计数器(TH 的 8 位和 TL 的低 5 位 ) 16 位定时器/计数器 (TH 的 8 位和 TL 的 8位 ) 自动重装入初值的 8 位定时器/计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作
第四章 单片机的定时器/计数器和中 断系统
4.1 单片机的定时器/计数器
定时器/计数器的结构与应用
MCS - 51单片机的内部结构
计数脉冲输入
时钟源
4K ROM (EPROM)
SFR, 128 字节RAM
定时器/计 数器0、1
CPU
并行I / O 接口 P0 P1 P2 P3
串行接口
中断系 统
定时器/计数器是MCS-51单片机的重要功能模块之一。 在检测、控制及智能仪器等应用中,常用定时器做实时时钟, 实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲, 驱动步进电动机一类的电气机械。计数器主要用于外部事件 计数。
Y P1.0取反 TH0,TL0赋初值
程序流程框图
2、方式 1
T0或T1 构成16位定时器或计数器 ● 如希望T0工作于方式1定时时,TMOD设为如下命令字
000 1 ● 如希望T0工作于方式1计数时,TMOD设为如下命令字
010 1
● 同样在定时器/计数器T0、 T1 定时或计数前,在相应的寄存 器TH0、TL0, TH1、TL1中要赋予初值。
运行。其结构机器如周下期:
MCS51单片机原理课件(第四章)

各个中断源在程序存储器中的中断入口地址如下: 中断源 入口地址(ROM中) INT0(外部中断0) 0003H TF0(T0中断) 000BH INT1(外部中断1) 0013H TFl(T1中断) 001BH RI/TI(串行口中断) 0023H
比如对于外部中断1的响应,系统自动产生 的长调用指令为: LCALL 0013H 由于各个中断入口地址相隔甚近,不便于存放各 个较长的中断服务程序,故通常在中断入口地址 开始的二三个单元中,安排一条转移类指令,以 转入到安排在那儿的中断服务程序。 比如对外中断1的响应,我们可以在ROM中地址 为0013H的单元中放入一条长调用指令: LCALL 3000H(转移到用户所编制的中断服务 程序中去
单片机在每个机器周期的S5P2期间,顺序采样每 个中断源,CPU在下一个机器周期S6期间按优先 级顺序查询中断标志,如查询到某个中断标志为 1,将在再下一个机器周期S1期间按优先级进行 中断处理。 中断得到响应后自动清除中断标志,由硬件将程 序计数器PC内容压入堆栈保护,然后将对应的中 断地址装入程序计数器PC,使程序转向中断向量 地址单元中去执行相应的中断服务程序。
8DH 8BH 8AH 89H 88H
IT0和IT1 选择外部中断请求INT0和INT1为跳沿触 发或电平触发方式的控制位 其值为1:下降沿触发 为0:电平触发 IE0和IE1 外部中断INT0和INT1的中断请求标志位 TF0和TF1 51片内定时器/计数器T0和T1的中断请 求标志位。当T0、T1的最高位产生溢出时将向 CPU申请中断。
ORG 中断入口地址
LJMP INT
MAIN: 主程序 INT: 中断程序
中断服务程序的流程
单片机应用课件第4章

操作码和操作数是指令主S体JM。P__short jump短跳转
RET__return 子程序返回
三. 机器语言指令格式
操作码 [操作数1] [操作数2] 有单字节、双字节和三字节指令。
汇编语言指令中操作码和操作数是指令主体,称为
指令可执行部分,指令表中可查出对应指令代码。 举例:
汇编语言:
机器语言:
例:查表法求Y=X2。设X(0≤X≤15)在片内RAM的20H单
元中,要求将查表求Y,存入片内RAM21H单元。
2)指令地址
源程序
ORG 1000H
;程序起始地址
1000H SQU: MOV A,20H ;取X
1002H
ADD A,#3
;修正偏移量
1004H
MOVC A,@A+PC ;查表求Y=X2
MOV A,R0 MOV R6,#32H MOV 40H,#64H
E8H 7E 32H 75 40 64H
11101000 01111110 01110101 00110010 01000000
四. 指令系统中有关符号说明
01100100
4-2 指令寻址方式
4-2-1 操作数类型 位(b)─ 位寻址区中的一位二进制数据 字节(B)─ 8位二进制数据 字(W)─ 16位双字节数据
例: MOV A,@R0 ;A((R0))
设指令执行前 A=20H,R0=40H,地址为40H存储器
单元内容如图所示。执行指令后,
41H 67H
A= 34?H ,R0 = 40?H , (40H)= 34?H R0→ 40H 34H
五.变址间接寻址方式(51特有,只能访问程序存储器) 以16位寄存器(PC或DPTR)的内容作为基址,以累加
RET__return 子程序返回
三. 机器语言指令格式
操作码 [操作数1] [操作数2] 有单字节、双字节和三字节指令。
汇编语言指令中操作码和操作数是指令主体,称为
指令可执行部分,指令表中可查出对应指令代码。 举例:
汇编语言:
机器语言:
例:查表法求Y=X2。设X(0≤X≤15)在片内RAM的20H单
元中,要求将查表求Y,存入片内RAM21H单元。
2)指令地址
源程序
ORG 1000H
;程序起始地址
1000H SQU: MOV A,20H ;取X
1002H
ADD A,#3
;修正偏移量
1004H
MOVC A,@A+PC ;查表求Y=X2
MOV A,R0 MOV R6,#32H MOV 40H,#64H
E8H 7E 32H 75 40 64H
11101000 01111110 01110101 00110010 01000000
四. 指令系统中有关符号说明
01100100
4-2 指令寻址方式
4-2-1 操作数类型 位(b)─ 位寻址区中的一位二进制数据 字节(B)─ 8位二进制数据 字(W)─ 16位双字节数据
例: MOV A,@R0 ;A((R0))
设指令执行前 A=20H,R0=40H,地址为40H存储器
单元内容如图所示。执行指令后,
41H 67H
A= 34?H ,R0 = 40?H , (40H)= 34?H R0→ 40H 34H
五.变址间接寻址方式(51特有,只能访问程序存储器) 以16位寄存器(PC或DPTR)的内容作为基址,以累加
精品课件-单片机原理及应用系统设计-第4章

;
PUSH
DPL
;
保护现场, 将主程序中
; DPTR的低八位放入堆
MOV
DPTR, #TABLE
; 在子程
第四章 单片机程序设计语言
恢复现场,
MOVC A, @A+DPTR
POP
DPL
将主程序中DPTR
; ;
;的低八位从堆栈中弹出
POP 场, 将主程序中DPTR
DPH
; 恢复现
;的高八位从堆栈中弹出
图 4-8 循环程序的典型形式
第四章 单片机程序设计语言
【例 4-4】 冒泡程序。假设有N个数, 它们依次存放 于LIST地址开始的存储区域中, 将N个数比较大小后, 使它 们按照由小到大的顺序排列,
编写该程序的方法: 依次将相邻两个单元的内容作比较, 即第一个数和第二个数比较,第二个数和第三个数比 较, ……, 如果符合从小到大的顺序则不改变它们在内存 中的位置,否则交换它们之间的位置。如此反复比较, 直到 数列排序完成为止。
LJMP MAIN
;
MAIN: MOV A, X
XRL A, Y
; (X)与(Y)进行异或操作
JB ACC.7, NEXT1
; 累加器A的第7位
为1, 两个数
;符号不同, 转移到
第四章 单片机程序设计语言
MOV
CJNE
转移到NEQUAL
CLR
P1.0置0
S
MOV DXCE1COUNTER, #00H
; 将DXCE1COUNTER赋值为0
而如下的注释则给出了额外有用的信息:
JNZ PC Comm_Err
;
第四章 单片机程序设计语言
(2) 注释应与其描述的代码相近, 对单条语句的注释应 放在其上方或右方相邻位置, 不可放在下面, 如放于上方
单片机课件-第四章

数据类型
理解并掌握C语言中的基本数据类型, 如int、char、float等。
控制结构
掌握C语言中的控制结构,如if语句、 switch语句等。
函数
了解和掌握函数的定义、声明和调用。
汇编语言与C语言的混合编程
混合编程的必要性
理解混合编程在单片机开 发中的重要性,如提高开 发效率、降低开发难度等。
混合编程的方法
常用指令集
单片机常用的一些基本指令集包括MOV、 ADD、SUB、INC、DEC、CMP等。
01
ADD指令用于将两个数相加并将结果存储 在目标地址中;
03
02
MOV指令用于将一个数据从一个地址移动到 另一个地址;
04
SUB指令用于从源地址中的值减去目标地 址中的值;
INC和DEC指令分别用于增加和减少目标 地址中的值;
算术运算指令用于实现加、减、乘、除 等算术运算,如ADD、SUB、MUL、 DIV等。
逻辑运算指令用于实现与、或、非等逻 辑运算,如AND、OR、XOR等。
指令格式与寻址方式
01
单片机的指令格式一般包括操作 码和操作数两部分,操作码指定 要执行的操作类型,操作数指定 要操作的数据或数据地址。
02
寻址方式用于确定操作数的有效 地址,不同的寻址方式对应不同 的地址确定方式。
单片机概述
单片机的定义与特点
定义
单片机是一种集成电路芯片,它集成 了中央处理器、存储器、输入输出接 口等计算机的主要部件,形成一个完 整的微型计算机系统。
特点
单片机具有体积小、重量轻、功耗低 、可靠性高、价格便宜等特点,广泛 应用于智能仪表、智能家居、智能机 器人等领域。
单片机的应用领域
单片机原理与应用技术(第2版)电子课件第4章

2、中断申请的撤除 3) 外部中断请求的撤除
外部中断可分为边沿触发型和电平触发型。
对于边沿触发的外部中断或,CPU在响应中断后,由硬件 自动清除其中断标志位IE0或IE1,无需采取其他措施。
对于电平触发的外部中断,其中断请求撤除的方法较为 复杂,只有通过硬件配合相应软件的方式 。
4.2 中断程序设计
2、编程举例 例4.2 用C语言对例4.1重新编程。
解:编程如下:
4.3 定时/计数器
4.3.1 定时/计数器的结构
8051单片机内部有两个 16 位的可编程定时/计数器,称为定时器0 (T0) 和定时器1(T1),可编程选择其用作定时器或计数器,其逻辑结构如图。
例4.1 在图4.3中,P1.4~P1.7接有 4个发光二极管,P1.0~P1.3接有4 个开关,消抖电路用于产生中断请 求信号,消抖电路的开关来回拨动 一次将产生一个下降沿信号,通过 向CPU申请中断,要求:初始发光 二极管全黑,每中断一次,P1.0~ P1.3所接的开关状态反映到发光二 极管上,且要求开关合上时对应发 光二极管亮。
机系统内、外的某种原因,当出现CPU以外的某种情况时,由 服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程 序的执行而转去执行相应的处理程序,待处理程序执行完毕后,
再返回继续执行原来被中断的程序。
2、中断的特点 ◆ 分时操作 ◆ 实时处理 ◆ 故障处理 3、中断系统的功能 ◆ 实现中断响应和中断返回 ◆ 实现优先权排队 ◆ 实现中断嵌套
第4章 中断系统、内部定时/计数器
• 4.1 中断系统 • 4.2 中断程序设计 • 4.3 定时/ • 4.4 定时/计数器的编程举例 • 小结
4.1 中断系统
4.1.1 中断系统概述
单片机第4章课件教材

上面的程序可改成如下形式:
PUSH DPH
;保存DPH
PUSH DPL
;保存DPL
MOV DPTR,#TAB1
MOVC A,@A+DPTR
POP DPL
;恢复DPL
POP DPH
;恢复DPH
RET
TAB1: DB 00H,01H,04H,09H,10H DB 19H,24H,31H,40H,51H
反汇编——分析现成产品的程序,要将二进制的机器 代码语言程序翻译成汇编语言源程序。
4.3 汇编语言实用程序设计
4.3.3 查表程序设计
数据补偿、修正、计算、转换等各种功能,具有程序 简单、执行速度快等优点。
查表就是根据自变量x,在表格中寻找y,使y=f(x)。
执行查表指令时,发出读程序存储器选通脉冲/PSEN。 在MCS-51的指令系统中,给用户提供了两条极为有 用的查表指令:
交叉汇编—汇编后的机器代码是在另一台计算机(这 里是单片机)上运行。
MCS-51单片机的应用程序的完成,应经过三个步骤; (1)在微计算机上,运行编辑程序进行源程序的输入
和编辑; (2)对源程序进行交叉汇编得到机器代码;
(3)通过微计算机的串行口(或并行口)把机器代码 传送到用户样机(或在线仿真器)进行程序的调试 和运行。
器代码 (2)伪指令语句
是为汇编服务的。在汇编时没有机器代码与之对应。
MCS-51的汇编语言的四分段格式如下: 标号字段 操作码字段 操作数字段
注释字段
例4-1 下面是一段汇编语言程序的四分段书写格式
基本语法规则: 1.标号字段 是语句所在地址的标志符号
标号字段 操作码字段 操作数字段 注释字段 START: MOV A,#00H ;0→A MOV R1,#10 ;10→R1 MOV R2,#00000011B ;3→R2 LOOP:ADD A,R2 ;(A)+(R2)→A DJNZ R1,LOOP;R1内容减1不 为零,则循环
PUSH DPH
;保存DPH
PUSH DPL
;保存DPL
MOV DPTR,#TAB1
MOVC A,@A+DPTR
POP DPL
;恢复DPL
POP DPH
;恢复DPH
RET
TAB1: DB 00H,01H,04H,09H,10H DB 19H,24H,31H,40H,51H
反汇编——分析现成产品的程序,要将二进制的机器 代码语言程序翻译成汇编语言源程序。
4.3 汇编语言实用程序设计
4.3.3 查表程序设计
数据补偿、修正、计算、转换等各种功能,具有程序 简单、执行速度快等优点。
查表就是根据自变量x,在表格中寻找y,使y=f(x)。
执行查表指令时,发出读程序存储器选通脉冲/PSEN。 在MCS-51的指令系统中,给用户提供了两条极为有 用的查表指令:
交叉汇编—汇编后的机器代码是在另一台计算机(这 里是单片机)上运行。
MCS-51单片机的应用程序的完成,应经过三个步骤; (1)在微计算机上,运行编辑程序进行源程序的输入
和编辑; (2)对源程序进行交叉汇编得到机器代码;
(3)通过微计算机的串行口(或并行口)把机器代码 传送到用户样机(或在线仿真器)进行程序的调试 和运行。
器代码 (2)伪指令语句
是为汇编服务的。在汇编时没有机器代码与之对应。
MCS-51的汇编语言的四分段格式如下: 标号字段 操作码字段 操作数字段
注释字段
例4-1 下面是一段汇编语言程序的四分段书写格式
基本语法规则: 1.标号字段 是语句所在地址的标志符号
标号字段 操作码字段 操作数字段 注释字段 START: MOV A,#00H ;0→A MOV R1,#10 ;10→R1 MOV R2,#00000011B ;3→R2 LOOP:ADD A,R2 ;(A)+(R2)→A DJNZ R1,LOOP;R1内容减1不 为零,则循环
单片机课件第4章

2. 设计程序
MOV TMOD , #00H;设定T0的工作方式 SETB TR0;启动T0工作 LOOP: MOV TH0 , #0F0H;给定时器T0送初值 MOV TL0 , #0CH LOOP1: JNB TF0 , $;$为当前指令指针地址 CLR TF0 CPL P1.0 SJMP LOOP
4.4.3 方式2的应用
【例4-3】 用定时器T1产生500us的定时。由P1.0 输出周期为1ms的方波(设时钟频率为6MHZ)。 1ms的方波,可用定时器产生500us的定时,每 隔500us改变一次P1.0的电平。
1. 确定计数初值 由于时钟频率为6MHZ,所以,机器周期 为:12/fosc=2µs t=(28-T1初值) 机器周期
由于时钟频率为6MHZ,所以,机器周期 为:12/fosc=2µs t=(213-T0初值) 机器周期 当t=1ms时,(213-T0初值) 2 10-6=1 10-3 解得: T0初值=7692=1111000001100B
高8位11110000B=0F0H赋给TH0, 低5位01100B=0CH赋给TL0。
2. TF1:定时器T1溢出标志位。当定时器T1溢出时, 由硬件自动使TF1置1,并向CPU申请中断。 CPU响应中断后,自动对TF1清零。TF1也可 以用软件查询和清零。
3. TF0:定时器T0溢出标志位。功能与TF1相同。 4. TR0:定时器T0运行控制位。功能与TR1相同。
IE1: 外部中断1请求标志位。 IT1: 外部中断1触发方式控制位。 IE0: 外部中断0请求标志位。 IT0: 外部中断0触发方式控制位。
当t= 500us时,(28-T1初值) 2 10-6=500 10-6
解得: T1初值=06H 06H赋给TL1, 06H同时赋给TH1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[标号:〕操作码[操作数〕 [;注释〕 START:MOV A,#32 H;A←32 H 其中标号和操作码之间用“:”作为分隔符,也可再加上若干 空格。操作码和操作数之间用空格作分隔符。注释之前用“;” 作为分隔符。
下一页 返回
4.1 汇编语言的语句结构
1.标号 标号给出了该语句的符号地址,即对应指令机器代码存储 单元的地址。标号由字母开头,后跟字母或数字。标号的最 大允许长度由汇编程序确定。操作码助记符、寄存器名以及
式:顺序结构、分支结构、循环结构和子程序调用结构。后面 将对这些基本结构分别阐述并举例说明。
上一页 下一页 返回
4.2 汇编语言程序设计
4. 2. 2顺序程序设计
顺序程序又称简单程序,是指一种顺序执行的程序。在这 种程序中,没有分支、循环或子程序。顺序结构程序虽然比 较简单,但也能完成一定的功能,是构成复杂程序的基础。
一起使用,就可以完成多种条件判断,如正负判断、溢出判
断、大小判断等。
上一页 下一页 返回
4.2 汇编语言程序设计
1.利用条件转移指令实现程序分支 「例4. 4]比较两个无符号数的大小 设从外部存储单元ST1起存放两个无符号8位二进制数,要 求比较其大小,将大数存入ST1 +2单元中。
可使人迅速抓住程序的基本线索。如果算法比较简单,这一
步可以省掉,可直接按算法编写程序。如果比较复杂,则需 要进行程序结构的设计。
上一页 下一页 返回
4.2 汇编语言程序设计
程序结构的设计一般采用流程图法。流程图是用规定的图 形符号配合文字说明来表示算法或处理问题的步骤。它具有 直观、易懂的特点,是程序结构设计的有力工具。 传统流程图的符号及说明,如表4 -3所列。
DPTR
C
MOVX A, @ DPTR
SUBB
JNC XCH
A,R2
BIG2 A,R2
;两数比较
;第一数大
上一页 下一页 返回
4.2 汇编语言程序设计
BIG1· INC
DPTR ;存大数
MOVX @DPTR,A SJMP BIG2· MOVX SJMP ST1 EQU END $
第4章 汇编语言程序设计
4.1 汇编语言的语句结构 4.2 汇编语言程序设计 4.3 合程序设计举例
4.1 汇编语言的语句结构
4.1.1汇编语言语句格式
汇编语言源程序由一系列语句组成,一般每个语句占一行。 语句的主体通常是各种指令。语句是由标号、操作码、操作 数和注释这四部分组成。其格式和举例如下:
DATA1·DB
DR
73 H,20 H,30H
‘A’
输出结果,如表4 -2所列。
上一页 下一页 返回
4.1 汇编语言的语句结构
3.定义字伪指令DW (Define Word) 其格式为 [标号:] DW Y1,Y2,…,Yi,…,Yn 其中Y1~Yn均为双字节数。DW伪指令的功能与DB相似,其 区别在于DB是定义字节,而DW是定义字。此伪指令主要用 来定义地址。
4.注释 注释是语句的说明部分,它必须以分号“;”开始。当采用 机器汇编时,计算机对它不作处理。注释可以同源程序的其 他部分一起输出。注释可为一行或几行(每行均以分号开始)。
注释不是每条语句所必需的。但适当的注释使得程序便于阅
读。
上一页 下一页 返回
4.1 汇编语言的语句结构
4. 1. 2伪指令
流程图的绘制有一个由粗到细的过程,需要反复修改,求
得完善。
上一页 下一页 返回
4.2 汇编语言程序设计
4.编写源程序 用汇编语言把流程图所表明的步骤描述出来,实现流程图 中每一框内的要求,从而编制出一个有序的指令流,即汇编 语言源程序。在编程之前,要规划好寄存器和存储器的使用。
对于程序区、数据缓冲区、标志单元等作好统一安排。所编
2.建立数学模型,确定算法
建立数学模型,确定算法就是将解决工程问题转换为数学 求解的方法。由于实际工程问题是较复杂的,因此算法往往
不是唯一的。不同方法在占用存储单元数、计算精度、编程
工作量等方面是有所差别的,这就需要进行比较和选择。
上一页 下一页 返回
4.2 汇编语言程序设计
3.绘制程序流程图,设计程序结构 程序流程框图是解题步骤及其算法进一步具体化的重要环 节,它是设计程序的重要依据,能比较清楚、形象地表达程 序运行的过程,并且直观、清晰地体现了程序的设计思路,
1.汇编起始伪指令ORG( Origin) ORG伪指令总是出现在每段源程序或数据块的开始。它指 明此语句后面的程序或数据块的起始地址。其格式为 ORG nn
其中nn可用绝对地址或标号表示,在汇编时由nn确定此语句
下面第一条指令(或第一个数据)的地址。该段源程序(或数据 块)就连续存放在以后的地址内,直到遇到另一条ORG伪指
若X-Y为负,OV=0,则:X<Y
OV=1,则:X>Y
上一页 下一页 返回
4.2 汇编语言程序设计
「例4. 5〕编制计算符号函数Y = SGN ( X)的程序。 设自变量X已存入标号为DATA的单元,-128≤X≤ +127。 符号函数Y存于FSGN单元中。 由于X是有符号数,其正负由符号位来决定。判别符号位
令为止。
上一页 下一页 返回
4.1 汇编语言的语句结构
例如: ORG START: MOV MOV ADD 始地址是1000 H 。 1000H R0,#50 H A,R4 A,@R0
汇编后目标代码在存储器中存放的结果,如表4-1所列,起
上一页 下一页 返回
4.1 汇编语言的语句结构
4.1 汇编语言的语句结构
例如: ORG STK AA EQU EQU 2000H 50H R1 3000H A,5TK B,AA ;5TK赋值为SOH ;AA赋值后当 R1使用 ;TAB赋值为双字节数3000H
TAB EQU MOV MOV
LCALL TAB
上一页 下一页 返回
伪指令都不能用作标号。在汇编语言中,一旦某条语句被赋
予标号,该标号就可作为其他语句的操作数使用了。
上一页 下一页 返回
4.1 汇编语言的语句结构
以下是一些合法的标号:START , DL0 , SUM , A1, LOOP 等。 以下的字符串不能用作标号:2A, S +M, ADD, EQU。 并不是每一条语句都需要加标号。通常对于转移指令涉及
上一页 下一页 返回
4.1 汇编语言的语句结构
4.赋值伪指令EQU (Equate) 其格式为 [标号]EQU数据或汇编符号 其中的标号为字符名称,其后无冒号,数据可为单、双字节 数。EQU伪指令的功能是将数据值或汇编符号赋值于标号。 注意在一个程序中对于某一标号只能赋值一次。
上一页 下一页 返回
在整个程序的最后。
上一页 返回
4.2 汇编语言程序设计
4. 2. 1汇编语言程序设计的基本方法
当给定一个题目进行程序设计时,一般应按以下几个步骤 进行:分析题目、确定算法、设计程序结构、编写程序、上机 调试。 汇编语言程序设计的一般步骤如下。
下一页 返回
4.2 汇编语言程序设计
1.分析问题,明确任务 分析问题是整个程度设计工作的基点。分析问题就是明确 题目的任务,弄清所给定的原始数据和应得到的结果,以及 对运算精度和速度的要求等。
A , @DPTR ;第二数大,且恢复第二数 BIG1 040H
上一页 下一页 返回
4.2 汇编语言程序设计
上面程序中,用减法指令SUBB来比较两数的大小。由于 这是一条带借位的减法指令,所以在执行该指令前,先要把 进位位清零。用减法指令通过借位(CY)的值来判断两数的大 小,是比较两个无符号数大小的常用方法。用减法指令比较
当汇编程序对于汇编语言源程序进行汇编时,还要求提供 一些有关汇编信息的指令,例如指定程序或数据存放的起始 地址、给一些连续存放的数据确定单元等。但是,这类指令 在汇编时并不产生目标代码,不影响程序的执行,所以称为 伪指令。常用的伪指令有下列几种。
上一页 下一页 返回
4.1 汇编语言的语句结构
3.操作数
操作数是该指令操作所需要的数据。根据操作码的功能, 操作数可能是一项或多于一项。当多于一项时,操作数之间
用逗号分隔。个别指令不需要操作数,则此项空缺。
操作数可以是立即数或其他的寻址方式。立即数必须以数 字开头,若十六进制数以字母开头,则必须在前面加“0” 。
上一页 下一页 返回
4.1 汇编语言的语句结构
AA EQU CC DATA MOV MOV
R1 30H CC, AA
;AA赋值后当作R1使用 ;CC赋值后为8位数30H ;R1的值赋给30H单元
A, #CC +l ;立即数31H赋给累加器A
上一页 下一页 返回
4.1 汇编语言的语句结构
7.汇编结束伪指令END 其格式为 [标号:]END [mm] 其中,mm是程序起始地址,标号和mm不是必需的。END伪 指令是一个结束标志,用来指示汇编语言源程序的结束,进 行机器汇编时到此为止,其后的语句将不被汇编成机器码。 因此,在一个源程序中只允许出现一个END语句,它必须放
2.定义字节伪指令DB ( Define Byle) 其格式为 [标号:]DB X1,X2,…,Xi,…,Xn 其中X1~Xn是单字节数或由EQU伪指令定义的字符,也可以 是用引号括起来的ASCII码。此伪指令的功能是把这组数据 依次存入由该伪指令指定的地址单元中。例如: ORG; 2000H