第4章 基本指令系统与顺序结构程序设计
计算机组成原理第4章指令系统课件

4.2 指令的格式
4.2.1 指令的编码格式
操作码OC
AC1
AC2
(1)把保存操作前原来操作数的地址称为源点地址(SS), 把保存指令执行结果的地址称为终点地址或目的地址(DD)。
(2)将源点与终点操作数进行操作码规定的操作后,将 结果存入终点地址。通常二地址指令又称为双操作数指令。
ADD R0,R1表示将R0寄存器的内容和R1寄存器的内容相加以
5 异或XOR
XOR指令对两个操作数进 行按位异或运算。
4.4 指令的种类
4.4.4 移位、循环类指令
CF
位移指令SAL/SHL操作示意图
CF
SAR操作示意图
CF 0
SHR操作示意图
4.4 指令的种类
4.4.4 移位、循环类指令
不带进位标志的循环左移指令ROL MSB 操作数 LSB
CF
不带进位标志的循环右移指令ROR MSB 操作数 LSB
例如:在IBM-PC指令系统中
MOV
AX,05FFH
4.3 寻址方式
4.3.2 常用的寻址方式
2.直接寻址方式
(1)含义: 是指地址字段直接指明操作数在存储器内的位置的寻址 方法。即形式地址等于有效地址。 (2)优缺点: A、优点:简单,不需要进行加法运算。 B、缺点:地址空间指令地址字段长度的限制。
4.2 指令的格式
4.2.3 指令助记符
通常采用一些符号来代表二进制数据,这些符号即指 令助记符。
指令助记符 ADD SUB MUL DIV
助记符示例
含义
指令助记符
相加
AND
相减
OR
相乘
LOAD
相除
STORE
计算机组成原理(简答题)

计算机组成原理(简单题)第一章概论1、计算机的应用领域:科学计算、数据处理、实时控制、辅助设计、通信和娱乐。
2、计算机的基本功能:存储和处理外部信息,并将处理结果向外界输出。
3、数字计算机的硬件由:运算器、控制器、存储器、输入单元和输出单元。
4、软件可以分成系统软件和应用软件。
其中系统软件包括:操作系统、诊断程序、编译程序、解释程序、汇编程序和网络通信程序。
5、计算机系统按层次进行划分,可以分成,硬件系统、系统软件和应用软件三部分。
6、计算机程序设计语言可以分成:高级语言、汇编语言和机器语言。
第二章数据编码和数据运算1、什么是定点数?它有哪些类型?答:定点数是指小数点位置固定的数据。
定点数的类型有定点整数和定点小数。
2、什么是规格化的浮点数?为什么要对浮点数进行规格化?答:规格化的浮点数是指规定尾数部分用纯小数来表示,而且尾数的绝对值应大于或等于1/R并小于等于1。
在科学计数法中,一个浮点数在计算机中的编码不唯一,这样就给编码带来了很大的麻烦,所有在计算机中要对浮点数进行规格化。
3、什么是逻辑运算?它有哪些类型?答:逻辑运算时指把数据作为一组位串进行按位的运算方式。
基本的逻辑运算有逻辑或运算、逻辑与运算和逻辑非运算。
4、计算机中是如何利用加法器电路进行减法运算的?答:在计算机中可以通过将控制信号M设置为1,利用加法器电路来进行减法运算。
第三章存储系统1、计算机的存储器可以分为哪些类型?答:计算机的存储器分成随机存储器和只读存储器。
2、宽字存储器有什么特点?答:宽字存储器是将存储器的位数扩展到多个字的宽度,访问存储器时可以同时对对个字进行访问,从而提高数据访问的吞吐量。
3、多体交叉存储器有什么特点?答:多体交叉存储器是由对个相互独立的存储体构成。
每个存储器是一个独立操作的单位,有自己的操作控制电路和存放地址的寄存器,可以分别进行数据读写操作,各个存储体的读写过程重叠进行。
4、什么是相联存储器?它有什么特点?答:相联存储器是一种按内容访问的存储器。
第4章 指令系统

3. 规整性
规整性包括指令系统的对称性,匀齐性,指令 格式和数据格式的一致性.对称性是指:在指 令系统中所有的寄存器和存储器单元都可同等 对待,所有的指令都可使用各种寻址方式.匀 齐性是指:一种操作性质的指令可以支持各种 数据类型.
4.兼容性 兼容性
系列机各机种之间具有相同的基本结构和共 同的基本指令集,因而指令系统是兼容的,即 各机种上基本软件可以通用.但由于不同机种 推出的时间不同,只能做到"向上兼容" .
目前在指令操作码设计上主要采用以下两 种编码方式 1. 固定长度操作码 操作码的长度是固定的,且集中放在 指令字的一个字段中,指令的其余部分全 部用于地址码.例如IBM370机和VAX-11系 列机,操作码的长度均为8位,可表示256 种不同的操作. 2. 可变长度操作码
4.2.2 地址码
地址码用于指定操作数和存放运算结果的地址, 通常称为操作数.操作数可以是一个直接的数或者 是一个数据所在的地址,它以空格与操作码分开.
例如: MOV AX,[SI]
假如用户用高级语言编程,根本不用 考虑寻址方式,因为这是编译程序的事,但 若用汇编语言编程,则应对它有确切的了解, 才能编出正确而又高效的程序.此时应认真 阅读指令系统的说明书,因为不同计算机采 用的寻址方式是不同的,即使是同一种寻址 方式,在不同的计算机中也有不同的表达方 式或含义. 思考:设计指令系统时,数据的寻址方式 越多越好吗?为什么?
4.直接寻址 指令中的形式地址A就是操作数的真实 地址EA,这种寻址方式称为直接寻址方式, 又称为绝对寻址方式.如图5-3所示.
OP 寻址特征 A 主存 A 操作数
图5-3 直接寻址方式
例如: MOV AL,[0080H] MOV AX,[1000H]
《计算机组成原理》教程第4章指令系统

4
二 指令的格式
即指令字用二进制代码表示的结构形式
包括 操作码:操作的性质 操作码 地址码:操作数(operand)的存储位置,即参加操作的 operand , 地址码 数据的地址和结果数的地址
操作码域(op) 地址码域(addr)
5
1.操作码 操作码
指令的操作码表示该指令应进行什么性质的操作。 组成操作码字段的位数一般取决于计算机指令系统的 规模。 固定长度操作码:便于译码,扩展性差 . 可变长度操作码:能缩短指令平均长度 操作码的的位数决定了所能表示的操作数,n位操 作码最多表示2n种操作
(2). 堆栈工作过程 .
(一)进栈操作 ① 建立堆栈,由指令把栈顶地址送入SP,指针 指向栈顶。 ② 进栈:(A)→Msp, (sp)-1→SP ;Msp:存储 器的栈顶单元 (二)出栈操作 (SP)+1→SP, (Msp)→A
22
五.指令类型
一个较完善的指令系统应当包括: 数据传送类指令: 例)move、load、store等 算术运算类指令: 例)add、sub、mult、div、comp等 移位操作类指令: 例) shl,shr,srl,srr 逻辑运算类指令: 例)and、or、xor、not等 程序控制类指令: 例)jump、branch、jsr、ret、int等 输入输出指令: 例)in、out等 字符串类指令: 例)如alpha中cmpbge、inswh、extbl等 系统控制类指令: 例)push、pop、test等
18
10) *段寻址方式 段寻址方式 Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。 由16位段寄存器和16位偏移量产生20位物理地址 11)*自动变址寻址 自动变址寻址 指在变址方式中,每经过一次变址运算时,都自动改变变址寄存 器的内容,以后在PDP-11中详讲.
第4章 指令系统

存取。
二、对指令系统性能的要求三
4、兼容性:
系列机各机种之间具有相同的基本结 构和共同的基本指令集,因而指令系统是 兼容的,即各机种上基本软件可以通用。但 由于不同机种推出的时间不同,在结构和性 能上有差异,做到所有软件都完全兼容是不 可能的,只能做到“向上兼容”,即低档机 上运行的软件可以在高档机上运行。
a、CISC:70年代后,大多数计算机的指 令系统多达几百条。我们称这些计算机 为复杂指令系统计算机(CISC)。
b、RISC:但是如此庞大的指令系统难以 保证正确性,不易调试维护,造成硬件 资源浪费。为此人们又提出了便于LSI技 术实现的精简指令系统计算机(RISC) 返回
二、对指令系统性能的要求一
4.4、指令和数据的寻址方式
一、指令的寻址方式 二、操作数寻址方式
三、寻址方式举例
一、指令的寻址方式一
1、寻址方式:形成操作数有效地址或指令 有效(偏移)地址的方式。 2、寻址方式分为两类,既指令寻址方式和 数据寻址方式。 3、指令的寻址方式有两种,一种是顺序寻 址方式,另一 种是跳跃寻址方式。 4、操作数或指令在存储器中的地址:某个 操作数或某条指令存放在某个存储单元 时,其存储单元的编号就是地址。请看 图示
答案:
退 出 上一页 下一页 上一节 下一节 返回节目录
例三答案:
三、低级语言与硬件结构的关系
高级语言 低级语言
Visual c++、foxpro、java
与软件结构和指令系统无关 编写的程序可在不同机器上 运行
汇编语言、二进制语言
与机器、指令系统密切相关 编写的指令系统不同,不同
机器用不同汇编语言编写程 序,机器唯一可识别的是二
第四章-汇编语言程序的设计

第四章汇编语言程序设计本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。
在介绍之前,我们还是来学习汇编语言的一些基础知识)4.1 汇编语言程序设计概述1、计算机的汇编语言以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。
汇编语言的语句有严格的格式要求)2、汇编语言的语句格式MCS-51汇编语言的语句格式表示如下:[<标号>]: <操作码> [<操作数>]; [<注释>]标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。
)操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
冒号(:)用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间,分割两个以上的操作数分号(;)用于注释之前。
4章PLC的程序设计方法
图4.1.1自锁触点的启、保、停
图4.1.2 置复位的启、保、停
图4.1.3 RS的启、保、停 2
(4)按钮控制启动、保持、停止控制
计数器比较的单 按钮控制
取反主程序加子程序的单按钮控制
3
2.互锁控制 所谓“互锁”是指当一个继电器工作时,另一个继电器不能工 作,避免短路。方法是用互锁继电器的常闭触点分别串联到其它 互锁的继电器线圈控制线路中。
42
43
4.5.2顺序控制设计法中启保停电路的编程 1. 顺序控制设计中使用启-保-停电路的编程方法 顺序控制设计法中启保停电路的编程,可采用以下步骤
1)根据要求设计顺序功能图(即流程图)。 2)根据顺序功能图写布尔表达式。 3)根据布尔表达式画出梯形图。 启-保-停电路编程的布尔表达式规律:当前步步名对应的继电器
23
24
T37(时段1 T38(时段2 T39(时段3 T40(时段4 T41(时段5 T42(时段6
)
)
)
)
)
)
Q0.1灯A
亮
亮
Q0.2灯B
亮
亮
Q0.3灯C
亮
亮
Q0.4灯D
亮
亮
表4.3.2 彩灯工作时段表格形式 逻辑表达式
25
26
2.【项目4.5】电动机循环运行的PLC控制 (1)控制要求 有两台电动机M1和M2,按下起动按钮SB1,M1运转10min后, 停止5min,M2与M1相反,即M1停止时M2运行,M1运行时 M2停止,如此循环往返,直到按下停止按钮SB2,电动机M1 和M2停止运行。
35
2)绿灯常亮的程序设计 能引起绿灯常亮的情况有5种,其状态为
由状态表可得Q0.1(HL2)的逻辑函数为
02 第4章 PLC基本指令及其应用(1-2)
七、 基本逻辑指令举例
例1.简单的报警电路
控制系统中,若设备发生故障,则应及时报警,最常 用的报警方式是报警灯。当故障信号产生时,报警灯 应呈闪烁状态。 梯形图: I/O分配: I0.3 M 1.0 输入: ( R ) 1 报警信号开关S1:I0.0 I0.0 M 1.0 ( S ) 系统复位按钮:I0.3 1 M1.0 SM0.5 输出:故障报警灯:Q0.0 Q 0.0
2
一、 触点指令
10.立即触点指令
立即触点指令采用中断工作方式,将输入口的状态 立即读入PLC,不受扫描周期的影响。只能用于输 入继电器I。
LDI AI OI LDNI ANI ONI
I
/I
表示开始、串联和并联一常开立即触点
表示开始、串联和并联一常闭立即触点
3
二、 输出指令
1.输出指令: =
2.立即输出指令
LAD:
编号
I0.0 IN PT
类型
使能输入端
Tn
TONR ?ms
TON TOF TONR
1ms 10ms 100ms
设定值 1~32767
STL: TONR Tn, PT
时基
22
2.工作过程
① 当输入端(IN)接通时,定时器开始计时,当 输入端IN断开时,定时器保持当前值不变。 ② 当使能输入端IN再次接通时,则定时器当前值 在原保持值基础上再往上加计数。 ③ 当定时器的当前值大于等于设定值(PT)时, 定时器状态位置“1”;但定时器当前值继续增加, 一直增至最大值32767 。 ④ 以后既使输入端再断开,定时器也不会复位, TONR定时器需用复位指令R进行复位,复位后 定时器当前值清零,定时器位为OFF 。 用于对许多间隔的累计定时
第04章 汇编语言程序设计 39页 0.2M PPT版
MOV AL,10100000B OR 00000101B ;(AL)←10100101B
例4-4 关系运算符的应用
MOV AX,5 EQ 101B ;(AX)←0FFFFH
MOV BH,10H GT 16 ;(BH)←0
例4-5 数值返回运算符的应用
K1 DB 30H,31H,32H
K2 DW 4041H,4043H
(4)STACK
(5)MEMORY
(6)AT表达式
4. 类别名
返回
4.2.4 段寻址伪指令
格式:
ASSUME 段寄存器名:段名,段寄存器名:段名,……
例4-15 求从NUM开始的12个无符号字节数的和,结果放在SUM字单元中。
DATA SEGMENT NUM DB 95H,83H,36H,2DH DB 33H,22H,1AH,34H DB 62H,45H,75H,49H SUM DW ?
例4-13
STR1 DB ‘COMPUTER’ ;定义一个字符串,字符串的首地址为STR1 STR2 DW ‘AA’,‘BC’,‘DE’ ;给两个字符组成的字符串分配两个字节存储单元 DATA DW ?,?,? ;为DATA预留6个存储单元
例4-14
DATA1 DB 20 DUP(?) ;为变量DATA1分配20个字节的空间,初值为任意值 DATA2 DW ? ;为变量DATA2分配2个字节的空间,初值为任意值 DATA3 DB 20 DUP(30H) ;为变量DATA3分配20个字节的空间,初值均为30H
K3 DW 20H DUP(0)
K4 DD 50515253H
MOV AL,TYPE K1 ;等效于MOV AL,1
MOV AH,TYPE K2 ;等效于MOV AH,2
第四章程序设计基础
程序设 计基础
4.2 程序设计语言
程序设计语言=计算机语言
程序设计语言:用于书写计算机程序的语言。
计算机语言:计算机所能够识别的语言。
文章 程序 汉语、英语 计算机语言 字、词、语法结构 数据表示、表达式 语句结构 写文章 编程序
4-4
程序设 计基础
4.2 程序设计语言
计算机语言的分类
通用语言、专用语言 系统程序设计语言、科学计算语言 事务处理语言、实时控制语言 结构化语言 模块化语言 面向对象语言 机器语言 依赖于计算机硬件(低级语言) 汇编语言 高级语言→与计算机硬件基本无关
4-6
程序设 计基础
4.2 程序设计语言
[例题]用Intel 8086指令系统来编写机器语言程序,要 求完成 7+8=?
指令序号 机器语言程序 指令功能 1 10110000 把一加数 7 送到累加器 AL 中 00000111 2 00000100 把累加器 AL 中的内容与另一数 00001000 相加,结果仍存放在 AL 中 3 11110100 停止操作
4-30
程序设 计基础
4.4 Raptor控制结构
[例4-4] 求ax2+bx+c=0方程的根,a、b、c由键盘输入。
[解] 阅读教材相关内容,思考下列问题:假如将选择条件 disc<0 改变为 disc>=0,那么,流程图将如何变化?
(学生思考并回答,停留3分钟) [答案] Yes和No互换, 或选择结构两条分支路径的所有语句互换。
运行结果:
4-34
程序设 计基础
4.4 Raptor控制结构
[例4-6]百钱买百鸡问题。在例3-4 的基础上对流程图进行修改,使它 适应Raptor编程环境。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
②寄存器与存储单元之间交换数据。 例:XCHG AL,[SI] 注意: ①不能与段寄存器交换数据; ②存储器与存储器之间也不能交换数据。 指令执行结果不影响状态标志位。
第8页 第8页
汇编语言程序设计
【例】 XCHG AX, DX
第4章 基本指令系统与顺序结构程序设计
指令执行前:AX=1234H, DX=5678H
第4章 基本指令系统与顺序结构程序设计
堆栈段 48 BL
BX
SS
40000H
…..
SP=1FFEH SP=1FFFH SP=2000H
48 32
41FFEH 41FFFH 42000H
第11页 第11页
汇编语言程序设计
【例】 POP AX 指令执行前: SS= 4000H, SP= 1FFEH, AX=1234H, 指令的执行: 首先SP=1FFEH所指的单 元中的内容送AL,SP+1变为 1FFFH ; 而后 将 SP= 1FFFH 所 指 单 元 内容 送 AH , SP+1 变为2000H。结果堆栈指针 SP=2000H,比操作前+2。 AX=5678H。 12 56 AH
第7页 第7页
汇编语言程序设计
第4章 基本指令系统与顺序结构程序设计
XCHG指令
格式:XCHG OPR1,OPR2 功能:完成OPR1操作数与OPR2操作数内容的交换 两个操作数都不允许出现立即数,也不可以同时为存储器操作数, 所以,该指令必须有一个操作数是在寄存器中。因此它只可能在: ①寄存器与寄存器之间交换数据; 例:XCHG EAX,EDX
指令执行后 : AL = 0EAH (34200H)=0EAH。
…..
物理地址:
=DS10H+EA =30000H+4200H=34200H。
BUFFER+BX+SI
EA CF
34200H 34201H
指令执行前 : AL = 0EAH ,(34200H)=0CFH。
第4页 第4页
汇编语言程序设计
第4章 基本指令系统与顺序结构程序设计
本章内容: ●了解指令的基本格式;
●掌握常用的指令;
●掌握顺序结构程序的设计方法。
汇编语言程序设计
第4章 基本指令系统与顺序结构程序设计
本章要求
1.理解汇编语言的基本指令格式;
操作数结构,执行方式,影响的标志位等。 2.掌握顺序结构程序的设计方法,能利用汇编语言基 本指令熟练进行顺序结构程序设计。
第4章 基本指令系统与顺序结构程序设计
堆栈段 34 78 AL
AX
SS
40000H
…..
SP=1FFEH SP=1FFFH SP=2000H
78 56
41FFEH 41FFFH 42000H
第12页 第12页
Байду номын сангаас编语言程序设计
第4章 基本指令系统与顺序结构程序设计
【例】: 分析下列指令执行后,各寄存器的值:
数据 ES 指令执行后 : AL = 78H (43000H)=78H。 40000H
…..
CF 78
BX+SI
43000H 43001H
AL = 78H,
(43000H)=0CFH。
第5页 第5页
汇编语言程序设计
【例】 MOV SI , OFFSET TABLE
第4章 基本指令系统与顺序结构程序设计
MOV
MOV MOV
AX,200H
BX,300H CX,950H
PUSH AX PUSH BX PUSH CX …… 则执行完后,各寄存器的值: ;其间用到AX、BX、CX AX= 950H BX= 200H CX= 300H
POP CX POP AX POP BX POP CX POP BX POP AX
第15页 第15页
汇编语言程序设计
第4章 基本指令系统与顺序结构程序设计
6.其它数据传送指令 XLAT 换码指令 格式:XLAT或XLAT OPR 功能:将AL与BX内容之和为偏移地址的存储单元内容送入AL 其 它 MOVSX 符号扩展指令 例:MOV AL,5 执行情况如下: 数 格式:MOVSX OPR1,OPR2 MOV BX,offsetK5 据 K5 1 传 功能:将OPR2中的数据符号扩展后送至OPR1 XLAT 2 送 MOVZX 零扩展指令 4 指 AL=5 8 格式:MOVZX OPR1,OPR2 令 16 功能:将OPR2中的数据零扩展后送至OPR1 32 说明: 64 BSWAP指令 (1)MOVSX和MOVZX中源操作数长度是目标操作数的一半。 格式:BSWAP reg32 (2)MOVSX将目的操作数的高一半全部以源操作数的符号位填充。 结果为:AL=32 功能:将reg32寄存器第一字节和第四个字节交换,第二字 (3)零扩展指将目的操作数的高一半以0填充。 节和第三字节交换。
数据
30000H
…..
45 23 32000H 32001H
第6页 第6页
汇编语言程序设计
第4章 基本指令系统与顺序结构程序设计
注意事项(语法规则)
1). 立即数不能作为目的操作数,因为它是个数据,而不是存放数据的 存储单元; 2). 除了源操作数可用立即数以外,两个操作数中必须有一个是CPU内 部寄存器; 3). 不允许在两个存储单元之间传送数据(数据串传送指令、串比较指 令除外); 4). 不允许在两个段寄存器之间传送数据; 5). MOV指令中存储器操作数的数据类型,除另一个操作数明显地指明 以外,必须用属性操作符加以说明数据类型; 6).两个操作数的数据类型应该匹配,即16位数据不可以送入8位寄存器 或存储单元中,但8位立即数可以送入16位寄存器或存储单元中(可在数 字前添加00H); 7).寄存器之间的传送也必须满足类型匹配的要求。 注意:MOV指令的执行不影响状态标志位。
指令执行后:AX=5678H, DX=1234H 【例】 XCHG AX, [BP+DI] 若SS=4000H, BP=3000H, DI=0400H 存储单元在堆栈段中的有效地址: EA=BP+DI=3400H
物理地址=40000H+EA=43400H。
指令执行前:AX=2345H, (43400H)=89H , (43401H)=67H。 指令执行后:AX=6789H, (43400H)=45H, (43401H)=23H。
【例】 MOV ES:[BX+SI],AL 源操作数: 寄存器寻址 目的操作数:基址变址寻址 若ES=4000H,BX=2000H SI=1000H 有效地址: EA=BX+SI=3000H 物理地址: =ES10H+EA =40000H+3000H=43000H。 指令执行前 :
第4章 基本指令系统与顺序结构程序设计
格式:POP DST/POPA/POPAD/POPF/POPFD 功能:从堆栈弹出数据
指 令
注意:出栈的顺序与入栈的顺序恰好相反
第10页 第10页
汇编语言程序设计
【例】 PUSH BX 指令执行前: SS=4000H,SP=2000H, BX=3248H, 指令的执行: 首 先 SP←SP - 1 , 即 SP=1FFFH,BH=32H 送 入SP=1FFFH所指的单元中; 而后SP←SP-1,即此时SP =1FFEH,BL=48H送入SP =1FFEH所指单元中。结果 堆栈指针SP=1FFEH,比操 作前少2。 32 BH
第9页 第9页
汇编语言程序设计 2.堆栈操作
第4章 基本指令系统与顺序结构程序设计
特点:堆栈是一个先进后出的数据结构,SS记录其段地址,栈顶用SP 指定。栈顶地址较小(低端),栈底不变。 PUSH指令 格式:PUSH SRC/ PUSHA/ PUSHAD/ PUSHF/ PUSHFD 功能:将源操作数内容压栈,同时自动修改栈顶指针 POP指令
第3页 第3页
汇编语言程序设计
第4章 基本指令系统与顺序结构程序设计
【例】 MOV BUFFER[BX+SI],AL 源操作数: 寄存器寻址 目的操作数:相对基址变址寻址 若DS=3000H,BX=2000H DS 数据 30000H
SI=1200H,BUFFER=1000H
有效地址: EA=BX+SI+BUFFER=4200H
该程序段执行完后,AX=200H,BX=300H,CX=950H。
第13页 第13页
汇编语言程序设计
3.地址传送指令
第4章 基本指令系统与顺序结构程序设计
功能:用来传送操作数的地址。 LEA指令 例:LEA AX,NUMB 格式:LEA REG,SRC 功能:源操作数的有效地址(偏移地址)送指定寄存器 LDS指令 注意:SRC是一个存储单元 例:LDS DI,LIST 格式:LDS REG,SRC 功能:将SRC存储单元存放的4个字节送指定的寄存器REG和 DS,其中(SRC)→REG,(SRC+2)→DS LES/LFS/LGS/LSS指令 格式:同LDS 功能:将存储在SRC中的地址送REG寄存器和相应的段寄存器
指 令 类 型
第14页 第14页
汇编语言程序设计
4.标志位传送指令 LAHF指令 标 志 位 传 送 指 令
第4章 基本指令系统与顺序结构程序设计
格式:LAHF 功能:将标志寄存器的最右8位送AH寄存器 SAHF指令 格式:SAHF 功能:将AH内容送标志寄存器的最右8位
5.输入输出指令 实现CPU和I/O端口之间的通讯。
第17页 第17页
汇编语言程序设计
第4章 基本指令系统与顺序结构程序设计
1.加法指令 ADD 格式:ADD DST,SRC 功能:将源操作数和目标操作数相加,结果送入目标操作数 ADC 例:求NUM和NUM+1单元内字节数据和的程序段。 例: ADD AL,BL 加 格式:ADCMOV DI,OFFSET NUM DST,SRC ADD CL,44 法 功能:将源操作数、目标操作数和CF的值相加送目标操作数 ADD [BX],AL MOV AL,0 指 令 INC 例: ADC AL,AH ADD AL,[NUM] 格式:INCADD AL,[NUM+1] OPR AX,[BX] ADC 功能:将除段寄存器以外任何存储器或存储单元内容加1 XADD 格式:XADD DST,SRC 功能:将目标操作数和源操作数相加,和数放在目标操作数 中,原目标操作数内容送入源操作数 例:XADD BL,DL