第4章 基本指令系统与顺序结构程序设计

合集下载

计算机组成原理第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章 指令系统

第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章指令系统

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章  指令系统
度和数据长度有一定的关系,以方便处理和
存取。
二、对指令系统性能的要求三
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)

13
七、 基本逻辑指令举例
例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-3
程序设 计基础
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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
相关文档
最新文档