第三章3(指令系统2)

合集下载

第3章 C6000指令系统(1-2)

第3章 C6000指令系统(1-2)
一般而言,与乘法相关的指令都在.M单元执行; 需要产生数据存储器地址的指令,要用到.D功 能单元;算术逻辑运算大多在.L和.S单元执行。
Dr. Naim Dahnoun, Bristol University, (c)
Texas Instruments 2002
12
32.2.2 延迟间隙(Delay Slots)
BK1
BK0
R
R,W
Mode select fields
15
14 13
12 11
10 9
87
6
B7 mode B6 mode B5 mode B4 mode A7 mode
5
4
A6 mode
R,W
3
2
A5 mode
1
0
A4 mode
R,W
00:线性寻址(复位后默认值)
各模式 01:循环寻址,使用BK0字段
Dr. Naim Dahnoun, Bristol University, (c)
Texas Instruments 2002
18
3.2.4 寻址方式及Load/Store类指令
一、寻址方式
寻址模式寄存器AMR各个位域的定义
Block size fields
31
26 25
21 20
16
ห้องสมุดไป่ตู้
Reserved
13
3.2.3 指令操作码映射图(Opcode Map)
C6000的每一条指令都是32位,都有自己的代码,详细指 明指令相关内容。
.L unit
31 29 28 27 23 22 18 17
13 12 11
54 3 2 10

第三章 微型计算机的指令系统

第三章  微型计算机的指令系统

reg , reg mem , reg reg , mem
C、从存贮器/寄存器到段寄存器 (mem/reg,segreg)
注:不能往CS中传送数据.
D、从段寄存器到存贮器/寄存器 (segreg,mem/reg)
注:
1,不影响标志 2,不允许两操作数都使用存储器 3,不允许往CS中送数 4,8位传送/16位传送决定于指令中寄存器及立 即数形式 5,凡给SS赋值时,系统会自动禁止中断,等下 条指令执行完后才会恢复
B、例 LEA BX,[BX+SI] 执行前:BX=0400H SI=003CH 执行后:BX= LDS SI,[10H] 执行前:DS=C000H, (C0010H)=0180H (0012H)=2000H 执行后:SI= DS= LES DI,[BX] 执行前:DS=B000H, BX=080AH (B080AH)=05AEH, (B080CH)=4000H 执行后:DI= ES=
0
CF
AH
/
/
/
三、算术运算指令 1、加法指令 加: ADD DST,SRC DST←SRC+DST reg,reg; reg,mem; mem,reg reg,data; mem,data; ac,data 带进位加:ADC DST,SRC (DST)← (SRC)+(DST)+CF reg,reg; reg,mem; mem,reg reg,data; mem,data; ac,data 加1: INC OPR (OPR)←─ (OPR)+1 (reg;mem) 注:INC指令不影响CF标志
2,高字节 4,低字节 2,SP+1 4,SP+1 SP SP
(SP) (SP)

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)

第三章PLC指令系统2

第三章PLC指令系统2
指令盒与字节移位比较,只有名称变为SHL
DW和 SHR DW,其他部分完全相同。最大实际可移位次 数为32。 指令格式: SLD SRD 例: SLD SRD OUT, N (双字左移) OUT, N (双字右移) MD0, 2 LD0, 3
2.
循环左移、循环右移
循环移位特点: 移位数据存储单元的移出端与另一端相连,同时又与 SM1.1 (溢出) 相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存 储单元。 移位次数与移位数据的长度有关,如果移位次数设定值大于移位数据 的位数,则执行循环移位之前,系统先对设定值取以数据长度为底的 模,用小于数据长度的结果作为实际循环移位的次数。如字左移时, 若移位次数设定为36,则先对36取以16为底的模,得到小于16的结果4, 故指令实际循环移位4次。 如果移位操作使数据变为0,则零存储器位(SM1.0)自动置位。 移位指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出)。 使能流输出 ENO 断开的出错条件: SM4.3 (运行时间); 0006 (间接 寻址)。 移位次数N为字节型数据。
循环右移指令:
移位指令 (2)字循环左移和字循环右移指令:RLW,RRW
指令盒与字节循环移位只有名称变为 ROL
W和 ROR W ,其他部分完全相同。使能输入有效时, 把字型输入数据IN循环左移或循环右移N位后,再 将结果输出到 OUT 所指的字存储单元(在语句表 中, IN 与 OUT 使用同一个单元)。实际移位次数 为设定值取以16为底的模所得的结果。 指令格式: RLW OUT, N (字循环左移) RRW OUT, N (字循环右移) 例: RLW MD0, 2 RRW LD0, 3
SHRB EN ENO ENO DAT A S_BIT I0.1 正跳变 I0.2 S_BIT 0 1 0 0 1 0 0 0 1 1 溢出位 1

微机原理第3章-指令系统

微机原理第3章-指令系统

▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB


PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:

plc课件 plc-3 第三章 s7-300plc的编程基础及指令系统

plc课件 plc-3 第三章 s7-300plc的编程基础及指令系统

2021/7/13
19
7、数据块DB
(1)共享数据块(Shared DB)
共享数据块为系统或用户自定义的数据结构(与 C语言中的结构类似),可供所有逻辑块使用。名 称为DBn,n为编号(一般为1~2047,具体可定义 的个数,视CPU型号而定),其属性Shared 。在 DB中可定义各种类型的数据变量,且可对变量赋初 值。支持DB绝对地址访问及变量形式访问。
本地数据
13
二、S7-300系列PLC的寻址(地址分配)
1、基于槽位的寻址
基于槽位的寻址为默认设置。
机架号为0~3,0号机架为CPU机架,其余 为扩展机架。
CPU机架上的槽号为1~11,槽号1放置电源 模块(PS),槽号2放置CPU模块(CPU), 槽号3放置接口模块(IM),槽号4~11放置其 它模块(SM、FM、CP)
依CPU型号,存储器大小为128~2048B不等, 支持位寻址、字节寻址、字寻址和双字寻址。
位 存 储 区 以 M 标 识 , 如 : M0.0 、 MB0 、 MW0、MD0 (字地址为偶数地址0、2、4…, 双字地址为0、4、8…)等。
6、定时、计数器存储区寻址
依CPU型号不同,可有64~256个定时器, 32~256个计数器。定时器标识符为T,计数器 标识符为C。如:T0,C0等。
2021ቤተ መጻሕፍቲ ባይዱ7/13
9
第6位和第7位(CC0、CC1):条件码0和条件 码1。两位结合用于表示算术运算或逻辑运算的结 果与0的大小关系,以及比较指令的执行结果或移 位指令的移出状态。
第8位(BR):二进制结果位。用于表示字操作 的结果是否正确。1—正确,0 — 错误。
3. 地址寄存器(AR1和AR2)

第三章指令系统(可编辑修改word版)

第三章指令系统(可编辑修改word版)

第三章指令系统习题参考答案(三)1、 80C51 系列单片机的指令系统有何特点?答:80c51 的指令系统的特点有:(1)执行时间短。

一个机器周期指令有64 条,2 个时间周期指令有45 条,而4 个机器周期指令仅有2 条(即乘法和除法指令);(2)指令编码字节少。

单字节的指令有49 条,双字节的指令有45 条,三字节的指令仅有17 条;(3)位操作指令丰富。

这是80c51 单片机面向控制特点的重要保证。

2、 80C51 单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何?答:(1)寄存器寻址。

对应的寄存器有:·工作寄存器 R0~R7·累加器 A·寄存器 B·数据指针 DPTR(2)直接寻址。

对应的存储空间有:·片内 RAM 低 128 字节(以地址形式表示)·SFR(以地址形式或 SFR 符号形式表示,但符号将转换为相应的SFR 地址)(3)寄存器间接寻址。

对应的空间有:·片内 RAM(采用@R0,@R1 或 SP);·片外 RAM(采用@R0,@R1 或@DPTR)(4)变址寻址。

对应的空间有:·ROM 空间(采用@A+DPTR,@A+PC)(5)相对寻址。

·ROM 空间(采用 JC rel)(6)位寻址。

·片内 RAM 的 20H~2FH 单元的 128 可寻址位·SFR 的可寻址位3、访问特殊功寄存器SFR 可以采用哪些寻址方式?答:直接寻址、位寻址4、访问内部RAM 单元可以采用哪些寻址方式?答:寄存器寻址、直接寻址、寄存器间接寻址5、访问外部RAM 单元可以采用哪些寻址方式?答:寄存器间接寻址6、访问外部程序存储器可以采用哪些寻址方式?答:立即寻址、变址寻址、相对寻址7、为什么说布尔处理功能是80C51 单片机的重要特点?答:布尔处理功能是MCS-51 系列单片机的一个重要特征,在物理结构上,MCS-51 单片机有一个布尔(位)处理器,对位地址空间具有丰富的位操作指令。

MIPS系统指令系统超详细

MIPS系统指令系统超详细

2、减法指令 sub rd, rs, rt
#注释
例3.1 把两个C语言赋值语句编译成MIPS汇编指令 下面这段C语言代码包含5个变量a, b, c, d, e: a = b + c; d = a – e;
【解答】 add a, b, c sub d, a, e
# a=b+c #d=a–e
例3.2 把一个复杂的C语言赋值语句编译成MIPS汇 编指令
最后把A[i]和h加起来,放到变量g中: add $s1, $s2, $t0 # g = h + A[i]
四、软硬件接口:溢出(spilling)寄存器
很多程序中变量的数量比寄存器的数量多。因此, 编译器尽量把使用最频繁的变量保持在寄存器中,而把 其余的放在内存中,并用取数和存储指令在寄存器和内 存之间传送数据。将不常用或是以后才用到的变量存入 内存的过程称为溢出(spilling)寄存器。
内存单元用地址编号表示,叫内存地址 ,例:
实际MIPS内存地址:一个字=4字节表示,按字节编址:
字节寻址还影响数组的索引。要得到正确的地址,加到基 址上的偏移量应该乘以4。
三、数据传送指令 : LW与 SW
1、取字指令(Load Word)LW 指令格式: Lw rt, offset(rs) #注释
三、MIPS简介
1、处理器的缩写 ① Million Instruction Per Second,泛指每秒能执行百万条指令的处理器 ② Microprocessor without Interlocking Pipeline Stage,
一种无内锁的流水线微处理器 2、MIPS公司
3.2 计算机硬件的操作指令
① offset为偏移量,是数组首地址到数组中某元素存储位置的 字节偏移量,是一个常数。

003_微机原理-指令系统_2

003_微机原理-指令系统_2

MOV DS, AX
不影响标志位
3.3 指令系统—换码指令
指令书写格式: XLAT
指令执行的操作:
(AL)←((DS:BX+AL)) 查表操作,将BX指定的缓冲区中、AL指定的位移处的一个字节数 据取出赋给AL
指令说明
操作数隐含使用基地址寄存器BX与AL寄存器 换码指令执行前,在主存建立一个字节量表格,内含要转换的目 的码字,表格首地址存放于BX,AL存放相对表格首地址的位移量 换码指令执行后,指令将AL寄存器的内容转换为目标码字,因为 偏移量AL为8位,表格长度≤256字节 不影响标志位
数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令
控制转移指令
处理器控制指令
3.3 指令系统-通用数据传送指令
指令书写格式: MOV dst, src
指令执行的操作:(dst)←(src) 指令说明
操作数类型:立即操作数,寄存器操作数,存储器操作数 立即操作数不能作为目的操作数DST 错误:MOV 30H, AL 两个操作数也不能同时为存储器操作数 错误: MOV [DI+100H], [SI+200H]
dst为目的操作数,操作数类型可为寄存器操 作数或存储器操作数 cnt为移位次数,可为立即数1,或由寄存器 CL指定 SHL、SHR和SAL指令影响标志位CF和OF, cnt=1时,SHL与SAL移位后的最高位和CF不 同,则OF=1;SHR,OF=移位前最高位 SAR指令影响标志位CF、OF、PF、SF、ZF, AF不确定;
; 测试AL中数据的奇、偶
3.3 指令系统-移位指令
逻辑左移指令: SHL dst, cnt 算术左移指令: SAL dst, cnt

计算机原理指令系统

计算机原理指令系统

I/O端口寻址
二. I/O端口寻址
操作数在I/O端口中时,必须通过累加器(AX或AL)实现对端口的访问 1. 直接端口寻址 — 指令直接提供8位端口的地址 例:IN AL, 63H ;AL(63H) 端口寻址时,地址不加[ ],当端口地址可用一个字节来表示时,可使用 直接端口寻址 2. 间接端口寻址 — 由DX寄存器给出16位端口地址
例:MOV AX, [BX+1000H] ;AX BX+1000H 所指向的存储单元 内容
若BX = 2000H,则将数据段(3000H, 3001H)的内容传送给AX
指令也可书写为: MOV AX, 1000H[BX]
7. 基址变址寻址
操作数的有效地址由基址寄存器和变址寄存器的内容相加产生
例:MOV
8086指令介绍
第3.3节 8086指令介绍
8086 CPU共有133条指令,根据操作性质,可分为: ➢ 传输指令 ➢ 算术运算指令 ➢ 逻辑运算和移位指令 ➢ 串操作指令 ➢ 控制转移指令
※ 操作数的符号表示 ✓ DST:目的操作数 ✓ SRC:源操作数 ✓ TARGET:循环、转移和调用指令中的目的操作数
CPU内部操作数寻址
一. 数据寻址方式
1. 立即数寻址
指令中直接给出操作数,指令执行时可以立即得到,此时 把操作数又称作“立即数”
例:MOV AL,5 ;AL5
2. 寄存器寻址
操作数放在CPU内部的寄存器中,在指令中直接指出寄存 器的名字
例:INC CX ;将CX的内容加1
3. 隐含寻址
指令已经默认是对CPU中的某个寄存器操作
PUSH 1000 错误
➢ 操作:DST (SP+1, SP),SP SP+2

51单片机 第三章指令系统

51单片机   第三章指令系统
; DPH ← #56H,DPL ← #78H
10
3.2.5 变址寻址方式
1.
变址寻址方式是以程序计数器PC或数据指针 DPTR作为基址寄存器,以累加器A作为变址寄 存器,它们两者内容之和为有效地址。 寻址范围:
程序存储器空间。
2.
3.
变址寻址方式的指令只有3条:
⑴ MOVC A, @A+DPTR ⑵ MOVC A, @A+PC ⑶ JMP @A+DPTR ; 查表指令 ; 查表指令 ; 散转指令
⑴ 低128个存储单元,8-bit二进制数表示地址。 ⑵ 特殊功能寄存器,用直接地址或称号表示。
2.
3.
例如,指令 MOV A, 30H
; A ← (30H)
8
3.2.3 寄存器间接寻址方式
1.
寄存器间接寻址时,指令中给出的寄存器为地 址指针。 寻址范围:
⑴ 片内和片外RAM 256单元,用R0或R1间接寻址。
34
4.
除法
整数部分
DIV AB
A
被除数
X B
除数

A
B
余数部分
除数为0,商的A和B内容不确定,且(OV)=1 。 标志Cy总是被清0。 例: 若(A)=FBH(251),(B)=12H (18),执行指令 DIV AB 之后,(A)=0DH, (B)=11H,(OV)=0,(Cy)=0。
35
3.3.3 逻辑运算及移位类指令
例: 若(A)=C3H,(R0)=AAH,执行指令 ANL A, R0 之后,(A)=82H。
37

逻辑或 源操作数与直接地址单元内容相或
ORL direct, A #data
源操作数与累加器A的内容相或

第三章基本指令系统

第三章基本指令系统

注:该指令用在多字节加法运算中。
28
例:两个4字节无符号数相加,两数分别在2000H、3000H开 始的内存单元,和放在2000H开始的4个内容单元。
MOV SI, 2000H MOV AX, [SI] MOV DI, 3000H ADD AX, [DI] MOV [SI], AX MOV AX, [SI+2] ADC AX, [DI+2] MOV [SI+2], AX ;SI指向一加数首址 2000H ;AX 8423H ;DI指向另一加数首址 ;AX 8423H+7F00H ;低16位和送[2000H][2001H] ;AX 1000H 3000H ;AX 1000H+2000H+CF ;高16位和送[2002H][2003H]
4)DST、SRC长度要一致。
MOV AL, BX ()
5) DST 不能是立即数 MOV 1000H, AX () 6)DST、SRC 不能同时为存储器寻址 MOV [1000H], [3000H] () 7)MOV指令不破坏源操作数
6
一、通用传送指令——XCHG
2、XCHG 格式:XCHG OPR1, OPR2 ; OPR1 OPR2 功能:两操作数内容相交换。 例: XCHG BL, AL ;两寄存器内容交换(字节交换)
第三章基本指令系统指令系统8086指令系统什么是指令系统cpu指令系统mcs51指令系统指令系统层指令系统的作用微处理器的指令系统指令系统就是指令吗
第三章 8086CPU基本指令系统
3.1 数据传送指令 3.2 算术运算指令
3.3 十进制调整指令
3.4 逻辑运算指令和移位指令 3.5 处理器控制指令
27
一、加法指令——ADC

汇编语言 第三章 实方式指令寻址与指令系统

汇编语言 第三章 实方式指令寻址与指令系统

3.2实方式32位指令寻址

实地址方式32位指令寻址,指在32位的PC机上使
用16位的存储机制,执行32位的非保护方式及非虚拟
方式的指令,达到直接存取32位寄存器和32位存储器
操作数的目的。
3.3实方式指令系统
指令系统是一台机器所有指令的集合。 Pentium系列 机指令系统庞大、类型多样,约有300多条指令,其中包 括基本指令100多条。 具有支持多进程、多任务、虚 拟存储器和多媒体等功能的32位指令。
设DS=4000H, 1、MOV AX,[3020H] 2、VAR DW 86
MOV AX,VAR 3、SI=1800H, MOV AX,[SI] 4、COUNT DW 5,6,7,8 SI=06H MOV AX,COUNT[SI]
3.1.3数据寻址与数据结构的 关系
多种寻址方式能方便、灵活的存取操作数, 支持高级语 言的某些数据结构。
寄存器间接寻址例
例:MOV AX,[BX] 设BX=1200H

MOV


偏移地址

1200H 22H

AH AL 11 22
11H


寄存器间接寻址
由寄存器间接给出操作数的偏移地址;
存放偏移地址的寄存器称为间址寄存器,它们是:BX, BP,SI,DI
操作数的段地址(数据处于哪个段)取决于选择哪一 个间址寄存器:
一、立即寻址
指令中的源操作数是立即数,即源操作数是参加操作 的数据本身
例:MOV AX,1200H
AH AL
MOV
00H

12H



寄存器寻址(Register Addressing)

第三章指令系统总结及课后题

第三章指令系统总结及课后题

字 节 地 址
10、如何访问SFR,可采用那些寻址方式? 答:用直接寻址,位寻址,寄存器寻址 11、如何访问片外RAM,可使用那些寻址方式? 答:只能采用寄存器间接寻址(用MOVX指令) 12、如何访问片内RAM,可使用那些寻址方式? 答:低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器 寻址(R0~R7) 高128字节:直接寻址,位寻址,寄存器寻址 13、如何访问片内外程序存储器,可使用那些寻址方式? 答:采用变址寻址(用MOVC指令) 14、说明十进制调整的原因和方法? 答:压缩BCD码在进行加法运算时应逢十进一,而计算机只将 其当作十六进制数处理,此时得到的结果不正确。用DA A指令 调整(加06H,60H,66H) 15、说明8951布尔机处理机功能? 答:用来进行位操作
;被减数的低8位→A ;减数低8位→R2 ;被减数减去减数,差→A ;低8位结果→30H ;被减数的高8位→A ;减数高8位→R2 ;被减数减去减数,差→A ;高8位结果→30H
带借位减法指令(四条)
汇编指令格式 SUBB A, Rn; 机器码格式 1001 1rrr 操作 (A)-CY -(Rn) → A 注释 将工作寄存器内容与CY及 累加器A中的数相减, “差”存放于累加器A中 SUBB A,direct;1001 0101 direct SUBB A,@Ri; 1001 011i (A) -CY -((Ri)) →A (A) -CY -(direct) →A 将内部RAM单元内容与 CY及累加器A中的数相减, “差”存放于累加器A中 将间接寻址(Ri为R0或R1) 所得的片内RAM单元中内 容与CY及累加器A中的数
高128字节RAM区(SFR区,特殊功能寄存器区)
B
F0
ACC

第3章 指令系统3-2(2)

第3章 指令系统3-2(2)

例3-60 用SAR指令计算-128/8=-16的程序如下: MOV AL,1000 0000B ;AL=-128 MOV CL,03H ;右移位次数3 SAR AL,CL ;右移3次 指令执行后,AL=0F0H=-16。
10
CF
MSB←—----------------LSB
ROL循环左移
CF
MSB—---------------→LSB
SAR算术右移
7
例3-58 MOV AH,06H SAL AH,1 MOV CL,03H SHL DI,CL SAL BYTE PTR[BX],1
CF MSB←—----------------LSB ←0 SHL/SAL逻辑/算术左移
8
CF 0
MSB-—---------------→LSB
SHR逻辑右移
27
表3-11 直接标志条件转移指令 指令助记符
JC JNC JZ/JE JNZ/JNE JS
测试条件
CF=1 CF=0 ZF=1 ZF=0 SF=1 有进位 无进位
指令功能
转移 转移 转移 转移
结果为零/相等 符号为负
结果不为零/不相等 转移
JNS
JO
SF=0
OF=1
符号为正
溢出
转移
转移
JNO
JP/JPE
例3-55 假设AX中存有两个BCD数0508H,要将它 分别转换成ASCII码,结果放回AX。 OR AX,3030H
4
例3-56 若AL中存有某外设端口的状态信息,其中 D1位控制扬声器发声,要求该位在0、1之间来回变 化,其余各位保留不变,实现如下:
XOR AL,0000 0010B
5

第三章指令系统及寻址方式

第三章指令系统及寻址方式

第三章指令系统及寻址方式一、教学内容1.指令格式2.指令寻址方式3.指令系统二、要求掌握指令的书写格式、指令的寻址方式和每一条指令的作用。

三、重点掌握指令的寻址方式和每一条指令的功能作用。

四、难点在于理解和掌握指令的寻址方式,怎样找到操作数所在存储单元的存放地址以及运用指令编程的技巧等。

五、本章分为4讲,每讲2学时。

第一讲指令寻址方式1.指令的书写格式指令有两种书写格式:➢机器指令:由一串二进制数描述➢符号指令:用英文字母缩写词描述。

符号指令的书写格式如下:标号:操作助记符 [目的操作数][,源操作数];注释几点说明:1)标号—表示某一条指令所在存储单元的首址。

标号应由字母打头,后跟字母、数字及特殊字符均可,但不能用关键字。

标号的用法:①标号一般放在子程序(子过程)的第一条指令的开头;②标号一般放在转移指令要转去的目的地的第一条指令的开头。

③标号一般放在其他符号定义的前面。

2)指令助记符(操作助记符):MOV;ADD;SUB;END。

3)操作数—有源操作数和目的操作数,他们之间用“,” 分隔。

操作数也可有可无。

2.数据寻址方式一般在指令中包含有操作码和操作数,怎样找到指令中的操作数和操作数所在的地址,这就是寻址方式。

1)立即寻址操作数直接包含在代码段的指令中。

如: MOV EAX,HMOV BX,6688HMOV AX,1234H➢立即数只能作为源操作数➢立即寻址主要用来给通用寄存器或存储器赋值➢不允许给段寄存器直接赋值2)寄存器寻址操作数在寄存器中。

32位寄存器:EAX、EBX、ECX、EDX、ESP、EBP、 ESI、EDI16位寄存器:AX、BX、CX、DX、SP、BP、SI、DI、CS、DS、SS、ES、FS、GS8 位寄存器:AH、AL、BH、BL、CH、CL、DH、DL如: MOV AX,BXMOV EDI,ESIMOV AL,CL3)存储器寻址操作数在存储器中,其地址由指令以某种方式指出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

不带进位的加法指令举例(一)
分析执行下列指令后累加器A和PSW中各标志的变化。
MOV A, #19H ADD A, #66H 25 A= 0 0 0 1 1 0 0 1 B + 102 data= 0 1 1 0 0 1 1 0 B 127 cy 0 0 1 1 1 1 1 1 1 B
C7’ C6’ 0 0
第三节 MCS-51指令系统及应用举例
MCS-51指令集 功能分五类,共111条指令
《单片机原理与应用技术》教学课件
按指令的功能分类
数据传送类(29条)
算术运算类(24条) 逻辑运算及移位类(24) 位操作类(17条) 控制转移类(17条)
一、数据传送类指令(5种/29条)
内部存储器间传送: (MOV——16条) 外部数据存储器RAM与累加器间传送: (MOVX——4条) 程序存储器ROM向累加器传送: (MOVC——2条) 数据交换:(XCH,XCHD,SWAP——5条) 堆栈操作: (PUSH,POP——2条)
±1
±1
Rn 寄存器
#data 立即数
DPTR
+1
MUL AB DIV AB DA A
算术运算指令示意图
1、加法运算: 2、带进位加法运算: 3、带借位减法运算:
(ADD——4条) (ADDC——4条) (SUBB——4条)
所有的加法(ADD)、带进位加法(ADDC)、带借位减 法(SUBB)运算都是以 A为一个加数或被减数,最终 结果也存进 A ,此三指令对标志位有影响。 加法(ADD)、带进位加法(ADDC) 以及带借位减法 (SUBB)运算中,如果产生了进位或借位,将自动对 PSW中的Cy标志位置“1” 。
C7’ C6’ AC
4、加1指令
格式:
INC INC INC INC INC
A Rn direct @Ri DPTR
;累加器A加一 ;Rn+1→Rn ;内存单元数据加一 ;内存单元数据加一 ;dptr+1→dptr
【注意】: 1)除了第一条对PSW的P有影响外,其余对PSW均 无影响。 2)由于上面的原因,INC指令不能作为一般的数据 算术运算使用,INC主要用于修改数据指针等控制、 循环语句中使用。
41H 40H 31H 30H
X2 data8~15 X2 data0~7 X1 data8~15 X1 data0~7
5、减一指令
格式: DEC A
DEC Rn DEC direct DEC @Ri
;累加器A减一 ;Rn-1→Rn ;内存单元数据减一 ;内存单元数据减一
【注意】: 1)除了第一条对PSW的P有影响外,其余对PSW均 无影响。 2)由于上面的原因,DEC指令一般不作为数据算术 运算使用,它主要用于修改数据指针在控制、循环 语句中使用。
无符号数的乘除运算。用MUL和DIV指令实现A中 的二个BCD数的相乘,并再转换成二位BCD码放 于A中。
38H=3×16+8 分析: 假设(A)=38H 先将两个BCD码分离,如何分离? 除以16,即10H,商和余数即为两个BCD码 乘积之后,如何转为BCD码? 3*8=24
将16进制数除以10,即可得到两个BCD码
《单片机原理与应用技术》教学课件
加、减、乘、除这4种指令能对8位无
符号数进行直接运算 借助溢出标志也能对有符号数的二进 制整数进行加减运算。 借助进位标志,可以实现多字节的加、 减运算,也可对压缩BCD码进行运算
±1
Acc 累加器
ADD ADDC SUBB
@Ri 间接寻址
±1
Direct 直接寻址
【注意】:这里的Cy是指令执行前的Cy; 对PSW的影响同ADD指令。
3、带进位的减法指令
格式: SUBB A, Rn ;A – Rn – Cy →A SUBB A, direct ;A – (direct) – Cy →A SUBB A, @Ri ;A – (Ri) – Cy →A SUBB A, #data ;A – data – Cy →A
1)若两数是无符号数,Cy=0无溢出:90+107=197 2)若两数是有符号数,因OV=1,故有溢出,两个正 数相加后变为负数,很明显结果是不正确的。
2、带进位的加法指令
格式: ADDC A, Rn
ADDC A, direct ADDC A, @Ri ADDC A, #data
;A+Rn+Cy→A ;A+(direct) +Cy→A ;A+(Ri) +Cy→A ;A+data+Cy→A
AC 0
Cy=0 AC=0 OV=0 P=1
1)若两数是无符号数,Cy=0无溢出,25+102=127 2)若两个数是有符号数,则因OV=0无溢出。
对于无符号数相加、减时,若Cy置位
(为1),说明运算结果产生溢出。
对于有符号数相加、减时,当位6和位7
只有一位进位(或借位)时,OV置位, 说明产生溢出(即大于127或小于-128)
《单片机原理与应用技术》教学课件
指令 “DA
A” 完成的操作:
若(A)3~09或AC=1则(A)3~0(A)3~0+6; 若(A)7~49或CY=1则(A)7~4(A)7~4+6; 例:两个十进制数“65”与“58”相加,根据常识, 显然其和应当为“123”。 MOV ADD DA
分析执行下列指令后A和PSW中各标志的变化
CLR C MOV A, #52H
; #52H=01010010B = 82
SUBB A, #0B4H ; #0B4H=10110100B = - 76 a= 0 1 0 1 0 0 1 0 手工计算 82 – -76 data= 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 = 9E 158 1 0 1 【分析】:CPU的计算得-98,答案是错误的。 OV=1,产生了溢出。对于符号数的减法在运算 后一定要检测OV
不带进位的加法指令举例(二)
分析执行下列指令后,A和PSW中各标志的变化。
MOV A,#5AH ADD A,#6BH 90 A= 0 1 0 1 1 0 1 0 B + 107 data=0 1 1 0 1 0 1 1 B 197 0 11000101B
Cy=0 AC=1 OV=1 P=0
C7’ C6’
MOV A,@R0
ADD A,@R1 ;被加数的十位、个位+加数的十
位、个位
DA A
;十进制调整
MOV @R0,A ;送结果
INC R0 INC R1
;R0指向被加数的千位、百位 ;R1指向加数的千位、百位 MOV A,@R0 ADDC A,@R1 ;被加数的千位、百位+加数的千位、百位 DA A ;十进制调整 MOV @R0,A ;送千位、百位的和 INC R1 INC R0 MOV A,@R0 ADDC A,@R1 DA A MOV @R0,A RET
使用减法指令要注意的几个问题
在MCS-51的指令系统中没有不带Cy的减法,
所以在使用SUBB指令前必须使用一条清除Cy 的指令:CLR C。
在进行减法运算中,CY=1表示有借位,CY=0
则无借位。
OV=1表明带符号数相减时,从一个正数减去
一个负数结果为负数,或者从一个负数中减 去一个正数结果为正数的错误情况。
A——1条)
用于两个BCD码之间的相加,这条指令只能跟在 ADD 或 ADDC 之后,该指令影响CY标志位。
BCD码是指“用二进制表达的十进制数”。如: 十进制数20可以用二进制数00010100B表示; 也可以用十六进制数14H表示; 还可以用BCD码 00100000B 或 20H 表示。
4个二进制位就可以表示一位BCD码: 0000~1001 可表示十进制数(BCD数) 0~9; 8个二进制位就可以表示两位压缩的BCD码: 00000000~10011001 表示 00~99。
《单片机原理与应用技术》教学课件
二、算术运算类指令(6种/24条) P47
加法运算: 带进位加法运算: 带借位减法运算: 加1/减1操作: 单字节乘/除法运算: 十进制调整: (ADD——4条) (ADDC——4条) (SUBB——4条) (INC,DEC——9条) (MUL,DIV——2条) (DA A——1条)
三、逻辑运算及移位类指令
(5种/24条)
逻辑与运算:
逻辑或运算:
(ANL——6条)
(ORL——6条)逻辑异或源自算:(XRL——6条)累加器清零/取反:(CLR,CPL——2条)
累加器移位操作: (RL,RLC,RR,RRC—4条)
带进位加法(ADDC):A(A)+(Cy)+(第二操作数)带 借位减法(SUBB):A(A)-(Cy)-(第二操作数)
《单片机原理与应用技术》教学课件
1、不带进位的加法指令
格式:
ADD A, Rn ;A+Rn→A ADD A, direct ;A+(direct)→A ADD A, @Ri ;A+(Ri)→A ADD A, #data ;A+data→A 【注意】: 1)参加运算的数据都应当是8位的,结果也是8位并影 响PSW。 2)根据编程者的需要,8位数据可以是无符号数(0~ 255),也可以是有符号数(-128~+127)。 3)不论数据是有符号数还是无符号数,CPU都将它们 视为有符号数(补码)进行运算并影响PSW。
A,#65H A,#58H A
6 + 5 + 6
5 8 6 1
0110 0101 0101 1000 1011 1101 0110 0110 0010 0011
相关文档
最新文档