最新汇编语言程序设计课件3

合集下载

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

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

BIGE _THING DD ?;定义一个双字
+1 43H
BIG _ THING
56H
变量就代表低字节的 单元地址
2020/12/10
思考: MOV THING,13 的操作数寻址方式
14
定义数据表:
POWERS DB 1,2,4,8,16
ALL DB 0,0,0,0
ALL DB 4DUP(0)
类型 PTR 表达式 TW DW 23 MOV AL,BYTE PTR TW THIS:类型在THIS中指定,段地址和段内偏移量就是汇 编时的当前值。 EQU THIS 类型 MYDATA SEGMENT BB EQU THIS WORD BUFF DB 100 DUP(0) MYDATA ENDS
3.标号:某条指令所存放存储单元的符号地址,它 是转移指令或调用指令的目标操作数,属性 包 括 段值、偏移量和类型(NEAR,FAR)。
2020/12/10

NEAR—转移指令或调用指令与此标号所指的语句 或过程在同一段内,所以只需要改变IP。
FAR—转移指令或调用指令与此标号所指的语句 或过程不在同一段内,所以不但需要改变IP, 还要改变CS。
2020/12/10
11
3.3指示性语句
符号定义语句 数据定义语句 段定义语句 过程定义语句 结束语句
2020/12/10
12
3.3.1符号定义语句
1. 等值语句 EQU
符号名 EQU 表达式或常量或符号名
COUNT EQU CX
EQU语句在未解除前,不能重新定义
2. 等号语句 = 能对符号进行再定义。
第3章 汇编语言程序设计
3.1汇编语言的格式
3.2语句行的构成

汇编语言程序设计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 ..

第三章汇编语言程序设计wyPPT课件

第三章汇编语言程序设计wyPPT课件

格式: 【标号:】 DS 表达式
如:SUM: DS 20 ;从标号SUM代表的地址开始,
保留连续的20个字节单元。
2020/9/21
12
§3.5 基本程序设计方法
2020/9/21
2
2、 汇编语言 为了容易理解和记忆计算机指令,人们用一些英文单词及
数字作为助记符来描述每一条指令的功能。用助记符描述的指 令系统,被称为机器的汇编语言系统,简称汇编语言。
用汇编语言的每条指令意义清晰,编写、阅读和修改都很 。汇编指令和机器语言指令是一一对应的,即一条可执行的汇 编指令对应着一条机器语言指令,因此汇编语言可直接利用和 发挥机器硬件系统的许多特性,如:寄存器,标志位及一些特 殊指令等,能提高编程的质量和运行速度,且占用内存少。 一般如:系统软件、实时控制系统、智能化仪器、仪表软件等 对时间和存储容量要求较高的程序常用汇编语言书写。
下面介绍几种常用的基本伪指令:
2020/9/21
6
பைடு நூலகம்
1) ORG伪指令 (Origin) 通常用于源程序的开始处,用来规定目标程序的
起始地址 格式:ORG addr16 ;addr16是16位绝对地址, 可用标号或表达式表示。
如:ORG 1000H ;将程序的起始地址定为1000H
2) END伪指令
9) 寄存器,定义好的符号不得重新定义。
10) 格式: 符号地址 DATA 数据地址
11) 如: RES DATA 30H;定义符号RES为内存地 址30H
12) 2020/9/21 P0
PORT0 DATA 80H;定义符号PORT0为SFR中10
7) DB伪指令(Define Byte) 从指定单元开始定义(存储)若干个字节的数据
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MOV BX,AX
;BX←AX器操作数的寻址
当操作数存放在内存中时,寻找操作数归结为 如何确定存储单元的地址
逻辑在地和址,可在段6基4K值B:范偏围移内量寻址。实际寻 址过程中,可能包含不同部分,EA为它 们的由相段加寄存之器构的成内容E给A出的3主个要分确定量该的部不分的同内组容合(EA,)
有效地址是基址寄存器(BX/BP)、变址寄存 器(SI/DI)与一个8位或16位位移量之和:
EA=BX/BP+SI/DI+8/16位位移量
该方式中,BX/BP选一,SI/DI选一 段地址对应BX基址寄存器默认是DS,对应BP
基址寄存器默认是SS;可用段超越前缀改变
7.相对基址变址寻址方式
MOV AX, 06H[BX+SI] ← → MOV AX, DS:[BX+SI+06H] MOV AL,TAB[BX][DI] ← → MOV AL,DS:TABLE[BX][DI]
直接寻址的执行
MOV AX,DS:[2000H]
4. 寄存器间接寻址
有效地址存放在寄存器中,如BX、BP、SI、DI 所使用的寄存器相当于地址指针,当修改其内
容后可指向不同的存储单元 书写时用[]括住寄存器名,以区别于寄存器寻址 若以BX、SI、DI间址,操作数默认在数据段;
若以BP间址,操作数默认在堆栈段;使用段超 越前缀改变段
寄存器相对寻址的功能
寄存器相对寻址的执行
代码段 DS 数据段
操作码 24H 00H
12H 34H 56H 78H 9AH
MOV AL,0024H[SI] EA=24H+(SI)
0024H (SI)
可(S看I)作=0数据起(A始L单)=元12H (SI)=的1偏移(量AL)=34H
(SI)=2 (AL)=56H
MOV BX,VAR ← → MOV BX,DS:VAR ;表示将用符号VAR表示的字单元的内容→ AX ;不声明段则默认为数据段,指明段寄存器则可实现
段跨越
用常数表示的位移量
MOV AX,DS:[2000H] ;表示将数据段偏移2000H字节的字单元的内容→ AX
直接寻址的功能
MOV AX,DS:[2000H]
立即数寻址的执行
2. 寄存器寻址
操作数存放在CPU的内部寄存器reg中,可 以是:
8位寄存器:
AH、AL、BH、BL、CH、CL、DH、DL
16位寄存器: AX、BX、CX、DX、SI、DI、BP、SP
4个段寄存器seg:
CS、DS、SS、ES
MOV AX,1234H ;AX←1234H
量之和,寄存器可以是BX、BP或SI、DI EA = BX/BP 或 SI/DI +0/8/16位位移量
基址寻址 变址寻址
段地址对应BX/SI/DI寄存器默认是DS,对应BP 寄存器默认是SS;可用段超越前缀改变
该方式不仅可以修改指针,还可以修改位移量, 对数组操作十分方便
5.寄存器相对寻址方式
数(S组I)内=3某元素(A距L数)=组78H (S起I)始=4单元(的A偏L)移=9AH
通过修改SI可遍历整个数组
6.基址变址寻址方式
有效地址由基址寄存器(BX或BP)的内 容加上变址寄存器(SI或DI)的内容构成:
EA=BX/BP+SI/DI
段地址对应BX基址寄存器默认是DS,对 应BP基址寄存器默认是SS;可用段超越 前缀改变
汇编语言程序设计课件3
基本概念—指令系统
每一种计算机都有一组指令集供用户 使用,这组指令集称为该计算机的指令系 统。指令集中的每条指令在汇编语言中都 是用助记符来表示的。
立即数寻址指令
MOV AL,05H ;AL←05H MOV AX,0102H ;AX←0102H
立即数寻址的功能
MOV AX,10H[SI]
← → MOV AX,DS:10H[SI]
MOV AX,ARRAY[BX] ← → MOV AX,DS:ARRAY[BX]
MOV TABLE[DI],AL ← → MOV DS:TABLE[DI],AL
MOV TABZ[BP],BL ← → MOV SS:TABZ[BP],BL
6.基址变址寻址方式
MOV AX,[BX][SI] ← → MOV AX,DS:[BX+SI] MOV AX,[BP][DI] ← → MOV AX,SS:[BP+DI] MOV AX,DS:[BP][DI] ← → MOV AX, DS:[BP+DI]
基址变址寻址的功能
基址变址寻址的执行
7.相对基址变址寻址方式
[ ]之间表示相加的关系 [BX][SBIX]、←SI分→别[存B放X数+组S的I脚] 标
二、与转移地址有关的寻址方式
程序代码亦存放在存储器中,如 何控制程序的走向(转移位置的地 址CS:IP)是本部分所涉及的内容, 由于它们与具体的指令相关,他们 的介绍放在指令中讲解。
§ 3.3 80x86的指令系统
物形理成地了址不=(同段的寄寻存址器方)式×。16 + EA
位移量:指令中给出16位数(常数、符号) EA 基地址:有基址寄存器BX或基址指针BP给出
由变址寄存器(SI或DI)给出
3. 直接寻址
有效地址在指令中直接给出
操作数的16位偏移量直接包含在指令中,与操作码 一起放在代码段中
用符号表示的位移量
指令分类
数据传送指令
算术运算指令
功能
逻辑指令 串操作指令
程序转移指令
MOV DWORD[BP][SI],DX ← → MOV SS:DWORD[BP][SI],DX
MOV AX,ARRAY[BX][BP]
×
MOV AX,DA[SI][DI]
×
31A00
3000:1A00
MOV AL,ARRAY[BX][SI]
数据段 DS ARRAY
EA ⊕
BX
二维数组起始单元
SI
MOV AX,[SI] ← → MOV AX, DS:[SI] MOV CL,[BX] ← → MOV CL, DS:[BX] MOV BL,[BP] ← → MOV BL, SS:[BP]
寄存器间接寻址的功能
寄存器间接寻址的执行
5.寄存器相对寻址方式
直接变址寻址,基址寻址,变址寻址 有效地址是寄存器内容与有符号8位或16位位移
相关文档
最新文档