--汇编语言程序设计PPT课件

合集下载

汇编语言程序设计ppt课件

汇编语言程序设计ppt课件

3.用注释行说明程序,便于阅读和修改调试和修改。
1
9
常用程序结构: 顺序程序、循环程序、分支程序、查表程序、子程
2. 顺序与循环程序设计
❖5.2.1 顺序程序设计(又称简单程序) 既无分支,又无循环,按照顺序执行 可完成一定的基本功能,是编写复杂程序的 基础
10
例1:将一个字节内的两个BCD码拆开并变成ASCII码, 存入两个RAM单元。BCD码放在内RAM的20H, 转换后高半字节放到21H,低字节放22H。
ROM
20H BCDH BCDL
SWAP A ORL A, #30H MOV 21H, A SJMP $
;BCDH数送A的低4位 21H 0011 BCDH ;完成转换 @R0 22H 000101 B0C0D0L0
;存数
END
12
回目录 上页 下页
5.2.2 循环程序
包含多次重复执行的程序段,循环结构使程序紧凑。
11
回目录 上页 下页
程序:
ORG 1000H
MOV R0, #22H ;R0 22H MOV @R0,#0 ; 22H 0 MOV A, 20H ;两个BCD数送A
A
B0C0D01H01 B0BCC0DD0LH0
XCHD A, @R0 ;BCDL数送22H ORL 22H, #30H ;完成转换
表示程序结构和程序功能
美国国家标准化协会ANSI(American National
Standard Institute)设定了一些常用的流程图符号如图所示:
开始
起止框

流程线
输入输出框 判断框
处理框
连接点 图:常用流程图符号
Y
?

第3章-汇编程序设计PPT课件

第3章-汇编程序设计PPT课件

A<=5?
Y
N
(A-5)*2+R2 R2
R2 (41H)
结束
;存运费 M
-
18
3.4.2 多分支程序(散转程序)
有一类分支程序,它根据不同的输入条件或不同的运算 结果,转向不同的处理程序,称转程序的设计
这类程序通常利用JMP @A+DPTR间接转移指令实现转移。 有如下两种设计方法: 1. 查转移地址表:
GH+2 56 78
GH+4 00 08
8
4.保留字节 标号:DS (数值表达式)
作用: 指示在程序存储器中保留以标号为起始地址的若干字 节单元,其单元个数由数值表达式指定。
例如 L1:DS 32 ; 从L1地址开始保留32个存储单元。
5. 等值指令 标号 EQU(数值表达式)
表示EQU两边的量等值,用于为标号或标识符赋值。
例如: X1
EQU 2000H
X2
EQU 0FH

MAIN:
MOV DPTR,#X1 ; DPTR=2000H
ADD A,#X2 ; A=A+0FH
-
9
6. 位定义 标号 BIT [位地址] 作用: 同EQU指令,不过定义的是位操作地址。 例如 AIC BIT P1.1。
7. 汇编结束 END 作用: 指示源程序段结束。
MOV DPL,A
MOV DPH,B
;DPTR为表中地址
CLR A
;A=0
JMP @A+DPTR ;转移
TAB:DW PR0,PR1,PR2,…..,PRn ;转移地址表
END
-
TAB 01 10
TAB+2 02 20 ..

汇编语言程序设计经典课件模版(PPT65张)

汇编语言程序设计经典课件模版(PPT65张)

DA4 DB 5 DUP(0) ; 重复5个0存入DA4开始的存储单元中
2 表达式赋值语句
1)赋值语句 EQU
格式: 符号名 EQU 表达式 ;一个符号名只能定义一次
例:
COUNT EQU 100
; 常数赋给符号名COUNT
DATA EQU COUNT+2
; 表达式赋给符号名DATA
A1
运算结果 改变运算符优先级 下表或间接地址 连接结构与变量 修改变量 位图形 记录/字段位数
运算符优先级
优先级 1 2 3 4 5 6 7 8 9 10
运算符 ( ) , [ ] , < > , • , LENGTN , WIDTH , SIZE , MASK PTR , OFFEST , SEG , TYPE , THIS , CS: , DS: , ES: , SS: HIGH , LOW * , / , MOD , SHL , SHR +,- EQ , NE , LT , LE , GT , GE NOT AND OR , XOR SHORT
段名 ends ;指示段或者结构结束 功能:将一个逻辑段定义成一个整体 规定段所属的段寄存器 assume cs:段名, ds:段名, ss:段名,ES:段名 功能:定义4个逻辑段,指明段和段寄存器的 关系
3 段定义语句
定义类型是对该段起始位置的定义。参数有:
PARA,BYTE,WORD,PAGE
格式2:变量名 助记符 n DUP(操作数,操作数….)
N必须是正整数,表示括号内操作数的重复次数
例如:
DA1 DB 10H, 23H ; 变量DA1装入10H , 23H
DA2 DW ‘OK’
; 字符串‘OK’的ASCII码装入DA2开始的存 储单元中

四章汇编语言程序设计ppt课件

四章汇编语言程序设计ppt课件
指令助记符:MOV,ADD,…. 指示性(伪指令)操作符:DB,DW,SEGMENT,
ENDS,ASSUME,END ,…. 保留字:SEGMENT ENDS OFFSET SIZE DB
DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC ENDP CALL RET END
类别名
CODE、DATA、STACK(同名同类别段连续存放)
第4章 汇编语言程序设计
伪操作命令之三:段定义伪指令
段寄存器说明伪指令ASSUME
ASSUME 段寄存器名:段名[段寄存器名:段名[…..]]
例:
CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN:
……
CODE ENDS ENDS MAIN
;指定第一条要执行的指令标号
注:1、该伪指令用于明确用SEGMENT定义的段的类型, 使编译程序能生成目标代码程序。
2、在源程序中,该伪操作放在可执行程序的前面。 3、该指令没有给段寄存器赋予实际的初值。这项工作要通
过写指令来完成,其中代码段不需要赋值。
+、-、*、/、MOD、SHL、SHR 都可应用于数字运算。 +、- 可以用于表示存储器操作数的地址,或两个存储器
单元(同一段内)的地址偏移量之差。 例:SUM - 2
CYCLE - GO
第4章 汇编语言程序设计
运算符之二:逻辑运算符
AND、OR、XOR、NOT 按位的逻辑运算 例:IN AL,PORT_VAL
DATA2 DB 0C1H,36H,9EH,0D5H,20H;加数
DATA ENDS;数据段结束
CODE SEGMENT;定义代码段

汇编语言程序设计第一章ppt

汇编语言程序设计第一章ppt

有符号数
-128 -- +127
-32768 -- +32767 -2147483648 -+2147483647
ASM YJW
1.2.1 数值数据的表示
➢BCD码
十进制数字 8421 BCD 码 十进制数字 8421 BCD 码
0
0000
5
0101
1
0001
6
0110
2
0010
7
0111
3
0011
ASM YJW
1.1.2 CPU的基本功能
➢访问存储器
int x = 1; int y = 2; void test12( void ) {
y = x * x + 3; return; }
MOV EAX,?x@@3HA MOV ECX,EAX IMUL ECX,EAX ADD ECX,3 MOV ?y@@3HA,ECX RET
(c) 一个双字32个位
ASM YJW
1.2.4 数据的存储
✓以二进制形式表示的数据和代码存放在存储器或者内存中。 ✓内存由一系列基本存储单元线性地组成,每一个基本存储单元有一 个唯一的地址。通常,基本存储单元由8个连续的位构成,可用于存 储一个字节的数据。所以,基本存储单元也被称为字节存储单元。可 以把内存看作为一个很大的一维字符数组,把地址看作为标识数组元 素的下标。
ASM YJW
1.2.3 基本数据类型
✓字节 ✓字 ✓双字 ✓四字 ✓十字节 ✓字符串
ASM YJW
1.2.3 基本数据类型
76543210
✓字节 ✓字 ✓双字
(a) 一个字节8个位
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

第4章汇编语言程序设计ppt课件

第4章汇编语言程序设计ppt课件

DATA1
11
22
33 44
DATA2
11
00
22
00
44
33
DATA3
22
0
0
0
22
0
0
0
XX
66
55 44 33
28
数据定义伪指令的几点 说明
伪指令的性质决定所定义变量的类型;
定义字符串必须用DB伪指令
例:
DATA1 DB ‘ABCD’,66H
41H
‘A’
42H
‘B’
43H
‘C’
44H
‘D’
AH
DISN:T D2X1H
功能号OAH 字符串在内存中的存放地址
58
2. 定义字符缓冲区
用户自定义缓冲区格式:
N1 N2
存放字符个数:≤255
存放键入的字符 整个缓冲区
实际键入字符数 最大可键入字符数
0DH
59
输入字符串程序段
DAT1 DB 20,?,20 DUP(?)

LEA DX,DAT1 MOV AH,0AH INT 21H
定义的变量为4字型(8字节)
定义的变量为10字节型
26
数据定义伪指令例
DATA1 DB 11H,22H,33H,44H DATA2 DW 11H,22H,3344H DATA3 DD 11H*2,22H,33445566H
以上变量在内存中的 存放形式
27
数据定义伪指令例_变量在内存中的
分布
DSEG SEGMENT DATA1 DB 1,2, 3 DUP(?) DATA2 DW 1234H
DSEG ENDS ESEG SEGMENT
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

65
BC next ,cond 5/3 CC
sub , cond 5/3 RC cond
5/3
1.条件算符
条件分支转移指令或条件调用、条件返回指令都用 条件来限制分支的转移、调用和返回操作。条件算符分 成两组,每组组内还有分类。
第1组:
EQ NEQ OV LEQ GEQ NOV LT GT
第2组
TC C BIO NTC NC NBIO
例6-1:条件分支转移
RC TC CC sub,BNEQ BC new,AGT,AOV
BC new,AGT BC new,AOV
说明:单条指令中的多个条件是“与”的关 系。如果需要两个条件相“或”,只能分两 句写。
2.循环操作BANZ
在程序设计时,经常需要重复执行某段程 序,利用BANZ(当辅助寄存器不为0时转移) 指令执行循环计数和操作是十分方便的。
当一个15 中断14出现时13 ,IFR12中的相11应的中10 断标志9 位置8 1, 直到CP保U识留 别该中DMA断C5 为D止MAC4。 BXINT1 BRINT1 HPINT INT3
7
TINT1
6
DMAC0
5
BXINT0
4
BRINT0
3
TINT0
2
INT2
1
INT1
0
INT0
中断标志寄存器IFR各位的功能。
选用条件算符时应当注意以下3点:
第1组:组内两类条件可以进行与/或运算,但不能 在组内同一类中选择两个条件算符与/或。当选择两个 条件时,累加器必须是同一个。例如,可以同时选择 AGT和AOV,但不能同时选择AGT和BOV。 第2组:可从组内3类算符中各选一个条件算符与/或, 但不能在组内同一类中选两个条件算符与/或。例如, 可以同时测试TC、C和BIO,但不能同时测试NTC和 TC。 组与组之间的条件只能进行或运算。
位 名称
功能
6 DMAC0 DMA通道0中断标志 5 BXINT0 缓冲串口发送中断0标志 4 BRINT0 缓冲串口接收中断0标志 3 TINT0 定时器中断0标志 2 INT2 外部中断2标志 1 INT1 外部中断1标志 0 INT0 外部中断0标志
在’C54x系列芯片中,IFR中5 ~ 0位对应的中 断源完全相同,分别为外部中断和通信中断标志寄 存位,而15~6位中断源根据芯片的不同,定义的中 断源类型不同。
第六章 汇编语言程序设计
内容提要
6.1 程序流程控制 6.2 堆栈的使用方法 6.3 加减法运算和乘法运算 6.4 重复操作 6.5 数据块传送
内容提要
6.6 双操作数乘法 6.7 长字运算和并行运算 6.8 小数运算 6.9 除法运算 6.10 浮点运算
6.1 程序的控制与转移
中断屏蔽寄存器IMR的结构:
15
14
保留
13
DMAC5
பைடு நூலகம்12
DMAC4
11
BXINT1
10
BRINT1
9
HPINT
8
INT3
7
TINT1
6
DMAC0
5
4
BXINT0 BRINT0
3
TINT0
2
INT2
1
INT1
0
INT0
用户可以对IMR寄存器进行读写操作。
3.中断响应过程(如下图所示) (1)接受中断请求。 (2)响应中断。 (3)执行中断服务程序(ISR)。
有三种情况将清除中断标志:
① ’C54x的复位;
② 相应的IFR标志位置1; ③ 使用相应的中断号响应该中断,
2. 中断屏蔽寄存器IMR
中断屏蔽寄存器是一个存储器映像寄存器,主 要用于控制中断源的屏蔽和开放。
当状态寄存器ST1中的INTM位为0时,全局中断 允许。IMR中的某位置1时,开放相应的中断。由于 RS和NMI都不包含在IMR中,因此IMR对这两个中断 不能进行屏蔽。
TMS320C54x具有丰富的程序控制与转移指令,利用这些 指令可以执行分支转移、循环控制及子程序操作。基本的程序控 制指令如表6-1所示。
表6-1 基本的程序控制指令
分支转移指令 执行周期 子程序调用指令 执行周期 子程序返回指令 执行周期
B
next
4 CALL sub
4 RET
BACC src
6 CALA src
位 名称
功能
15~14 13 12 11 10 9 8 7
保留 DMAC5 DMAC4 BXINT1 BRINT1 HPINT INT3 TINT1
保留位,总是0 DMA通道5中断标志 DMA通道4中断标志 缓冲串口发送中断1标志 缓冲串口接收中断1标志
HPI中断标志 外部中断3标志 定时器中断1标志
接受中断请求
否 是可屏蔽中断吗?
是 否
IN T M = 0 ?


IM R 屏 蔽 位 = 1 ?



响 应 中 断 , 发 出 IA C K 信 号


是硬件中断或
(1)可屏蔽中断 (2)非屏蔽中断
C5402中断源的中断向量及硬件中断优先权
2.中断标志寄存器(IFR)和中断屏蔽寄存器(IMR)
’C54x中断系统设置两个中断寄存器,分别为 中断标志寄存器IFR和中断屏蔽寄存器IMR。
1. 中断标志寄存器IFR ’中C断54标02志中寄断存标器志I寄FR存是器一I个FR存的储结器构映: 像寄存器,
5
例6-2: y xi i 1
SUM: STM STM
loop: ADD BANZ STL
#x,AR3 #4,AR2 *AR3+,A loop,*AR2A,@y
;程序存储器
3.比较操作CMPR
编程时,经常需要数据与数据进行比较,这时利用比较指令 CMPR是很合适的。CMPR指令测试所规定的AR寄存器 (AR1~AR7)与AR0的比较结果。如果所给定的测试条件成立, 则TC位置1,然后,条件分支转移指令就可根据TC位的状态进行 分支转移了。注意,所有比较的数据都是无符号操作数。
STM #5,AR1 STM #10,AR0 loop: ... *AR1+ ... CMPR LT,AR1 BC loop,TC
返回首页
6.2 TMS320C54x中断系统
1.中断类型
C54x支持软件中断和硬件中断。软件中断由程序 指 令 产 生 ( INTR、TRAP 或 RESET)。 硬 件 中 断 由 设备的一个信号产生,包括两种类型:①外部硬件中 断由外部中断口的信号触发;②内部硬件中断由片内 外设的信号触发。无论是硬件中断还是软件中断,都 属于以下两种类型:
相关文档
最新文档