单片机讲义课件第三章
又如 JZ rel ;功能:先调整程序指针,即 PC←(PC)+2,再进行判断:若(A)=0,则跳转到 PC=((PC)+rel)的程序地址处。机器码为:
第一字节 0 1 1 0 0 0 0 0 操作码(60H) 第二字节 rel 操作数(相对偏移量)
3.1 概述
三字节指令 三字节指令的编码由三个字节组成,第一字节为操
址的单元中。
3.280C51单片机寻址方式
3.2 80C51单片机寻址方式
寻址方式:根据指令中给出的地址寻找真实操作数 地址的方式。
80C51单片机共有7种寻址方式。
一、立即寻址
指令操作码后的一个字节是实际操作数本身。该操 作数直接参与操作,又称立即数,用符号“#”表示
可以为工作寄存器名、SFR名、标号名、常数、表 达式等,用以表示操作数地址;
根据指令功能的不同,操作数可以有一个、两个、 三个或者没有,操作数之间用“,”分开;
分为目的操作数和源操作数两种; 为使操作数区段出现的字符和16进制数区别开来, 在以字母开头的16进制数前加0,如将FFH写成 0FFH(H表示此数为16进制数,二进制用B表示,十进 制用D表示或省略)。
以冒号结尾; 不能用指令助记符、伪指令或寄存器名来做标号
名; 标号是任选的,只在需要时才设标号; 一旦使用了某标号定义一地址单元,在程序的其
他地方就不能随意修改这个定义,也不能重复定义。
3.1 概述
“操作码”
指令或伪指令的助记符,用来表示指令的性质。对 于一条汇编语言指令,这一字段是必不可少的。
“操作数”
令中,偏移量以下一条指令第一字节地址为基址,偏 移量范围为-128~+127; (12) bit:内部RAM或SFR的直接寻址位地址
3.1 概述
(13) @:间址寄存器或基址寄存器前缀; (14) /:位操作指令中,表示对该位先求反再参与操作,
但不影响原值; (15) (X):表示X地址中的内容; (16) ((X)):表示以X地址单元中内容为地址的单元中数; (17) X←Y:把Y单元中内容赋给X地址单元中; (18) (X)←Y:把Y单元中内容赋给以X地址中内容为地
1 1 1 0 0 1 1 i (E6H~E7H)
3.1 概述
双字节指令 编码由两个字节组成,存放在存储器中占两个存储
单元。 例如 MOV A,#data; 功能:把立即数#data送
到A中,机器码为: 第一字节 0 1 1 1 0 1 0 0 操作码 (74H) 第二字节 #data 操作数(立即数)
单片机课件第三章
3.1 概述
3.1 概述
一、指令系统与编程 1、指令
计算机进行某种操作的代码形式。 2、指令系统
一台计算机所能识别的全部指令。 3、程序
使计算机完成某种任务的一系列指令。
3.1 概述
二、 汇编语言与机器语言 1、机器语言 计算机能直接识别的由0和1组成的二进制编码指
令,这种编码称为机器码。 特点: 记忆、书写、编程很不方便,不易理解,容易出
3.1 概述
“注释” 对指令的解释,可有可无。良好的注释是
汇编语言程序编写中的重要组成部分。
3.1 概述
四、指令代码格式 1、指令代码(即机器语言) 指令的二进制数表示方法,是指令在存储器存储
的形式。 2、根据指令代码的长度,80C51的指令可分为: 单字节指令 由8位二进制编码表示。有两种形式: (1) 8位全表示操作码。 例如,空操作指令NOP,机器码为:00000000
作码,第二、三字节为操作数,存放在存储器中占三 个存储单元。
例如 MOV direct,#data 功能:把立即数#data送到直接地址direct中,机器 码为:
第一字节 0 1 1 1 0 1 0 1 操作码(75H) 第二字节 direct 操作数(直接地址) 第三字节 #data 操作数(立即数)
(6) direct:表示可以直接寻址的内部RAM地址或SFR 地址;
(7) #data:包含在指令中的8位立即数; (8) #data16:包含在指令中的16位立即数; (9) addr16:16位目的地址; (10) addr11:11位目的地址; (11) rel:补码形式的8位地址偏移量。用于相对转移指
第三章 80C51单片机指令系统--- 3.1 概述
(பைடு நூலகம்) 8位编码中包含操作码和寄存器编码。 例如 MOV A,Rn ;
功能:把Rn中的内容送到A中,机器码为: 1 1 1 0 1 ← n → (E8H~EFH)
又如 MOV A,@Ri ; 功能:把间址寄存器Ri中的内容为地址的单元中内容 送到A中,其机器码为:
3.1 概述
结论: 无论是哪种指令,其第一个字节均为操作码,它
确定了指令的功能;其他的字节为操作数,指出了被 操作的对象,指明了参与操作的数据或数据所存放的 地址。
学会初步判断指令代码长度的方法,对于正确应 用指令系统是非常有益的。
3.1 概述
3、指令代码长度的初步确定
(1)操作码是一定要占一个字节; (2)80C51在进行指令编码时,掌握的原则是尽量简 单、短、具有规律性。因此,通常将作操作数的固定 不变的寄存器隐含到操作码中(如A,B,Rn,DPTR 等); (3)通常将作操作数的间址寄存器Ri,DPTR隐含到 操作码中; (4)通常8位立即数#data,直接地址direct,相对 偏移量rel单独占一个字节。 通过指令系统的学习,逐步了解、掌握确定指令代 码长度的方法。
错。 2、汇编语言 用助记符(操作码)、符号地址(操作数)、标号等符
号表示指令的功能和特征。 特点: 便于记忆、理解、分类和编程。
3.1 概述
三、汇编语言格式 1、汇编语句 由4部分构成。 [标号:] 操作码 [操作数] [;注释] 2、各部分作用 “标号” 该指令的符号地址,根据需要设定。 标号是以字母开始,由1~8个字母或数字串组成,
3.1 概述
五、指令中常用符号 (1) A:累加器ACC; (2) B:寄存器B; (3) C:进(借)位标志位,在位操作指令中作为位累
加器使用; (4) Rn:当前选中的工作寄存器组的8个寄存器
R0~R7; (5) Ri:当前选中的工作寄存器组中作为寄存器间接
寻址的2个寄存器R0、R1;
3.1 概述