MCS-C51的指令系统.ppt

上传人:w****2 文档编号:17006923 上传时间:2020-11-06 格式:PPT 页数:91 大小:1.24MB
收藏 版权申诉 举报 下载
MCS-C51的指令系统.ppt_第1页
第1页 / 共91页
MCS-C51的指令系统.ppt_第2页
第2页 / 共91页
MCS-C51的指令系统.ppt_第3页
第3页 / 共91页
资源描述:

《MCS-C51的指令系统.ppt》由会员分享,可在线阅读,更多相关《MCS-C51的指令系统.ppt(91页珍藏版)》请在装配图网上搜索。

1、西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 1 单片机原理及应用 主 讲:梁德胜 联系方式: 办公地点:教五楼 408室 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 2 常用的编程语言 1.机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行 的一种机器指令的集合。机器语言具有灵活、直接执行和 速度快等特点。 用机器语言编写程序 ,编程人员要首先熟记所用计算机的 全部指令代码和代码的涵义。手编程序时 ,程序员得自己 处理每条指令和每一数据的存储分配和输入输出 ,还得记 住编程过程中每步所使用的工作单元处在何种状态。而且 , 编出的程序全是

2、些 0和 1的指令代码 ,直观性差 ,还容易出错。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 3 2.汇编语言 为了克服机器语言难读、难编、难记和易出错的缺点 ,人们就用与代码指 令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码 ,于是就产 生了汇编语言。所以说 ,汇编语言是一种用助记符表示的仍然面向机器的计算 机语言。汇编语言亦称符号语言。汇编语言由 于是采用了助记符号来编写程 序 ,比用机器语言的二进制代码编程要方便些 ,在一定程度上简化了编程过程。 汇编语言的特点是用符号代替了机器指令代码 ,而且助记符与指令代码一一对 应 ,基本保留了机器语言的灵活性

3、。使用汇编语言能面向机器并较好地发挥机 器的特性 ,得到质量较高的程序。 汇编语言中由于使用了助记符号 , 计算机不能象用机器语言编写的程序 一样直接识别和执行 ,必须通过预先放入计算机的 “ 汇编程序 “ 的加工和翻译 , 才能变成能够被计算机识别和处理的二进制代码程序。 汇编语言像机器指令一样 ,是硬件操作的控制信息 ,因而仍然是面向机器 的语言 ,使用起来还是比较繁琐费时 ,通用性也差。汇编语言是低级语言。但 是 ,汇编语言用来编制系统软件和过程控制软件 ,其目标程序占用内存空间少 , 运行速度快 ,有着高级语言不可替代的用途。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6

4、日星期五 4 3.高级语言 不论是机器语言还是汇编语言都是面向硬件的具体操作的, 语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原 理都十分熟悉。 高级语言是面向用户的语言。无论何种机型的计算机 ,只要 配备上相应的高级语言的编译或解释程序 ,则用该高级语言编写 的程序就可以通用。 计算机并不能直接地接受和执行用高级语言编写的源程序 , 源程序在输入计算机时 ,通过 “ 翻译程序 ” 翻译成机器语言形式 的目标程序 ,计算机才能识别和执行。 每一种高级语言 ,都有自己规定的专用符号、英文单词、语 法规则和语句结构。高级语言与自然语言更接近 ,而与硬件功能 相分离 ,便于广大用户掌握和使

5、用。高级语言的通用性强 ,兼容性 好 ,便于移植。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 5 第 3章 MCS-51指令系统 3.1 指令格式及常用符号 3.2 MCS-51的寻址方式 3.3 数据传送类指令( 29条 ) 3.4 算术运算类指令( 24条) 3.5 逻辑运算与循环类指令( 24条) 3.6 位操作类指令 ( 17条) 3.7 控制转移类指令 ( 17条) 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 6 3.1 指令格式及常用符号 3.1.1 机器指令的编码格式 一、单字节指令 1. 8位编码仅为操作码 : 如: INC A

6、 该指令的编码为: 0000 0100B,其十六进 制表示为 04H,累加器 A隐含在操作码中。指令的 功能是累加器 A的内容加 1。 注意:在指令中用 “ A”表示累加器,而用 “ ACC”表示累加器对应的地址( E0H)。 指令要指明 操作 和 操 作对象 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 7 2 8位编码含有操作码和寄存器编码 高 5位 为操作码 , 低 3位 为存放操作数的寄存器 编码 。 如: MOV A, R0 编码 为 1110 1000B, 其十六进制表示为 E8H ( 低 3位 000为寄存器 R0的编码 ) 。 功能 是将当前 工作寄存器

7、R0中的数据传送到累加器 A中 。 如何知道是哪一组寄存器? 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 8 二、双字节指令 第一字节 表示操作码, 第二个字节 表示参 与操作的数据或数据存放的地址。 如: MOV A, #50H 编码 为 0111 0100B, 0101 0000B。 其十六进制表示为 74H, 50H。 功能 是将立即 数 “ 50H”传送到累加器 A中。 注意:指令中带 #的是立即数,不带 #的是地址 50H是存储在程 序区还是数 据区? 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 9 三、三字节指令 指令的第一字节 表示

8、该指令的操作码, 后 两个字节 表示参与操作的数据或数据存放的地 址。如: MOV 20H, #50H 编码 为 0111 0101B, 0010 0000B, 0101 0000B。其十六进制表示为 75H, 20H, 50H。 功 能 是将立即数“ 50H” 传送到内部 RAM 的 20H单 元中 。 如何知道是传输 到内部 RAM 中? 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 10 3.1.2 符号指令的格式 一般格式为: 操作助记符 目的操作数 ,源操作数 ;注释 多数指令为两操作数指令 ;当指令操作数隐 含在操作助记符中时,在形式上这种指令 无操 作数 ;

9、另有一些指令为 单操作数 指令或 三操作 数 指令。指令的一般格式中使用了可选择符号 “ ”,包含的内容因指令的不同可以有或无。 在两个操作数的指令中,通常目的操作数 写在左边,源操作数写在右边 。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 11 如:指令 ANL A, 40H 功能 是将立即数 “ 40H”同累加器 A中的数 进行 “ 与 ” 操作,结果送回累加器。 ANL为 “ 与 ” 操作的助记符,立即数 “ 40H”为源操作数,累加器 A为目的操作数。 注:在指令中,多数情况下累加器用 “ A” 表示,仅在直接寻址方式中,用 “ ACC”表示累 加器在 SFR

10、区的具体地址 E0H。 试比较,指令 MOV A, 30H的机器码为 74H、 30H;而指令 MOV ACC, 30H的机 器码为 75H、 E0H、 30H。 两个指令的执行效率 是不一样的前一个 为单周期指令而后 一个为双周期指令。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 12 3.1.3 符号指令及其注释中常用的符号 Rn( n=07) -当前选中的工作寄存器组中的 寄存器 R0R7之一; Ri( i=0, 1) -当前选中的工作寄存器组中的 寄存器 R0或 R1; -间址寄存器前缀; #data -8位立即数; #data16-16位立即数; direct

11、-片内低 128个 RAM单元地址及 SFR地址(可用符号名称表示) 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 13 addr11-11位目的地址; addr16-16位目的地址; rel-补码形式表示的 8位地址偏移量,值在 128 127范围内; bit-片内 RAM位地址、 SFR的位地址(可用符号名 称表示); /-位操作数的取反操作前缀; ( ) - 表示 地址单元或寄存器中的内容; ( ) -表示以 单元或寄存器内容为地址间 接寻址单元的内容; -将箭头右边的内容送入箭头左边的单元中。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 1

12、4 3.2 MCS-51的寻址方式 寻址方式是寻找操作数或指令的地址的方式 。 寻址方式包含两方面内容:一是操作数的寻址,二是 指令地址的寻址(如转移指令、调用指令)。 寻址方式有七种 。即:寄存器寻址、直接寻址、寄 存器间接寻址、立即寻址、基址寄存器加变址寄存 器变址寻址、相对寻址和位寻址 对于两操作数指令,源操作数有寻址方式,目的操 作数也有寻址方式。若不特别声明,我们后面提到 的寻址方式均指 源操作数的寻址 方式。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 15 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 16 操作数存放在寄存器中, 指

13、令中直接给出该寄存器名称 的寻址方式称为寄存器寻址。 采用寄存器寻址可以获得较高 的传送和运算速度。 寄存器可以是: R0R7; 累加器 A(注:使用符号 ACC 表示累加器时属于直接寻址);寄存器 B(以 A、 B寄存器对 形式出现);数据指针 DPTR。 3.2.1 寄存器寻址 3 0 H 0 0 H A S F R R 0 3 0 H M O V A , R 0 E 8 H R O M R A M 如: MOV A, R0 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 17 指令操作码之后的字节存放的是操作数的地址, 操作 数本身存放在该地址指示的存储单元中 的寻址

14、方式称为直 接寻址。 在直接寻址方式中的 SFR经常采用符号形式表示。 寻址空间为: 片内 RAM低 128字节(以地址形式表示); SFR (以地址或 SFR的符号形式表示 )。 3.2.2 直接寻址 如: MOV A, 50H 3 A H 5 0 H A S F R 3 A H M O V A , 5 0 H E 5 H R O M R A M 5 0 H 注:直接寻址是特殊功能寄存器唯一的访问方式 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 18 寄存器中的内容为地址,从该地址去取操作数 的寻址方式称为寄存器间接寻址 。 寄存器间接 寻址的存储空间 为片内 RAM

15、或片 外 RAM。 片内 RAM的数据传送采用 “ MOV”类指令, 间接寻址寄 存器采用寄存器 R0或 R1(堆栈操作时采用 SP)。 片外 RAM的数据传送采用 “ MOVX”类指令,这时间接 寻址寄存器有两种选择,一是采用 R0和 R1作间址寄存器, 这时 R0或 R1提供低 8位地址(由 P2口提供高 8位地址); 二是采用 DPTR作为间址寄存器。 3.2.3 寄存器间接寻址 注意:访问片内片外 RAM的 MOV指令不同 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 19 寄存器间接寻址对应的空间为: 片内 RAM(采用 R0, R1或 SP); 片外 RAM(

16、采用 R0, R1或 DPTR)。 如: MOV A, R0 5 A H 3 0 H A S F R 5 A H M O V A , R 0 E 6 H R O M R A M 3 0 H R 0 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 20 指令编码中直接给出操作数 的寻址方式称为立即寻址。 在这种寻址方式中,紧跟在操作码之后的操作数称为立即 数。立即数可以为一个字节,也可以是两个字节,并要用 符号 “ ” 来标识。 由于立即数是一个常数,所以只能作 为源操作数。 立即寻址所对应的 寻址空间 为: ROM 3.2.4 立即寻址 0 0 H A S F R 5 0

17、H M O V A , # 5 0 H 7 4 H R O M R A M 5 0 H 如: MOV A, 50H 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 21 以一个基地址加上一个偏移量地址形成操作数地址 的 寻址方式称为变址寻址。在这种寻址方式中,以数据指针 DPTR或程序计数器 PC作为基址寄存器,累加器 A作为偏移 量寄存器,基址寄存器的内容与偏移量寄存器的内容之和 作为操作数地址。 变址寻址所对应的 寻址空间 为: ROM 3.2.5 变址寻址 如: MOVC A, A+DPTR 0 0 H A S F R 0 F H M O V C A , A + D

18、P T R 9 3 H R O M R A M D P L 0 0 H D P H 2 4 H 8 8 H 2 4 0 0 H + 0 F H = 2 4 0 F H 2 4 0 F H 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 22 相对寻址是以程序计数器 PC的当前值 (指读出 该 2字节或 3字节的跳转指令后, PC指向的下条指 令的地址) 为基准,加上指令中给出的相对偏移量 rel 形成目标地址 的寻址方式 。 rel 是一个带符号的 8位二进制数,取值范围是 128 127,以补码形式置于操作码之后存放。 3.2.6 相对寻址 如: JC rel ; rel

19、 75H 0 0 H P S W S F R 1 0 0 0 0 0 0 0 R O M R A M 1 0 0 0 H + 0 2 H = 1 0 0 2 H 1 0 7 7 H J C r e l 4 0 H 7 5 H 1 0 0 0 H 1 0 0 1 H 1 0 0 2 H 1 0 0 2 H + 7 5 H = 1 0 7 7 H P C 值 字 节 数 当 前 P C 值 偏 移 量 新 P C 值 注 意 此 例 中 C Y P S W . 7 ) 为 1 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 23 对位地址中的内容进行操作 的寻址方式称为位 寻址

20、。采用位寻址指令的操作数是 8位二进制数中 的某一位。指令中给出的是位地址。位寻址方式 实质属于位的直接寻址。 寻址空间 为:片内 RAM的 20H2FH单元中的 128可寻址位; SFR的可寻址位。 习惯上,特殊功能寄存器的寻址位常用符号位 地址表示。 如: CLR ACC.0 MOV 30H, C 3.2.7 位寻址 注意:如何来区分是位地址还是字节地 址是通过 指令来判断 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 24 3.3 数据传送类指令( 29条) 传送类指令占有较大的比重。数据传送是 进行数据处理的最基本的操作,这类指令 一般 不影响标志寄存器 PSW的

21、状态 。 传送类指令可以分成两大类。一是采用 MOV操作符,称为一般传送指令;二是采 用非 MOV操作符,称为特殊传送指令,如: MOVC、 MOVX、 PUSH、 POP、 XCH、 XCHD及 SWAP。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 25 3.3.1 一般传 送指令 图 3 1 MCS -51传送指令示意图 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 26 3.3.1 一般传 送指令 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 27 一、 16位传送 这条指令的功能是将源操作数 data16 (通常是地

22、址常数)送入目的操作数 DPTR中。 源操作数的寻址方式为立即寻址。 例如: 执行指令 MOV DPTR, #1234H 后 ( DPH) =12H,( DPL) =34H。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 28 二、 8位传送 A A R n R n MOV dire c t dir e c t R i R i - - - #da ta 目 的 字 节 源 字 节 在 5种源字节中,只有 data不能用作目的字 节。所以可以用 4种目的字节为基础构造 4类指令。 相应的源字节选择依据是: 源字节与目的字节不相同; 寄存器寻址与寄存器间接寻址间不相互传送。

23、指的是工作寄存 器: 寄存器寻 址与寄存器间 接寻址间及其 本身之间都不 相互传送 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 29 1以 A为目的 R n A R n d i r e c t A d i r e c t M OV A R i A R i # d a t a A d a t a ; ( ) ; ( ) , ; ( ( ) ) ; 这组指令的功能是把源字节送入累加器中。源 字节的寻址方式分别为直接寻址、寄存器间接寻 址、寄存器寻址和立即寻址四种基本寻址方式。 例:若( R1) = 20H,( 20H) = 55H,执行 指令 MOV A, R1 后 ( A

24、) = 55H。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 30 2以 Rn 为目的 这组指令的功能是把源字节送入寄存器 Rn中。 源字节的寻址方式分别为立即寻址、直接寻址和 寄存器寻址(由于目的字节为工作寄存器,所以 源字节不能是工作寄存器及其间址方式寻址)。 例:若( 50H) = 40H,执行指令 MOV R6, 50H 后, ( R6) = 40H A R n A M O V R n d ir e c t R n d ir e c t # d a ta R n d a ta ; ( ) , ; ( ) ; 西安理工大学课堂教学讲稿 指令系统 2020年 11月

25、 6日星期五 31 3以 direct 为目的 这组指令的功能是把源字节送入 direct中。源 字节的寻址方式分别为立即寻址、直接寻址、 寄存器间接寻址和寄存器寻址。 例:若( R1) =50H,( 50H) =18H,执行指令 MOV 40H, R1 后 ( 40H) =18H A d ir e c t A Rn d ir e c t Rn M O V d ir e c t d ir e c t1 d ir e c t d ir e c t1 Ri d ir e c t Ri # d a ta d ir e c t d a ta ; ( ) ; ( ) , ; ( ) ; ( ( ) )

26、; 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 32 4以 Ri为目的 这组指令的功能是把源字节送入 Ri内容为地址的 单元,源字节寻址方式为立即寻址、直接寻址和 寄存器寻址(因目的字节采用寄存器间接寻址, 故源字节不能是寄存器及其间址寻址)。 例:若( R1) =30H,( A) =20H,执行指令 MOV R1, A 后,( 30H) =20H。 A R i A M O V R i d i r e c t R i dir e c t # da t a R i da t a ; ( ) ( ) , ; ( ) ( ) ; ( ) 西安理工大学课堂教学讲稿 指令系统 2

27、020年 11月 6日星期五 33 3.3.2 特殊传送指令 特殊传送指令的操作符为: MOVC、 MOVX、 PUSH、 POP、 XCH、 XCHD和 SWAP。 功能分别为: ROM查表、外部 RAM读 写、堆栈操作和交换指令 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 34 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 35 一、 ROM查表 1 DPTR内容为基址 MOVC A, A+DPTR ; A ( A) +( DPTR) 该指令首先执行 16位无符号数加法,将获得的基址与变址 之和作为 16位的程序存储器地址,然后将该地址单元的内

28、容 传送到累加器 A。指令执行后 DPTR的内容不变。 2 PC内容为基址 MOVC A, A+PC ; A ( A) +( PC) 取出该单字节指令后 PC的内容增 1,以增 1后的当前值去执 行 16位无符号数加法,将获得的基址与变址之和作为 16位的 程序存储器地址。然后将该地址单元的内容传送到累加器 A。 指令执行后 PC的内容不变。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 36 二、读写片外 RAM 1读片外 RAM MOVX A, DPTR ; A ( DPTR) MOVX A, Ri ; A ( Ri) 第一条指令以 16位 DPTR为间址寄存器读片外

29、 RAM,可以 寻址整个 64K字节的片外 RAM空间。指令执行时,在 DPH中的 高 8位地址由 P2口输出,在 DPL中的低 8位地址由 P0口分时输 出,并由 ALE信号锁存在地址锁存器中。 第二条指令以 R0或 R1为间址寄存器,也可以读整个 64K字 节的片外 RAM空间。指令执行时,低 8位地址在 R0或 R1中由 P0口分时输出, ALE信号将地址信息锁存在地址锁存器中(高 8位地址由 P2口提供)。 读片外 RAM的 MOVX操作,使 P3.7引脚输出的信号选通 片外 RAM单元,相应单元的数据从 P0口读入累加器中。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6

30、日星期五 37 2写片外 RAM MOVX DPTR, A ;( DPTR) ( A) MOVX Ri, A ;( Ri) ( A) 第一条指令以 16位 DPTR为间址寄存器写外部 RAM,可 以寻址整个 64K字节的片外 RAM空间。指令执行时,在 DPH中 高 8位地址由 P2口输出,在 DPL中的低 8位地址,由 P0口分时输 出,并由 ALE信号锁存在地址锁存器中。 第二条指令以 R0或 R1为间址寄存器,也可以写整个 64K字 节的片外 RAM空间。指令执行时,低 8位地址在 R0或 R1中由 P0 口分时输出, ALE信号将地址信息锁存在地址锁存器中(高 8位 地址由 P2口提供

31、)。 写片外 RAM的 “ MOVX”操作,使 P3.6引脚的信号有效, 累加器 A的内容从 P0口输出并写入选通的相应片外 RAM单元。 注:当片外扩展的 I/O端口映射为片外 RAM地址时,也 要利用这 4条指令进行数据的输入输出 。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 38 三、堆栈操作 堆栈是在内部 RAM中按 “ 后进先出 ” 的规则组织的一片存储 区。此区的一端固定,称为栈底;另一端是活动的,称为栈顶。 栈顶的位置(地址)由栈指针 SP指示(即 SP的内容是栈顶的地 址)。 在 80C51中,堆栈的生长方向是向上的(地址增大)。 系统复位时, SP的

32、内容为 07H。通常用户应在系统初始化时 对 SP重新设置。 SP的值越小,堆栈的深度越深。 PUSH direct ; SP SP) 1,( SP) ( direct) POP direct; direct ( SP), SP ( SP) 1 例:若( SP) =07H,( 40H) =88H,执行指令 PUSH 40H 后,( SP) =08H,( 08H) =88H。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 39 四、数据交换 对于单一的 MOV类指令,传送通常是单向的,即数据是从一 处(源)到另一处(目的)的拷贝。而交换类指令完成的传送 是双向的,是两字节间

33、或两半字节间的双向交换 。 1字节交换 )();( )();( )();( , RiA R i d i r e c tA d i r e c t RnA R n A X C H 例:若( R0) =80H,( A) =20H。执行指令 XCH A, R0 后,( A) =80H,( R0) =20H。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 40 2 半字节交换 XCHD指令 的功能是间址操作数的低半字节与 A 的低半字节内容互换。 SWAP指令 的功能是累加器 的高低 4位互换。 例:若( R0) 30H,( 30H) 67H, ( A) 20H。执行指令 XCH

34、D A, R0 指令后 ( A) 27H,( 30H) 60H。 若( A) 30H,执行指令 SWAP A后, ( A) 03H。 )();( )();(, 47A03A A S WA P 03Ri03A R i A X C H D 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 41 3.4 算术运算类指令( 24条) 算术运算指令可以完成加、减、乘、除及加 1和减 1 等运算。 这类指令多数以 A为源操作数之一,同时又使 A为 目的操作数。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 42 西安理工大学课堂教学讲稿 指令系统 2020年 11月

35、 6日星期五 43 进位(借位)标志 CY为无符号整数的多字节加 法、减法、移位等操作提供了方便; 溢出标志 OV 可方便的控制补码运算; 辅助进位标志 AC用于 BCD码运算。算术运算操作将影响 PSW中的 OV、 CY、 AC和 P等。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 44 3.4.1 加法 一、不带进位加 R n A A R n di r e c t A A di r e c t A D D A R i A A R i #da t a A A da t a ; ( )( ) ; ( )( ) , ; ( )( ) ; ( ) CY:和的 D7位有进位时

36、,( CY) =1;否则,( CY) =0。 AC:和的 D3位有进位时,( AC) =1;否则,( AC) =0。 OV:和的 D7、 D6位只有一个有进位时,( OV) =1;溢出表示运算的结 果超出了数值所允许的范围。 如:两个正数相加结果为负数或两个负数相 加结果为正数时属于错误结果,此时( OV) =1。 P:累加器 ACC中 “ 1”的个数为奇数时,( P) =1;为偶数时,( P) =0。 11001100 + 01001000 100010100 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 45 例 若( A) =84H,( 30H) =8DH,执行指

37、令 ADD A, 30H 之后,由于: 即:( A) =11H,( CY) =1,( AC) =1, ( OV) =1( D7有进位, D6无进位),( P) =0。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 46 二、带进位加 Rn A A R n C Y d i r e c t A A dir e c t C Y A D D C A Ri A A R i C Y # da t a A A da t a C Y ; ( )( )( ) ; ( )( )( ) , ; ( )( )( ) ; ( ) ( ) 指令的 功能 是把源操作数与累加器 A的内容相加 再与进位标

38、志 CY的值相加,结果送入目的操作数 A 中。 加的进位标志 CY的值 是在该指令执行之前已经 存在的进位标志的值,而不是执行该指令过程中产 生的进位 。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 47 三、增 1 1D P T RD P T R D P T R 1RiRi R i 1d ir e c td ir e c t d ir e c t 1RnRn R n 1AA A I N C )(; )();( )(; )(; )(; 指令的 功能 是把源操作数的内容加 1 ,结 果再送回原单元。这些指令仅 INC A 影响 P 标志。其余指令都不影响标志位的状态。 西

39、安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 48 二 十进制编码 BCD码 BCD( Binary-Coded Decimal)码又称为 “ 二 十进制编 码 ” ,专门解决用二进制数表示十进数的问题。最常用的是 8421编码,其方法是用 4位二进制数表示 1位十进制数,自左至 右每一位对应的位权是 8、 4、 2、 1。 1 压缩 BCD码 压缩 BCD码的每一位用 4位二进制表示 , 00001001表示 09, 一个字节表示两位十进制数 。 例如:二进制数 1000,1001B, 采 用压缩 BCD码表示为十进制数 89D。 2 非压缩 BCD码 非压缩 BCD码用

40、一个字节表示一位十进制数 , 高 4位总是 0000, 低 4位的 00001001表示 09。 例如:十进制数 89D, 采 用 非 压 缩 BCD 码 表 示 为 二 进 制 数 是 : 00001000 00001001B 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 49 四、十进制调整 DA A 指令的功能是对累加器 A中刚进行的两个 BCD码的加法的结 果进行十进制调整。 两个压缩的 BCD码按二进制相加后,必须经过调整方能得到 正确的压缩 BCD码的和。 调整要完成的任务是: ( 1)当累加器 A中的 低 4位数出现了非 BCD码( 10101111) 或低

41、 4位产生进位( AC=1),则应在低 4位加 6调整,以产生 低 4位正确的 BCD结果。 ( 2)当累加器 A中的 高 4位 数出现了非 BCD码( 10101111) 或高 4位产生进位( CY=1),则应在高 4位加 6调整,以产生 高 4位正确的 BCD结果。 十进制调整指令执行后, PSW中的 CY表示结果的百位值。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 50 例 若( A) 0101 0110B,表示的 BCD码为 (56)BCD ( R2) 0110 0111B,表示的 BCD码为 (67)BCD ,( CY) 0。执行以下指令: ADD A, R

42、2 DA A 得到:( A) 0010 0011B,即 (23)BCD ,且( CY) 1,即 结果为 BCD数 123。 应该注意, DA指令不能对减法进行十进制调整。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 51 3.4.2 减法 一、带借位减 CY:差的位 7需借位时,( CY) =1;否则,( CY) =0。 AC:差的位 3需借位时,( AC) =1;否则,( AC) =0。 OV:若位 6有借位而位 7无借位或位 7有借位而位 6无借位时, ( OV) =1。 注意:如要用此组指令完成不带借位减法, 只需先清 CY为 0。第一次进行减法时 CY应清零 R

43、n A A Rn CY d i r e c t A A d i r e c t CY S U B B A Ri A A Ri CY # d a t a A A d a t a CY ; ( )( )( ) ; ( )( )( ) , ; ( )( )( ) ; ( ) ( ) 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 52 例 若( A) =C9H,( R2) =54H,( CY) =1, 执行指令 SUBB A, R2 之后,由于: 即:( A) =74H,( CY) =0,( AC) =0, ( OV) =1(位 6有借位,位 7无借位),( P) =0。 西安理

44、工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 53 二、减 1 这组指令的功能是把操作数的内容减 1 ,结 果再送回原单元。 这组指令仅 DEC A 影响 P标志。其余指令都 不影响标志位的状态。 1RiRi R i 1d i r e c td i r e c t d i r e c t 1RnRn R n 1AA A D E C )();( )(; )(; )(; 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 54 3.4.3 乘法 MUL AB ;累加器 A与 B寄存器相乘 该指令的 功能 是将累加器 A与寄存器 B中的无 符号 8位二进制数相乘 ,乘

45、积的低 8位留在累加器 A中,高 8位存放在寄存器 B中。 当乘积大于 FFH时,溢出标志位( OV) =1。而 标志 CY总是被清 0。 例 若( A) =50H,( B) =A0H,执行指 令 MUL AB 之后, ( A) =00H,( B) =32H,( OV) =1, ( CY) =0。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 55 3.4.4 除法 DIV AB;累加器 A除以寄存器 B 该指令的 功能 是将累加器 A中的无符号 8位二进 制数除以寄存器 B中的无符号 8位二进制数 , 商的 整数部分存放在累加器 A中,余数部分存放在寄存 器 B中。 当

46、除数为 0时,则结果的 A和 B的内容不定,且 溢出标志位( OV) =1。而标志 CY总是被清 0。 例 若( A) =FBH( 251),( B) =12H ( 18),执行指令 DIV AB 之后, ( A) =0DH,( B) =11H, ( OV) =0,( CY) =0。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 56 MOV 23H,#30H MOV 12H,#34H MOV R0,#23H MOV R7,#22H MOV R1,#12H MOV A,R0 MOV 34H,R1 (23H)=30H (12H)=34H (R0)=23H (R7)=22H

47、(R1)=12H (A)=30H (34H)=34H 执行程序前 sp=07H 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 57 MOV 45H,34H MOV DPTR,#6712H MOV 12H,DPH MOV R0,DPL MOV A,R0 PUSH 12H PUSH 45H POP 60H POP 70H (45H)=34H (DPTR)=6712H (12H)=67H (R0)=12H (A)=67H (08H)=67H (09H)=34H (60H)=34H (70H)=67H (12H)=67H (45H)=34H 西安理工大学课堂教学讲稿 指令系统 2

48、020年 11月 6日星期五 58 3.5 逻辑运算与循环类指令( 24条) 逻辑运算指令 可以完成与、或、异或、清 0和取反操作,当以累加器 A为目的操作数时, 对 P标志有影响; 循环指令 是对累加器 A的循环移位操作, 包括左、右方向以及带与不带进位位等移位方 式,移位操作时,带进位的循环移位对 CY和 P 标志有影响; 累加器清 0操作对 P标志有影响。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 59 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 60 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 61 3.5.1

49、逻辑与 前 2条指令的功能是把源操作数与直接地址指示的 单元内容相与,结果送入直接地址指示的单元。 后 4条指令的功能是把源操作数与累加器 A的内容相 与,结果送入累加器 A中。 例 若( A) =C3H,( R0) =AAH,执行指令 ANL A, R0 之后, ( A) =82H。 d a t ad i r e c td i r e c t d a t a# Ad i r e c td i r e c t A d i r e c t ANL )(; )()(;, d a t aAA d a t a# RiAA R i d i r e c tAA d i r e c t RnA A R n

50、A ANL )(; )()(; )()(; )()(; , 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 62 前 2条指令的功能是把源操作数与直接地址指示的单 元内容相或,结果送入直接地址指示的单元。 后 4条指令的功能是把源操作数与累加器 A的内容相或, 结果送入累加器 A中。 例 若( A) =C3H,( R0) =55H,执行指令 ORL A, R0 之后, ( A) =D7H。 3.5.2 逻辑或 d a t ad i r e c td i r e c t d a t a# Ad i r e c td i r e c t A d i r e c t OR L )

51、(; )()(;, d a t aAA d a t a# RiAA R i d ir e c tAA d ir e c t RnA A R n A O R L )(; )()(; )()(; )()(; , 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 63 3.5.3 逻辑异或 d a t ad i r e c td i r e c t d a t a# Ad i r e c td i r e c t A d i r e c t XR L )(; )()(;, d a t aAA d a t a# RiAA R i d i r e c tAA d i r e c t R

52、nA A R n A X R L )(; )()(; )()(; )()(; , 前 2条指令的功能是把源操作数与直接地址指示的单元内 容异或,结果送入直接地址指示的单元。 后 4条指令的功能是把源操作数与累加器 A的内容异或, 结果送入累加器 A中。 例 若( A) =C3H,( R0) =AAH,执行指令 XRL A, R0 之后, ( A) =69H。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 64 CL R A CPL 3.5.4 累加器清 0和取反 ; A 0 ; A A 这两条指令的功能分别是把累加器 A的内容清 0 和取反,结果仍在 A中。 例 若( A

53、) =A5H,执行指令 CLR A 之后, ( A) =00H。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 65 3.5.5 累加器循环移位 RR RRC A RL R L C S F R R R A S F R R L A S F R R R C A S F R R L C A P S W P S W P S W P S W A A A A A 7 A 0 C Y C Y A 7 A 0 C Y A 7 A 0 C Y A 7 A 0 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 66 有时 “ 累加器 A内容乘 2”的任务可以 利用指令 RL

54、C A方便地完成。 例:若( A) = BDH = 1011 1101B,( CY) 0。执行指令 RLC A后,( CY) =1,( A) = 0111 1010B = 7AH,( CY) 1。 结果为: 17AH( 378) 2 BDH( 189)。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 67 3.6 位操作类指令( 17条) 位操作 又称布尔操作,它是 以位为单位进行的各种操 作 。位操作指令中的位地址有 4 种表示形式: 直接地址方式(如, 0D5H); 点操作符方式(如, 0D0H.5、 PSW.5等); 位名称方式(如, F0); 伪指令定义方式(如,

55、 MYFLAG BIT F0)。 以上几种形式表示的都是 PSW中的位 5。 与字节操作指令中累加器 ACC用字符 “ A”表示类似的 是,在位操作指令中,位累加器要用字符 “ C”表示(注: 在位操作指令中 CY与具体的直接位地址 D7H对应)。 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 68 1 1 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 69 MOV bit, C ; bit ( CY) MOV C , bit ; CY ( bit) 这两条指令可以实现指定位地址中的内容与位累加器 CY的内 容的相互传送。 例 若( CY) =1,(

56、 P3) =1100 0101B,( P1) =0011 0101B。执行以下指令: MOV P1.3, C MOV C, P3.3 MOV P1.2, C 结果为:( CY) =0, P3的内容未变, P1的内容变为 0011 1001B。 3.6.1 位传送 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 70 一、位清 0 这两条指令可以实现位地址内容和位累加 器内容的清 0。 例 若( P1) =1001 1101B。执行指令 CLR P1.3 后,结果为: ( P1 )=1001 0101B。 3.6.2 位状态设置 0b i t b i t 0CY C C L R ; ; 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星期五 71 二、位置位 这两条指令可以实现地址内容和位累加器 内容的置位。 例 若( P1) =1001 1100B。执行指令 SETB P1.0 后,( P1) 1001 1101B。 1b i t b i t 1CY C S E T B ; ; 西安理工大学课堂教学讲稿 指令系统 2020年 11月 6日星

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!