第3章-指令系统(位操作指令)-2

合集下载

第3章80C51的指令系统

第3章80C51的指令系统

另一类直接寻 址是转移目标地 址的寻址。如: LJMP ADDR16
操作数 在50H单元
50H
3AH
E5H 50H
MOV A,50H
RAM
3AH
ACC
ROM
SFR
2021/6/23
15
❖ 定义:将操作数的地址直接存放在指令中,这种 寻址方式称为直接寻址。
❖ 特点:指令中含有操作数的地址。该地址指出了 参与操作的数据所在的字节单元地址或位地址。 计算机执行它们时便可根据直接地址找到所需要 的操作数。
第3章 80C51的指令系统
3.1 指令格式及常用符号
3.2 80C51的寻址方式
3.3 数据传送指令
(29条)
3.4 算数运算指令
(24条)
3.5 逻辑运算与循环类指令(24条)
3.6 控制转移类指令
) 3.7 位操作类指令
(17条 (17条)
2021/6/23
1
❖ 指令:CPU按照人们的意图来完成某种操作的命令。
24
❖ 定义:将程序计数器PC的当前值(取出本条指令后的PC 值)与指令第二个字节给出的偏移量(rel)相加,形成 新的转移目标地址。称为相对寻址方式。
❖ 特点:相对寻址方式是为实现程序的相对转移而设计的, 为相对转移指令所使用,其指令码中含有相对地址偏移量, 能生成浮动代码。
❖ 如: SJMP rel
寻址范围:只能对程序存储器ROM进行寻址,主要用于 查表性质的访问。
2021/6/23
22
注意:累加器A中存放的操作数地址相对基地址的 偏 移 量 的 范 围 为 00H ~ FFH ( 无 符 号 数 ) 。 MCS-51单片机共有以下三条变址寻址指令:

单片机4-2

单片机4-2

A
半字节
RAM
半字节
图3-8 半字节交换操作
1.要用传送类指令访问 要用传送类指令访问MCS-51片外 片外RAM,它的指令操作码助 要用传送类指令访问 片外 它的指令操作码助 记符是 1)MOV ) 2)MOVX 3)MOVC 4) 以上都行 2.PSW=18H时,当前工作寄存器 时 1)0组 ) 组 2)1组 ) 组 3)2组 ) 组 4)3组 ) 组
A 一字节 源操作数 一字节
⑵半字节交换指令 汇编指令格式 操作 XCHD A,@Ri ; (A0~3) ((Ri) 0~3) (A0 间接寻址的单元内容与累加器A中的内容的低 位互换, 将Ri间接寻址的单元内容与累加器 中的内容的低 位互换, 间接寻址的单元内容与累加器 中的内容的低4位互换 位内容不变。 高4位内容不变。该操作只影响标志位 。 位内容不变 该操作只影响标志位P。 这条指令为低字节交换指令。该指令将累加器 的低 位与 的低4位与 这条指令为低字节交换指令。该指令将累加器A的低 R0或R1所指出的片内 所指出的片内RAM单元的低 位数据相交换,各自的 单元的低4位数据相交换 或 所指出的片内 单元的低 位数据相交换, 位不变。 所示。 高4位不变。其操作如图 所示。 位不变 其操作如图3-8所示
A寄存器 寄存器
寄存器间接寻址@R1, 寄存器间接寻址 , R0(外RAM0B~255B) ( )
寄存器间接寻址@DPTR 寄存器间接寻址 (外RAM0B~64KB) )
图3-6 外部数据存储器传送操作
8. 栈操作指令(2条) 栈操作指令( 条 ⑴PUSH(入栈)指令 (入栈) 汇编指令格式 操作 字节 PUSH direct 先(SP)+1→SP 2 后(direct)→(SP) ⑵POP(出栈)指令 (出栈) 汇编指令格式 操作 POP direct 先((sp))→direct (SP)后(SP)-1→(SP)

第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

微机原理与接口技术第3章(指令部分)

微机原理与接口技术第3章(指令部分)
第 3 章 指令系统及汇编语言程序设计
例:编程计算 0+1+2+3+4+ -----10 编程计算
MOV AL,0 , MOV BL,1 , MOV CL,10 NEXT:ADD AL,BL , INC BL DEC CL JNZ NEXT ;CL≠0 转 ≠ HLT
1
3.1 概述 一、指令包含的基本内容
12
(3)相对寻址
例: MOV AX, [SI+100H]
;结果 : 结果 AX (DS×16+SI+100H) ×
例:MOV AL,[BP+DATA] MOV AL, DATA[BP] ; DATA是符号表示的位移量。 表示的位移量 是符号表示的位移量。
结果 : AL (SS×16+BP+DATA) ×
11
(2)间接寻址 例:MOV AX,[BX] , •结果 : AX 结果 (DS×16+BX) ×
...
3000H:0000H : • EA= BX /SI /DI , 物理地址=DS*16+EA 物理地址 • EA= BP 物理地址=SS*16+EA 物理地址 :1234H :50H :1235H :30H
1. 做什么操作? 做什么操作? MOV ,ADD, OR,CMP等助记符 等助记符
2. 操作的数据是什么? ①CPU内的寄存器; 操作的数据是什么? 内的寄存器 内的寄存器; 内存的某一个或几个单元 单元; ②内存的某一个或几个单元; 结果放在那里? 3. 结果放在那里? 立即数。 ③立即数。 端口; 端口 ④I/O端口; 下一条指令在哪里? 4. 下一条指令在哪里? IP←IP+1

第三章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 则内存操作数的物理地址为:

第3章_MCS-51单片机指令系统及汇编语言程序设计2

第3章_MCS-51单片机指令系统及汇编语言程序设计2

3. 汇编语言的语句格式是什么?使用标号有什么限制?注释段起什么作用? 答案: MCS-51汇编语言的语句格式应符合下列结构: 【标号:】 操作码 【操作数】【;注释】 标号位于语句的开始,由以字母开头的字母和数字组成,它代表该语句的地址。 标号与操作码之间要用“:”隔开,标号与“:”之间不能有空格,“:”与操 作码之间可以有空格。 注释在语句的最后,以“;”开始,是说明性的文字,与语句的具体功能无关。 4. MCS-51汇编语言有哪几条常用伪指令?各起什么作用? 答案: ORG:汇编程序起始地址,用来说明其后程序段在存储器中存放的起始地址; EQU:赋值指令,用来给变量标号赋予一个确定的数值; DB:定义数据字节,指令按字节数的形式把数据存放在存储单元中; DW:定义数据字,按字(双字节)的形式把数据存放在存储单元中; DS:定义存储区,从指定的地址单元开始,保留一定数量的存储单元; BIT:位定义,其功能是把位地址赋给字符名称; END:汇编结束,表明汇编语言程序结束。
2.顺序程序
顺序程序是指程序中没有使用转移类指令的程序段,机器执行这 类程序时也只需按照先后顺序依次执行,中间不会有任何分支、循环, 也不需要调用子程序。 例:将一个单字节十六进制数转换成BCD码。 解:算法分析。单字节十六进制数在0~255之间,将其除以100后, 商为百位数;余数除以10,商为十位数,余数为个位数。 设单字节数存放在40H,转换后,百位数存放在R0中,十位数存 放在R1中,个位数存放在R2中,具体程序如下: ORG 0030H MOV A, 40H ;将单字节十六进制数送入A中 MOV B,#64H ;将100送入B中, #64H可直接写成#100 DIV AB MOV R0,A ;百位数送R0,余数在B中 XCH A,B ;余数送入A中 MOV B,#0AH ;将10送入B中, #0AH可直接写成#10 DIV AB ;商为十位数,余数为个位数 MOV R1,A MOV R2,B SJMP $

第3章答案指令系统1-40

第3章答案指令系统1-40

第3章指令系统1,简述下列基本概念:指令,指令系统,机器语言,汇编语言,高级语言。

1、指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言2,什么是计算机的指令和指令系统?2、见第1题。

3,简述89C51汇编指令格式。

3、操作码[目的操作数] [,源操作数]4,简述89C51寻址方式和所能涉及的寻址空间。

5,要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式?5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6,在89C51片内RAM中,已知(30H)=38H, (38H)=40H, (40H)=48H, (48H)=90H, 请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。

6、MOV A,40H ;直接寻址(40H)→AMOV R0,A ;寄存器寻址(A)→R0MOV P1,#0F0H ;立即数寻址0F0→P1MOV @R0,30H ;直接寻址(30H)→(R0)MOV DPTR,#3848H ;立即数寻址3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址(R0 )→P0MOV 18H,#30H ;立即数寻址30H→18HMOV A,@R0 ;寄存器间接寻址((R0)) →AMOV P2,P1 ;直接寻址(P1)→P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:→左边是内容,右边是单元7,对89C51片内RAM的高128字节的地址空间寻址要注意什么7、用直接寻址,位寻址,寄存器寻址8,指出下列指令的本质区别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
每右移一位,右移前的CF送最高位,右移前的最低送CF。 格式:RCL OPD,COUNT
程序设计
• • • • •
20
汇编语言
单击此处编辑母版标题样式
程序设计
• • • • •
单击此处编辑母版文本样式 第二级 第三级 第四级 第五级
21
汇编语言
汇编语言
单击此处编辑母版标题样式
程序设计
• • • • •
单击此处编辑母版文本样式 第二级 第三级 第四级 第五级 辽宁石油化工大学计算机与通信工程学院 主讲:王晓虹
汇编语言程序设计 (第三章)
1
汇编语言
三、位操作指令 程序设计 单击此处编辑母版标题样式
• • • • •
单击此处编辑母版文本样式 第二级 第三级 第四级 第五级
对一个位串,AND可以屏蔽(清0)某些位,OR可以置位(置1)某些位, XOR可以取反某些位,XOR可以检查两个位串是否匹配。
10
汇编语言
单击此处编辑母版标题样式 • ①屏蔽若干位。 (常用指令)
• AND AL,01H;屏蔽AL的D7~D1,保留D0 • 单击此处编辑母版文本样式 • AND AL,0FH;屏蔽AL高4位,保留低4位 • 第二级 1 (常用指令) •②使若干位置 • • OR BL,0F0H;使BL高4位置1,低4位不变 第三级 •③清除CF、OF 或 设置标志 • 第四级 • AND AL,AL (AND AL,0FFH;OR BL,BL;……) • • ;第五级 类似指令没有改变目的操作数,但使CF=OF=0,也 • 可能纯粹以设置其他标志(ZF)为目的。
程序设计
15
汇编语言
单击此处编辑母版标题样式 (3)算术左移指令
格式:SAL OPD,COUNT
程序设计
• • • • •
单击此处编辑母版文本样式 功能:SAL指令与SHL指令的功能完全相同。 第二级 第三级 (4)算术右移指令 第四级 格式:SAR OPD,COUNT 第五级 功能:将目的操作数向右移动COUNT指定的位数,每右移一位,最高
9
汇编语言
单击此处编辑母版标题样式
程序设计
• • • • •
单击此处编辑母版文本样式 AND AX,0 ;AX清0 AND CL,0FH ;屏蔽CL的高4位 第二级 OR BH,00111100B ;将BH的中间4位置位 第三级 XOR BL,0F0H ;将BL高4位变反 第四级 NOT指令执行不影响状态标志,其他逻辑指令执行后将重新设置SF、 ZF、PF的状态,而总使CF=0、OF=0,AF状态不确定。 第五级
3
汇编语言
单击此处编辑母版标题样式 【例】将AL中第3位和第7位清零。
MOV AL,0FFH
程序设计
• • • • •
单击此处编辑母版文本样式 AND AL,77H 第二级 第三级 第四级 第五级
4
汇编语言
(2)逻辑或指令 格式:OR OPD,OPS 功能:将目的操作数与源操作数按位相或,结果送目的操作数。 即:OPD←(OPD)∨(OPS)。 说明: •① 第二级 “或”操作的运算原则是:1∨1=1,0∨1=1,1∨0=1,0∨0=0。 ② OR指令常用于: • 第三级 (a) 使一个操作数中的若干位保持不变,而另外若干位置1的 场合。这时,要保持不变的这些位与“0”相或;而要置1 的这些位与“1”相或。 (b) 某一操作数,自己和自己相“或”,操作数不变,但可以 • 第五级 使进位标志CF清0。
作数的值。 ② TEST指令常用于:在不希望改变原有的操作数的情况下,用来 检测某一位或某几位的条件是否满足。编程时常与条件转移指 令一起使用,可在TEST指令后面加上条件转移指令,来测试操 作数某位是否为1,或者是否为0。
7
汇编语言
单击此处编辑母版标题样式 【例】测试AX中的第12位是否为0,不为0则转L。
2
汇编语言
三、位操作指令 单击此处编辑母版标题样式 8086 提供的位操作指令包括逻辑运算指令和移位指令,这类指令可直接对
程序设计
寄存器或存储器中的位进行操作。 1.逻辑运算指令 • 单击此处编辑母版文本样式 逻辑运算指令包括:AND指令、OR指令、XOR指令、TEST指令和NOT指令, 其中前四种指令是双操作数指令,符合双操作数指令的一般规律,这四条指 • 第二级 令执行后将使 CF和OF位为0,AF位不确定,而SF、ZF和PF位则根据运算结果设 置;NOT指令是单操作数指令,符合单操作数指令的一般规律,它的执行不影 响标志位。 • 第三级 (1)逻辑与指令 • 格式: 第四级 AND OPD,OPS 功能:将目的操作数与源操作数按位相与,结果送目的操作数。 • 第五级 即:OPD←(OPD)∧(OPS)。 说明:① “与”的运算原则是:1∧1=1,0∧1=0,1∧0=0,0∧0=0。 ② AND指令常用于: (a)使一个操作数中的若干位保持不变,而若干位清为0的场合。 ( b )某一操作数,自己和自己相“与”,操作数不变,但可以使进 位标志CF清0。
的一部分位取反,则应使用XOR指令。 【例】逻辑非运算。 MOV AX,878AH ;(AX)=878AH
NOT
AX
;(AX)=7875H
8
汇编语言
- AND指令对一个数据的指定位清0。例如,AND AL,0FH指令就实现将高4 位清0。
单击此处编辑母版标题样式
程序设计
• • • • •
OR 指令常常用来对一些指定位置1。例如,指令OR AL,02实现对累加器中 单击此处编辑母版文本样式 的D1位置1。 第二级 XOR指令常常用在一些程序的开头使某个寄存器清0,以配合初始化工作 的完成。例如,XOR AX,AX,使累加器清0。 第三级 NOT指令常用来将某个数据取成反码,再加上1,便得到补码。 TEST指令一般用来检测指定位是1还是0,而这个指定位往往对应一个物 第四级 理量。 例如,某一个状态寄存器的最低位反映一种状态,为1时,说明状态信号 第五级 满足要求,于是,就可以先将状态寄存器的内容读到AL中,再用TEST AL, 01指令,此后就可以通过对ZF的判断来了解此状态位是否为1。如果ZF= 1,说明结果为0,即最低位为0,条件不满足;如果ZF=0,说明结果不 为0,即最低位不为0,而为1,所以条件满足。
TEST 1000H AX,______
程序设计
• • • • •
单击此处编辑母版文本样式 JNE L 第二级 (5)逻辑非指令 格式:NOT OPD 第三级 功能:将目的操作数各位取反,结果送目的操作数。 第四级 即:OPD←(OPD)。 第五级 说明:若将整个操作数取反,则应使用NOT指令,若只需将操作数
;(BH)=0F4H ;(CL)=2 ;(BH)=0FDH,(CF)=0
程序设计
• • • • • •
18
汇编语言
单击此处编辑母版标题样式
程序设计
• 单击此处编辑母版文本样式 • 第二级 •( 第三级 6)循环右移指令ROR 格式:ROR OPD,COUNT • 第四级 功能:将目的操作数向右循环移位COUNT指定的位数,每右移一位, 右移前的最低送最高位以及CF。 • 第五级
(5)循环左移指令ROL 格式:ROL OPD,COUNT 功能:将目的操作数向左循环移位COUNT指定的位数,每左移一位, 左移前的最高送最低位以及CF。
19
汇编语言
单击此处编辑母版标题样式 (7)带进位的循环左移指令RCL
单击此处编辑母版文本样式 功能:将目的操作数连同CF位一起向左循环移位COUNT指定的位数, 第二级 每左移一位,左移前的CF送最低位,左移前的最高位送CF。 第三级 (8)带进位的循环右移指令RCR 第四级 格式:RCR OPD,COUNT 第五级 功能:将目的操作数连同CF位一起向右循环移位COUNT指定的位数,
程序设计
总结
11
汇编语言
单击此处编辑母版标题样式 • ④求反 NOT AL / NOT WORD PTR[BX+DI]
程序设计
X⊕0=X X⊕1=X •• ⑤对指定位求反 单击此处编辑母版文本样式 XOR AL,0FH;AL高4位不变,低4位求反 •• 第二级 • XOR CL,55H;CL偶数位求反,奇数位不变 • 第三级 •• 第四级 ⑥清除寄存器及CF(常用指令) XOR AX,AX / XOR BX,BX •• 第五级
;的操作数
⑦不改变操作数,测试操作数或操作数的指定位
13
汇编语言
单击此处编辑母版标题样式 2 移位指令
程序设计

移位指令包括算术移位指令、逻辑移位指令和循环移位指 • 单击此处编辑母版文本样式 令,分别进行左移和右移操作。这些指令均有统一的语句格式: 第二级 • •[标号: ]操作符OPD,1或 [标号:]操作符OPD,CL • 第三级 • 其功能为将目的操作数的所有位按操作符规定的方式移动 •1位或按寄存器 第四级 CL规定的次数(0--255)移动,结果送入目的 8位(或16位)的寄存器数据或存储器数 •地址。目的操作数是 第五级 据。
的有效的方法。 如指令XOR AX,AX ;AX清0。
(c) 测试某一操作数是否与另一确定的操作数相等。这种操作在检查地址是 否匹配时是常用的。
6
汇编语言
单击此处编辑母版标题样式 【例】按位加运算。
MOV AL,45H ;(AL)=45H
程序设计
• • • • •
单击此处编辑母版文本样式 ;(AL)=74H XOR AL,31H ;(AL)=? 第二级 (4)测试指令 格式:TEST OPD,OPS 第三级 功能:目的操作数与源操作数按位相与,结果反映在标志位上, 但不送回目的操作数。 即:(OPD)∧(OPS)。 第四级 说明: ① 该指令完成与AND指令相同的操作,但TEST指令不改变目的操 第五级
相关文档
最新文档