2第2章 指令系统
第二章2 指令系统
![第二章2 指令系统](https://img.taocdn.com/s3/m/1fba2d3887c24028915fc347.png)
格式 操作码OP 堆栈指针SP
S =((SP))
堆栈向上生成 栈顶 SP自动减1,再存数。 压栈: -(SP),自减型间址。 先取数,SP再自动加1。 出栈: (SP)+,自增型间址。
SP 0070
M
低
... S ... ...
高
SP既可出现在指令中,也可隐含约定。
2.3.2.2 常见寻址方式
2.3.1.1
指令字长
• 指令字长与主存的编址单位及CPU的机器字长 有一定关系。
• 指令字长位数越多,所能表示的操作信息和地 址信息也就越多,指令的功能越丰富,但所占 空间和时间也越多。
定长指令格式
变长指令格式
便于控制 合理利用存储空间
2.3.1.2
操作码格式
操作码一般在指令格式的前面一个或几个字 节。根据它可以判明该指令的基本类型及相 应的字节数。
程序模块,有效利用存 储空间。
S ...
2.3.2.2 常见寻址方式
相关问题:
寻址方式如何表示? (1)指令中设置专门字段说明寻址方式
例.某机指令的每个地址字段中各设置一个 3位的寻址方式字段。 3位 3位 操作码OP 寻址方式 R 寻址方式 R
目的地址字段
源地址字段
2.3.2.2 常见寻址方式
D3
D4
结果 下条指 地址 令地址
功能:(D1)OP(D2) D3 (D4) 下条指令
2.3.1.3
2)三地址指令 格式:OP D1 D2
操作数 地址
地址结构
D3
结果 地址
(D1)OP(D2) 功能: (PC) + n
D3 PC
用指令计 数器PC指 示指令地 址。
第2章 指令系统与汇编语言基础(2.1--2.4)
![第2章 指令系统与汇编语言基础(2.1--2.4)](https://img.taocdn.com/s3/m/4da6dbd4195f312b3169a5b9.png)
1.Java 程序设计语言的特征
Java 程序设计语言与其他高级语言程序不同的是,它并 不需要编译成能被处理器所执行的机器码。而是被编译成 为一种称为字节码的格式。如图2.1所示: • 这种字节码被输进Java 虚拟机或称为JVM中,由JVM来 解释和执行这种代码。JVM可以是一个硬件芯片,但它本 身通常是一种程序,常常是Web浏览器的一部分。你可以 把字节码当成是JVM的机器码。 • 所谓“虚拟”其本意是“不符合或不一定符合事实的”。 在虚拟系统中,用户(程序员)看不到下一层级东西(见 图1.4)。但如果有需要的话,程序员是可以看到下一层 级虚拟机的东西,但看不到实际机器。
2.2 程序设计语言的级别
人们与计算机交换信息只能通过计算机语言,如果说 今天有各种各样计算机语言的话,归纳起来只有以下三大 类: 1. 机器语言(又称二进制机器语言、二进制数字化语言、 无符号计算机语言等) 2. 汇编语言:属于计算机最低级的符号语言,因为每一 条汇编语言指令(汇编语言伪指令除外)对应一条二进制 机器语言指令(又称机器指令)。具有平台专用性。 3. 高级语言:诸如VC++、Java、SQL和Fortran 之类 的语言都是高级语言,这类语言的特点是几乎每一条语句 都需要用一串的机器指令才能实现。这也可以说是“语句” 与“指令”的区别所在。具有平台无关性 以上三类计算机语言统称为程序设计语言。
问题:什么是数据表示? 什么是数据结构? 两者有何关系? 为什么要学习数据结构?
为什么要学习数据结构呢?
因为计算机(其实是CPU)只能够识别有限 的数据类型,而在自然界中存在着大量的CPU不 能直接识别的数据,因此要学习数据结构。 学习数据结构的目的是学习如何用数据结构 (典型的有:串、数组、向量、图、表、队列、 树等)的方法将原CPU无法直接识别、引用和处 理的数据转换为CPU能直接识别、引用和处理数 据类型,这样计算机才能解决这类问题。
第二章 80868088寻址方式和指令系统
![第二章 80868088寻址方式和指令系统](https://img.taocdn.com/s3/m/b6afad40852458fb770b568c.png)
(5)奇偶标志PF
用于反映运算结果中“1”的个数。如果“1”的个数为偶数,则OF被置1,否则OF被清0。
(6)辅助进位标志AF
在字节操作时,如发生低半字节向高半字节进位或借位;在字操作时,如发生低字节向高字 节进位或借位,则辅助进位标志AF被置1,否则AF被清0。
②状态控制标志
(1)方向标志DF
方向标志决定着串操作指令执行时,有关指针寄存器调整方向。 当DF为1时,串操作指令按减方式改变有关的存储器指针值, 当DF为0时,串操作指令按加方式 改变有关的存储器指针值。
其中:存储单元的物理地址是12345H, 标出的:两个重叠段的段值分别是:1002H和1233H, 在对应段内的偏移分别是2325H和0015H。
采用段值和偏移构成逻辑地址后,段值由段寄存器给出,偏移可由指令指针IP、堆栈指针SP 和其他可作为存储器指针使用的寄存器(SI、DI、BX和BP)给出,偏移还可直接用16位数给 出。
图中指令存放在代码段中,OP表示该指令的操作码部分 再例如: MOV AL,5 则指令执行后,(AL)=05H
MOV BX,3064H 则指令执行后, (BX)=3064H
2、寄存器寻址方式
操作数在CPU内部的寄存器中,指令指定寄存器号。
对于16位操作数数,寄存器可以是:
AX、BX、CX、DX、SI、DI、SP和BP等;
指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段值和偏移自动 形成20位物理址。
3、段寄存器的引用
由于8086/8088CPU有四个段寄存器,可保存四个段值。所以可同时使用四个段值,但这四个 段有所分工。
在取指令的时候,自动引用代码段寄存器CS,再加上由IP所给出的16位偏移,得到要取指令 的物理地址。
计算机系统结构第2章
![计算机系统结构第2章](https://img.taocdn.com/s3/m/5a727bf9541810a6f524ccbff121dd36a32dc4de.png)
计算机系统结构第2章第⼆章指令系统第⼀节指令系统设计概述⼀、指令系统概述1、指令系统的设计、应⽤及实现(1)指令系统的设计*机器指令:计算机硬件实现的运算或操作的命令;第i 种格式:OP i A 1A 2编码⽰例:00110 000~111 000~111功能⽰例:A 1←(A 1)+(A 2)第j 种格式:OP j A 编码⽰例:10110 000~111功能⽰例:A←(A)+1*指令系统设计:定义所有机器指令的格式(含编码)。
*指令系统:所有机器指令的集合;第1种:第2种:…第n 种:OP 1A 1A 2OP 2A OP n A 1A 2…(2)指令系统的应⽤第i种指令应⽤⽰例a:00110 000 001 功能AH←(AH)+(AL)⽰例b:00110 011 000 功能BL←(BL)+(AH)应⽤程序⽰例:从主存地址为2000H开始的100个元素累加求和机器指令格式机器指令程序汇编程序1011wreg data 1011001001100100 CX←1001011100100000000 00100000LP:BX←2000H1011000000000000 AL←0 0000000w mod reg r/m 0000000100000111AL←AL+[BX] 01000reg 01000001 BX←BX+1 11100010 disp 11100010 11111000 LOOP LP*指令系统应⽤:按指令格式要求,根据应⽤需要、编写程序中的指令(即指令格式的实例)。
(3)指令系统的实现指令功能实现步骤—ID 对IR 的OP 译码,⽤输出信号控制某⼀部件⼯作;ID 对IR 的A 译码,⽤输出信号控制相关REG 的读/写;信号有效时间由时序部件及该指令功能实现步骤决定。
指令操作或运算—部件功能实现及数据传递等的组合。
*指令系统实现:按指令格式要求,⽤硬件实现指令功能。
*设计/应⽤实现三者关系:类似C 语⾔设计、⽤C 语⾔编程、C 语⾔编译及执⾏平台!☆指令系统的实质—软件与硬件之间的界⾯(“约定”)!指令译码器ID I OP A 内部总线CPU ID D 功能部件1功能部件n …寄存器1寄存器m…指令寄存器IR :……存储总线MAR/MDR2、指令系统涉及内容(1)指令格式包含信息分析第i种指令格式:OP i A1A2②数据:(A1)=OP i⽀持类型的地址为A1的数据①操作:A1←(A1) OP i(A2) 或A 2←(A2) OP i(A1)硬件⽀持的数据类型(含数据长度)可存放数据部件类型、部件的编址⽅式部件中同⼀数据地址的表⽰⽅式(2)涉及内容*指令集结构:指令集总体框架,如存放部件、寄存器数量;*指令集功能:⽀持操作的类型;*数据表⽰:操作⽀持的数据类型、数据存储格式等。
计算机系统结构 第二章 数据表示与指令系统
![计算机系统结构 第二章 数据表示与指令系统](https://img.taocdn.com/s3/m/736edf3d10661ed9ad51f349.png)
缺点:处理速度慢, 需要花费时间在数的浮 加位加1以及因此产生进 位的时间。
19
4)查表舍入法
其方法是基于存储逻辑思想 ,用ROM 或PLA存放下溢 处理表。
优点:集中了上述各种处理方 法的优点,避免了舍入法所需 的相加和进位传输时间。由于 ROM的读出时间比加法时间短, 所以这种查表的速度比较快。 该方法速度快,平均误差可调 节到趋于0
计算机系统结构
第二章数据表示与指令系统
刘超 中国地质大学计算机学院
第二章 数据表示与指令系统
2.1浮点数数据表示(尾数/基值选择、下溢处理) 2.2高级数据表示(自定义、向量、堆栈) 2.3寻址方式与指令格式优化(寻址/定位/优化) 2.4指令系统的两种风格(CISC和RISC)
3
2.1.2引入数据表示的原则
巨的、范大围、大中,个型数机多上,,运rm算宜速取度大快,;这而样小使、可微表型示机的由数 于可表示数范围不要求太大、速度也不要求太高, 尾 取数 值字小长些较。短如,:所以更注重于可表示精度,宜使rm
PDP-11/ Intel X86等,rm=2; IBM 370,rm=16; Burroughs B6700,rm=8
由于表示产生的误差大小就是数的表示精度。当 总的机器字长确定好之后,结构设计者就应该确 定好浮点数表示中p和m的位数,这主要示根据 数的表示范围和精度来定的。
8
阶码采用二进制p位, 尾在数非采负用阶、rm正进尾制数m、′位规, 格化条件下各种浮点数 特性参量的一般式
10
(1)可表示数的范围 随于p可着大以的rm减r的m少的增。大值,,可为表表示示数相的同范范围围增的大数,,换其句阶话码说的位,对数
51系列单片机指令系统
![51系列单片机指令系统](https://img.taocdn.com/s3/m/8a5cb901b52acfc789ebc999.png)
MOV DPTR,#1000H MOVX A,@DPTR INC DPTR, MOVX @DPTR,A 7、程序存储器向累加器A传送指令 MOVC A,@A+DPTR MOV DPTR,#100H MOV A,R0 MOVC A,@A+DPTR ORG 0100H. DB 0,1,4,9,16,25 8、堆栈操作指令 PUSH direct POP direct 第一条指令称之为入栈指令,就是将direct中的内容 送入堆栈中,第二条指令称之为弹出指令,就是将堆栈 中的内容送回到direct中。
位寻址时,操作数是二进制数的某一位,其位地 址出现在指令中,例如指令 • SETB bit ;(bit) ← l • 51系列单片机可用于位寻址的空间是内部RAM的可 位寻址区和SFR区中的字节地址可以被8整除(即地址以 “0”或“8”结尾)的寄存器所占空间,寻址方式如表 2-2所示。
表2-2 寻址方式一览表
寻 址 方 式
寻 址 范 围
R0-R7 ,DPTR ACC,B,C(CY位)
内部RAM 00H-7FH 特殊功能寄存器 80H-FFH 内部RAM位寻址区 (20H-2FH): 位地址00H-7FH 可寻址的特殊功能寄存器: 位地址 80H-F7H 以数据指针表示操作数 内部RAM 00H-7FH 外部RAM或I/O端口 00H-FFH / 0000H-FFFFH
图2-3 寄存器间接寻址
图2-4 立即寻址
4、立即寻址
•
立即寻址时,指令中直接给出操作数。例如指令 MOV A,#76H ;数据76H送累加器 A。 • 立即数寻址过程如图2-4所示。
5、变址寻址
•
变址寻址时,指定的变址寄存器的内容与指令中 给出的偏移量相加,所得的结果作为操作数的地址。 例如指令MOVC A, @A+DPTR ;((A)+(DPTR))送 A。变址寻址过程如图2-5所示。 不论用DPTR或PC作为基址指针,变址寻址方式都 只适用于51系列单片机的程序存储器,通常用于读取 数据表也就是将程序存储器中的数送入A中。因此也称 为查表指令,常用此指令来查一个已做好在程序存储 器中的表格,这条指令采用变址寻址。
计算机系统结构 第 2 章 指令集结构
![计算机系统结构 第 2 章 指令集结构](https://img.taocdn.com/s3/m/0cc19711c281e53a5802ff98.png)
2.1 指令系统结构的分类
• • • • • • 1. 指令系统分类的准则 ⑴ 在CPU中操作数的存放方法。 ⑵ 在每条指令中,显式指明的操作数个数。 ⑶ 操作数的寻址方式。 ⑷ 指令系统所提供的操作类型。 ⑸ 操作数的类型与大小。
2014-3-8
10
2.指令系统结构的分类
• • • • 按在CPU中操作数的存放方法可分为: ⑴ 堆栈型 ⑵ 累加器型 ⑶ 通用寄存器型
2014-3-8
21
4. 编址单位
• ⑴ 字编址:以访问一次设备所获得的信息量 为单位进行编址。 • ⑵ 字节编址:以字节为单位进行编址。 • ⑶ 位编址:按二进制位编址。
2014-3-8
22
按字节编址时需解决的问题
• ① 多字节数据的存放顺序 • 小端排序:将一个字中的低位字节存放在低地址 单元中。 • 大端排序:将一个字中的高位字节存放在低地址 单元中。 • 小端排序符合从右向左进位的硬件习惯;大端排 序符合程序员从左向右的编程习惯。
• 5. 按地址寻址方式(略,P47)
• 寻址方式的使用频度:
• R寻址->直接->变址->单字位移->自增->R间址->自减 • 高 -------------------------- 低
2014-3-8
26
2.2.2 按内容访问方式
• • • • • 1. 按内容访问方式 按照要访问的数据的内容访问内存。 2. 联想存储器(相联存储器、按内容访问存储器) 满足按内容访问方式的存储器。 联想存储器的主要特点:以并行方式在存储器中 查找所需信息的内容。 • 3. 按内容访问的方法 • 通过硬件将要访问的内容与存储单元的内容进行 比较,若相同,则进行访问。
微机原理第02章(指令系统)2
![微机原理第02章(指令系统)2](https://img.taocdn.com/s3/m/48a3cadc76a20029bd642d35.png)
加法指令:ADD, ADC和INC 减法指令:SUB, SBB, DEC, NEG和CMP 他们分别执行字或字节的加法和减法运算, 除 INC 和 DEC 不影响 CF 标志外,其他按定 义影响全部状态标志位 操作数组合:
运算指令助记符 reg, imm/reg/mem 运算指令助记符 mem, imm/reg
第2章:5. 求补指令NEG(negtive)
4.取补指令 格式:NEG OPRD (OPRAND ) 功能:OPRD取补 (取反加1) 相当0-操作数,所以算入减法; 且一般CF=1(0-肯定有借位), 只有OPRD=0时CF=0
第2章:例题2.9 求补运算
mov ax,0ff64h neg al ;AL=0-64H=9CH,AX=FF9CH ;OF=0, SF=1,ZF=0,PF=1,CF=1 sub al,9dh ;AL=9CH-9DH=FFH,AX=FFFFH ;OF=0,SF=1,ZF=0,PF=1,CF=1 neg ax ;AX=0-FFFFH=0001H ;OF=0,SF=0,ZF=0,PF=0,CF=1 dec al ;AL=01H-1=0,AX=0000H ;OF=0,SF=0,ZF=1,PF=1,CF=1 neg ax ;AX=0-0=0 ;OF=0,SF=0,ZF=1,PF=1,CF=0
第2章:例题2.10 符号扩展
mov al,64h
;AL=64H (机器数) ,表示10进制数100(真值)
cbw
;将符号0扩展,AX=0064H,仍然表示100
mov ax,0ff00h
;AX=FF00H,表示有符号10进制数-256
cwd
;将符号位“1”扩展,DX.AX=FFFFFF00H ;仍然表示-256
第02章单片机指令系统与汇编语言程序设计习题解答
![第02章单片机指令系统与汇编语言程序设计习题解答](https://img.taocdn.com/s3/m/cedfe6fe112de2bd960590c69ec3d5bbfd0adaac.png)
第02章单⽚机指令系统与汇编语⾔程序设计习题解答第02章单⽚机指令系统与汇编语⾔程序设计习题解答⼀、填空题1. MCS-51单⽚机指令系统中有 111 条指令。
2. MCS-51单⽚机指令中,Rn表⽰ R0、R1、R2、R3、R4、R5、R6、R7中的⼀个。
3. MCS-51单⽚机指令中,@表⽰间接寻址。
4. MCS-51单⽚机指令中,$表⽰当前指令的⾸地址。
5. MCS-51单⽚机寻址⽅式有⽴即数、直接地址、寄存器、寄存器间接、变址、相对、位寻址等七种寻址⽅式。
6. 指令MOVC A, @A+PC的功能是将A的内容与PC当前值相加作为程序存储器地址,再将该地址单元的内容传送到A 。
7. 指令JBC CY, LOOP是 3 字节、 2 个机器周期指令。
8. 指令DA A的功能是对A中当前值进⾏⼗进制调整。
9. 调⽤⼦程序时,将PC当前值保存到堆栈。
10. MCS-51单⽚机堆栈操作的基本原则是先进后出。
⼆、简答题1. MCS-51单⽚机指令⼀般由哪⼏个部分组成?各部分的功能是什么?答:MCS-51单⽚机指令⼀般由标号、操作码助记符、操作数、注释四部分组成。
标号是⼀条指令的标志,是可选字段,与操作码之间⽤“:”隔开;设置标号的⽬的是为了⽅便调⽤或转移。
标号的选择应遵从下列规定:标号由1~8个字母或数字组成,也可以使⽤⼀个下划线符号“_”。
第⼀个字符必须是字母。
指令助记符或系统中保留使⽤的字符串不能作为标号。
标号后⾯需要有⼀个冒号。
⼀条语句可以有标号,也可以没有标号,取决于程序中其它语句是否需要访问这条语句。
操作码规定指令的功能,是⼀条指令的必备字段,如果没有操作码,就不能成为指令。
它与操作数之间⽤“空格”隔开。
操作数是指令操作的对象。
分为⽬的操作数和源操作数两类,它们之间⽤“,”分隔。
操作数是可选字段。
⼀条指令可以有0、1、2、3个操作数。
注释是对指令功能的说明解释。
以“;”开始。
2. 程序中,伪指令ORG和END的作⽤是什么?答:ORG⽤于定义汇编语⾔源程序或数据块存储的起始地址。
第2章 指令系统及汇编语言程序设计答案
![第2章 指令系统及汇编语言程序设计答案](https://img.taocdn.com/s3/m/0ed9bcca941ea76e58fa0457.png)
第2章指令系统及汇编语言程序设计一.选择题1.(D) 2.(A) 3.(C) 4.(D) 5.(A) 6.(D)7.(C) 8.(C) 9.(C) 10.(D) 11.(D) 12.(C)13.(C) 14.(A) 15.(A) 16.(D) 17.(B) 18.(C)19.(C) 20.(C) 21.(D) 22.(D) 23.(D) 24.(C)25.(A) 26.(A) 27.(B) 28.(C) 29.(B) 30.(D)31.(B) 32.(C) 33.(C) 34.(A) 35.(C) 36.(D)37.(D) 38.(A) 39.(B) 40.(C) 41.(D) 42.(D)43.(B) 44.(C) 45.(C) 46.(B) 47.(B) 48.(D)49.(A) 50.(B) 51.(A) 52.(C)二、判断题1.× 2.× 3.× 4.√ 5.√ 6.√ 7.×8.× 9.×10.√ 11.× 12.× 13.× 14.× 15.× 16.√17.√18.√19.× 20.× 21.× 22.√ 23.× 24.√ 25.√26.√三、填空题1.53F30H2. 0 ; 0; 0; 13.操作码;操作数4. ZF=05.SS6. 1234H,0FFEH7.立即四、阅读程序1.38(或26H)2.将以10100H起始的50个单元的内容传送至以10200H起始的50个单元中3.将数据段中以2000H起始的100个单元中的内容清零4.统计以BUFFER为首址的100个单元中数字为1的个数存入ARRAY单元5.统计N字中0的个数6.将N的内容拆为两部分分别存入BH,BL中7.AX=0008H8.AL=34H9.AX=23H10.AX=0004H11.AX=0055H12.将从键盘接受到的两个字符拼在一起13.BH=0FFH,BL=0EH14.AX=000FH15.AL=15H,AF=1,BL=0FH16.90H17.向屏幕上依次输出0,1,…。
第2章 单片机的指令
![第2章 单片机的指令](https://img.taocdn.com/s3/m/d97279bbc77da26925c5b0bc.png)
2.3.1 通用传送指令: MOV 通用传送指令:
• 4. 目的地址传送 • MOV DPTR , #data16 ;DPTR ←#data16 ; 直接/立即 • MOV DPTR,#2003H ;把16位立即常数装入数 据地址指针,其中DPTR的高八位(DPH)=20H, 低八位(DPL)=03H。 • 例如:若片外数据存储器单元(3007H)=60H, 执行 MOV DPTR, #3007H; DPTR存放的是数 据3007H,而执行 MOVX A,@DPTR; @DPTR 存放的是地址,结果A=60H.
例如:试编制根据累加器A中的数(0~9之间)查其平方表的子程序。 COUNT:PUSH DPH ;保护DPTR内容 • PUSH DPL • MOV DPTR,#TABLE ;赋表首址到DPTR • MOVC A,@A+DPTR ;据A中内容查表 • POP DPL ;恢复DPTR原内容 • POP DPH • RET ;返回主程序 TABLE: DB 00 • DB 01 • DB 04 • DB 09 • DB 16 • DB 25 • DB 36 • DB 49 • DB 64 • DB 81
2.2.2 寻址方式 5. 变址寻址 MOVC A,@A十 DPTR ; A←((A)十(DPTR)), 累加器/变址。 在变址寻址时,由指令指定的偏移量寄存器中 的内容和变址寄存器PC或DPTR中的内容相加所得 的结果作为操作数的地址, A为偏移量寄存器,内容为无符号位数,它和 DPTR中的内容相加,得到操作数地址。 不论用DPTR或PC作为基址指针,变址寻址方 式都只适用于MCS-51的程序存贮器,通常用于读 取数据表格寻址方式
7. 位寻址 SETB bit ; bit ←l,位寻址。 • 在位寻址时,操作数是二进制数的某一 位 其位地址出现在指令中, • 可用于位寻址的空间是,内部RAM的可 寻址区和SFR区中的字节地址可以被8整除 (即地址以“0”或“8”结尾)的寄存器所占空 间。
南京理工大学《微机原理与接口技术》第二章 指令系统(1)PPT课件
![南京理工大学《微机原理与接口技术》第二章 指令系统(1)PPT课件](https://img.taocdn.com/s3/m/d276c0efcf84b9d529ea7a17.png)
28.07.2020
1
标题添加
点击此处输入相 关文本内容
前言
点击此处输入 相关文本内容
标题添加
点击此处输入相 关文本内容
点击此处输入 相关文本内容
第二章 8086/8088 指令系统
2.1 概述
2.2 寻址方式
2.3 数据传送指令
2.4 算术运算指令
2.5 逻辑运算指令
2.6 串操作指令
MOV AX, 0102H
;AX←0102H
28.07.2020
11
立即数寻址方式
28.07.2020
12
例:
• 将立即数0102H送至AX寄存器
• 汇编指令: MOV AX,0102H ; • 指令功能: AX←0102H ; • 指令代码:B8 02 01
28.07.2020
13
28.07.2020
与机器指令一一对应,需要翻译成机器指令才能运
行
10110000 00000001
28.07.2020
MOV AL, 1 4
一、指令的组成
操作码 操作数
指令由操作码和操作数两部分组成
• 操作码说明计算机要执行哪种操作,如传送、运算、 移位、跳转等操作,它是指令中不可缺少的组成部 分
操作数是指令执行的参与者,即各种操作的对象
15
2 寄存器寻址方式
• 操作数存放在CPU的内部寄存器reg中:
– 8位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL – 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP – 4个段寄存器seg: CS、DS、SS、ES
• 寄存器名表示其内容(操作数)
第二章 MCS-51指令系统及汇编语言程序设计
![第二章 MCS-51指令系统及汇编语言程序设计](https://img.taocdn.com/s3/m/e9ffb066f5335a8102d220d5.png)
XCH A, direct 1 1 0 0 0 1 0 1
6.半字节交换指令
助记符 XCHD A, @Ri 机器码 1101011r 功能 ; (A3~0)((Ri)3~0), i=0,1
数据传送类指令
数据传送类指令的助记符有: MOV、MOVX、MOVC XCH、XCHD PUSH、POP
寄存器C MCS-51 传送指令 示意图 寄存器 R7~R0 直接地址 direct 直接地址 direct 寄存器 DPTR 立即数 #data
例:设外部数据存储器2097H单元中内容 为80H,在执行下列指令后,则A中的内容 为80H。 MOV P2, #20H MOV R0, #97H MOVX A, @R0
Ⅱ.由Ri内容指示外部数据存储器地址 (2)累加器内容送外部数据存储器
助记符 MOVX @Ri, A 目标 源 机器码 11110011 功能 ; ((Ri)+(P2))←A, i=0,1
二、直接寻址
紧跟在操作码后的是操作数的直接地址。 该方式中操作数存储的空间有三种:
1.内部数据存储器的低1 ; (70H)→A 2.位地址空间 例:MOV C, 00H ; 直接位00H内容→ 进位位 MOV 00H → 3.特殊功用功能寄存器 *只能用直接寻址方式进行访问。 例: MOV IE, #85 ; 立即数85H →中断允许寄存器
执行该指令时: 1.P3.6引脚上输出WR有效信号 2. Ri包含的低8位地址由P0口输出,高8位地址信息 由P2口输出。 3.累加器A的内容由P0口输出。 4.P0口作分时复用。
3.程序存储器内容送累加器
该类指令常用于查表。 (1)PC作基址寄存器
助记符 MOVC A, @A+PC 目标 源 机器码 10000011 功能 ; PC←PC+1 A ←((A)+(PC))
第2章 Linux操作系统指令及Eather工作系统简介
![第2章 Linux操作系统指令及Eather工作系统简介](https://img.taocdn.com/s3/m/d1dee77b7fd5360cba1adb8f.png)
,KOffice
vi,gedit,Kedit,AbiWord Mozilla,netscape Evolution,KMail BitTorrent,WebDownloader, gFTP gaim
多媒体ቤተ መጻሕፍቲ ባይዱ放器
图像查看与处理软件 刻录软件
XMMS,MPlayer,RealOne
九天软件设计流程
2.2.2 Aether的安装
没有安装程序,只需解压文件到指定路径下, 配置 好环境变量即可。 第一步:%tar zxvf empyrean_aether_2011 xxxx <platform>_flic.tar.gz 相当于gzip –d + tar –xvf *.tar 第二步:设置LM_license_file and Empyrean_ home 第三步:source setup.csh or bash file
Linux与Windows的优缺点
在易用性方面,Windows仍然处于优势 在灵活性方面,Linux则占据上风 在对客户端软件和多媒体软件的支持方面,一
直是 Windows 的强项
2.1.2 Linux的各组成部分
(1) 内核(Kernel) 内核是一个操作系统的核心,它负责管理系统 的进程、内存、设备驱动程序、文件和网络系 统,决定着系统的性能和稳定性。
Vi的界面可以分为两个部分:编辑区和状态/命 令区。状态/命令区在屏幕的最下一行,用于输 入命令,或者显示出当前正在编辑的文件名称, 状态,行数和字符数。 其他区域都是编辑区,用于进行文本编辑。
(3)编辑文件
a. 输入文本
要输入文本必须首先将工作模式转换为文本编辑模式, 在命令模式下键入i, I, a, A, o, O命令中的任意一个即 可。此时在状态/命令区出现“---INSERT---”字样。 i I a A o O 从当前的光标位置开始输入字符 光标移动到当前行的行首,开始输入字符 从当前光标的下一个位置,开始输入字符 光标移动到当前行的行尾,开始输入字符 在光标所在行之下新增一行 在光标所在行之上新增一行
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如: MOV C,20H
;20H位的内容送CY标志位,C称为位累加器。
MOV A,20H
寻址方式与操作数有关
;字节寻址,将内部 RAM区20H单元中的内容送A
以上两条指令的寻址方式是位寻址还是字节
寻址,根据两操作数类型一致的原则,由另一个
操作数决定。
2.2 数据传输与交换指令
1、内部RAM、SFR之间的传送MOV指令 数据在A、dir 、#data、 Rn和@Ri之间传输 任何一个可到A或dir; #data可到任何一个; Rn和@Ri除了不能互达,其他均可达; 只有dir可自达。
0102H
ADD A,#3 ;修正偏移量
0104H
MOVC A,@A+PC ;查表求Y=X2
0105H
MOV 21H,A ;存结果
0107H
RET
;子程序结束
0108H TAB: DB 00,01,04 ;平方表
010BH
DB 09,…,225
3、堆栈操作指令
入栈指令:PUSH dir ;SP←SP+1,(SP) ←(dir )
绝对转移:转移的目的地址用地址指示,通常为无条件转 移。
相对转移:转移的目的地址用相对于当前PC的差值(偏 移量)指示,通常为条件转移。
长转移或长调用:目的地址距当前PC 64KB地址范围内。 短转移或短调用:目的地址距当前PC 2KB地址范围。
1.长调用 LCALL addrl16 ;addr16→PC0~15
地址
内容
2000H
X
… 2100H
x
片外数据存储器不能直接寻址。下列为非法指令:
MOVX A,2000H ×
MOVX 2100H,2000H ×
方法二:利用@Ri
使用P2口和8位寄存器Ri间址: MOV P2,#20H ;高位地址 MOV R0,#00 ;低位地址 MOVX A,@R0 ;读片外RAM(2000H) MOV P2,#21H ;改变高位地址 MOVX @R0,A ;写片外RAM(2100H)
只能是@R0 、@R1 、@DPTR,例如: MOV R0,#20H MOV @R0,A ;A→(20H) 地址的内部RAM
MOVX A,@R1 ;外部RAM(高8位地址:P2)的 内容→A
MOVX @DPTR,A ;A→以DPTR内容为地址的 外部RAM
5、变址寻址 -- 用来访问ROM 以DPTR或PC寄存器内容为基地址,与A的内容
第二章 指令系统
内容提要
寻址方式 传送与交换指令 算术运算、逻辑运算指令 控制转移指令 位操作指令
MCS-51单片机汇编语言指令格式: 操作符 目的操作数,源操作数
指令中的常用符号
Rn: n=(0~7),表示当前工作寄存器R0~R7中 的一个。
Ri: i=(0、1),代表R0和R1寄存器中的一个,用 于寄存器间接寻址。
#data
或 ORL
dir
Rn
#data
异或 XRL
以dir为目的操作数逻辑运算指令(6条)
A
与 ANL
A
dir
或 ORL dir ,
#data 异或 XRL
#data
加 1 指令:
A Rn INC @Ri dir DPTR
减 1 指令:
A DEC Rn
@Ri dir
dir
@Ri
+- 1
A
+- 1
利用MOVC指令 实现查表功能 注:①只能从程序存储器读取数据到A累加器。
②只能使用变址寻址方式
多用于查常数表,直接求取常数表中的值 1)DPTR为基址寄存器
MOVC A,@A+DPTR ;A←(A+DPTR) 查表范围为 64KB 程序存储器任意空间。
2)PC为基址寄存器 MOVC A,@A+PC ;A← (A+PC)
常数表只能在MOVC指令后 256B 范围内。(因为 PC的值我们不能改变)
例 查表法求 Y=X2。设 X(0≤X≤15)在片内 RAM 20H单
元,查表求 Y,存入片内 RAM 21H单元
1)用DPTR作基址寄存器
ORG 0100H
SQU: MOV DPTR,#TAB ;确定表首地址
MOV A,20H
出栈指令:POP dir ;(dir )←(SP),SP←SP-1
例:设 A=02,B=56H,执行下列指令序列后,SP = ?
A = ? ,B = ?
SBR:MOV SP,#30H ;设栈底
PUSH ACC ;保护现场
PUSH B
MOV A,#0
MOV B,#01
…
POP B
;恢复现场
POP ACC
RET
堆栈操作示意:
片内 RAM
34H × 33H × SP→ 32H ×56 SP→ 31H 0×2 SP→ 30H ×
பைடு நூலகம்
4、 交换指令 实现片内RAM区的数据双向传送
1. 字节交换指令 XCH A,Rn ;A←→Rn XCH A,@Ri ;A←→(Ri) XCH A,dir ;A ←→(dir)
相对转移指令中
bit :位地址,在位地址空间中。 $: 表示当前指令的地址。
2.1 寻址方式 1、立即寻址
指令中直接给出操作数的寻址方式。在51 系列单片机的指令系统中,立即数用一个 前面加 “#“号的8位数(#data,如#30H) 或16位数(#data16,如#2052H)表示。 例如
内部RAM、SFR之间的传送MOV指令
dir
@Ri
A
Rn
MOV @Ri,
#data
A dir #data
Rn
MOV A , #data dir
@Ri A Rn
MOV dir , @Ri
#data
dir A MOV Rn , dir
#data
例 判断下列指令的正误:
MOV 29H,R7 √ MOV 25H,P1 √
操作数存放在通用寄存器中。
寻址对象:A,B,DPTR,R0~R7 。 B 仅在乘除法指令中为寄存器寻址,在其他指令中为 直接寻址。
A 可以寄存器寻址又可以直接寻址,直接寻址时写作 ACC。
例如:MOV A,R0 ;R0→A,A、R0均为寄存器寻址,机器码E8
MUL AB ;A*B→BA,A、B为寄存器寻址,机器码A4
;取 X
MOVC A,@A+DPTR ;查表求 Y=X2
MOV 21H,A
;保存Y
RET
;子程序结束
…
;其它程序段
ORG 0200H
;常数表格首地址
TAB: DB 00,01,04,09,…,225 ;平方表
2)用PC作基址寄存器
指令地址
源程序
ORG 0100H ;程序起始地址
0100H SQU: MOV A,20H ;取X
A 00101101
CY
A 11001011 0
CY
CY
A 00101101 1
2.4 控制转移指令
这一类指令的功能是改变指令的执行顺序,转到指令 指示的新的地址执行。
MCS-51单片机的控制转移指令有以下三类分类: 无条件转移:无需判断,执行该指令就转移到目的地址。
条件转移:需判断标志位是否满足条件,满足条件转移到 目的地址,否则顺序执行。
MOV B,R0 ;R0→B,R0为寄存器寻址,B为直接寻址 ;机器码 88F0,其中 F0为B的字节地址 ;等价指令 mov F0H,R0 PUSH ACC ;A的内容压入堆栈,机器码C0E0
寄存器寻址的好处:指令短,速度快
4、寄存器间址 -- 用来访问RAM(外部、内部) 操作数存放在以寄存器内容为地址的单元中。
MOV R3,A
只有dir可自达
2、外部存储器和累加器A之间的传送
A 外部数据 MOVX 存储器
MOVC
程序 存储器
MOVX
@Ri , A @DPTR , A
A , @Ri A , @DPTR
A , @A+PC MOVC
A , @A+DPTR
MOVX指令举例 例: 实现片外数据存储器数据传送 (2000H)→(2100H)。
dir : 8 位直接字节地址(片内 RAM 和 SFR ) #data: 8位立即数,即8位常数。可以为2进制
(B)、 10进制、 16进制(H)、 字符 (‘ ’)、
#data16: 表示16位立即数,即16位常数, 取值范围为#0000H~#0FFFFH
addr16 : 表示16位地址 addr11 : 表示11位地址 rel : 相对偏移量(为一字节补码)用于
相加形成操作数的地址。只能作为源操作数。 例如: MOVC A, @A+DPTR
6、相对寻址 -- 访问ROM,用于跳转类指令
相对寻址是将程序计数器PC的值与指令第二字节 给出的偏移量相加,从而形成转移的目标地址。
例如:JZ 10H
寻址方式与指令有关
7、位寻址
对片内RAM中20H~2FH中的128个位地址及 SFR中的可位寻址的位地址区寻址。
MOV 56H,#70H √ MOV 34H,28H √
MOV R3,R7 × MOV @R3,R7 ×
MOV R3,#0D2H√ MOV #34H,28H ×
MOV A,#280H × MOV P3,P1
√
编程将R7的内容送R3。 任何一个可到A或dir,
MOV A ,R7
#data可到任何一个 Rn和@Ri除了不能互达,其他均可
2.3 算术运算和逻辑运算指令
算术运算 add、addc、subb 、inc 、dec 、 mul ab 、div ab