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

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系列单片机指令系统及汇编语言程序设计

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

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

▲按给出偏移地址方式的不同,分为以下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的编程基础及指令系统

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版)

第三章指令系统习题参考答案(三)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系统指令系统超详细

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为偏移量,是数组首地址到数组中某元素存储位置的 字节偏移量,是一个常数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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