
单片机原理及应用Principle and application of MCU计算机编程语言发展高级语言汇编语言机器语言用特定语法结构商表达■用助记符表达理解容易■代码难懂■开发效率高1用0和1表达■开发效率低1不可被CPU执行阅读困难■不可被CPU执行1开发效率极低1可以被CPU执行
单片机原理及应用 Principle and application of MCU 计算机编程语言发展 机器语言 汇编语言 高级语言 ◼ 用0和1表达 ◼ 用特定语法结构 表达 ◼ 用助记符表达 ◼ 阅读困难 ◼ 开发效率极低 ◼ 可以被CPU执行 ◼ 代码难懂 ◼ 开发效率低 ◼ 不可被CPU执行 ◼ 理解容易 ◼ 开发效率高 ◼ 不可被CPU执行

单片机原理及应用Principleand application of MCu本讲内容提要:汇编语言的程序设计框架指令系统三、汇编语言程序设计重点难点指令系统二、三、汇编语言程序设计
单片机原理及应用 Principle and application of MCU 本讲内容提要: 一、汇编语言的程序设计框架 二、指令系统 三、汇编语言程序设计 重点难点 二、指令系统 三、汇编语言程序设计

单片机原理及应用Principleand application of McU汇编程序设计框架ORG0000h程序开始MAIN:程序主体$SJMP程序结束END汇编语言语句可分为两大类:指示性语句(伪语句)和指令性语句(指令语句)
单片机原理及应用 Principle and application of MCU 一、汇编程序设计框架 ORG 0000h MAIN: SJMP $ END 程序结束 程序主体 程序开始 汇编语言语句可分为两大类:指示性语句(伪语句)和指令性语句(指令语句)

单片机原理及应用Principle and application of MCU认识完整案例代码(问题导向一引出后续讲课内容)ORG0000h;程序开始20H,MAIN:MOV#11H22HMOV21H,#22H21HA,MOV20H20HA,21HADD;执行加MOV22H, A基本RAM$SJMPEND程序结束
单片机原理及应用 Principle and application of MCU ORG 0000h ;程序开始 MAIN:MOV 20H, #11H MOV 21H, #22H MOV A, 20H ADD A, 21H ;执行加 MOV 22H, A SJMP $ END ;程序结束 20H 21H 22H 认识完整案例代码 (问题导向—引出后续讲课内容) 基本RAM

单片机原理及应用Principle and application of MCU1、汇编语言语句的格式(1)伪语句伪指令[标号:】[;注释]ORG0000HP89-93(2)指令语句----汇编语言的重点学习[标号:]操作码[操作数][;注释]P363P62-88
单片机原理及应用 Principle and application of MCU 1、汇编语言语句的格式 [标号:] 操作码 [操作数] [;注释] [标号:] 伪指令 [;注释] (1)伪语句 (2)指令语句-汇编语言的重点学习 ORG 0000H P62 P363 -88 P89-93

单片机原理及应用PrincipleandapplicationofMCu2、伪指令P89-93在汇编时起控制作用,自身并不产生机器码而仅是为汇编服务的一些指令,称为伪指令。伪指令不属于51指令系统。告诉汇编程序在翻译应用程序时有何具体约定。伪指令不进行具体的操作,那是真指令的事。比如:从何处开始,何处结束,某些编程者自己规定的表述代表什么意思
单片机原理及应用 Principle and application of MCU 在汇编时起控制作用,自身并不产生机器码, 而仅是为汇编服务的一些指令,称为伪指令。伪指 令不属于51指令系统。 告诉汇编程序在翻译应用程序时有何具体 约定。伪指令不进行具体的操作,那是真指 令的事。 比如:从何处开始,何处结束,某些编程 者自己规定的表述代表什么意思. 2、伪指令 P89-93

单片机原理及应用Principle and applicationof MCU常用的伪指令有以下几种---汇编起始地址命令1. ORG(Origin)2.END(ENDofassembly)----汇编终止命令3. DB (Define Byte)定义字节命令4. DW (Define Word)定义字命令5. DS (Define Space)留空间命令6. EQU
单片机原理及应用 Principle and application of MCU 1. ORG(Origin) -汇编起始地址命令 2.END(END of assembly)-汇编终止命令 3.DB (Define Byte) -定义字节命令 4.DW(Define Word) -定义字命令 5.DS (Define Space) -留空间命令 6. EQU 常用的伪指令有以下几种:

单片机原理及应用PrincipleandapplicationofMCu指令系统二、1、什么是指令?指挥单片机完成各种操作(数据传送指令、算术运算指令、位运算指令、程序流程控制指令等)的命令称指令单片机能够给识别的指令的全体称之为指令系统。2、指令系统分类51系列单片机指令系统中包含有111条指令。(1)按指令长度分类:单字节指令(49条);双字节指令(46条):3字节指令(16条)(2)按指令执行时间分类:单周期指令(64条):双周期指令(45条):4周期指令(2条)(3)按指令功能分类(29条)(24条)数据传送类;算术运算类;P363(24条)(17条)逻辑运算类;控制转移类;位操作类。(17条)
单片机原理及应用 Principle and application of MCU 指挥单片机完成各种操作(数据传送指令、算术运算 指令、位运算指令、程序流程控制指令等)的命令称指令。 单片机能够给识别的指令的全体称之为指令系统。 二、指令系统 1、什么是指令? 2、指令系统分类 51系列单片机指令系统中包含有111条指令。 P363 ⑴ 按指令长度分类: 单字节指令(49条);双字节指令(46条);3字节指令(16条) ⑵ 按指令执行时间分类: 单周期指令(64条);双周期指令(45条);4周期指令(2条) ⑶ 按指令功能分类: 数据传送类;(29条) 算术运算类; (24条) 逻辑运算类;(24条) 控制转移类; (17条) 位操作类。 (17条)

单片机原理及应用PrincipleandapplicationofMCU3、指令的格式一条指令通常由两个部分组成:操作码和操作数。指令=操作码十操作数操作码一一表明指令的操作功能(即表明指令进行何种操作)操作数一一表明指令参与操作的有关数据或地址P58操作码(1)(2) :操作数操作码(3) 操作码操作数1,操作数2(4)操作码操作数1,操作数2,操作数3例:NOP空操作指令ASWAP;交换指令MOVA,#40H;数据传递CJNEA,20H,LOOP1;数据比较转移指令
单片机原理及应用 Principle and application of MCU 一条指令通常由两个部分组成:操作码和操作数。 指令 = 操作码 + 操作数 操作码——表明指令的操作功能(即表明指令进行何种操作 ) 操作数——表明指令参与操作的有关数据或地址 3、 指令的格式 (1) 操作码 (2) 操作码 操作数 (3) 操作码 操作数1, 操作数2 (4) 操作码 操作数1, 操作数2, 操作数3 例: NOP ;空操作指令 SWAP A ;交换指令 MOV A,#40H ;数据传递 CJNE A, 20H,LOOP1 ;数据比较转移指令 P58

4、指令系统中常用的符号Rn一一工作寄存器R0~R7(n=0~7)Ri一一间接寻址寄存器RO、R1(i=0、1)Direct一一直接地址,包括内部128BRAM单元地址、21个SFR地址data一一8位常数(8位立即数,即包含在指令中的8位常数)#data16一一16位常数(16位立即数,即包含在指令中的16位常数)addr16一一16位目的地址addr11一一11位目的地址rel-一以补码形式表示的8位相对偏移量,范围为-128~127,主要用在相对寻址的指令中。DPTR一一16位外部数据指针寄存器bit一一可直接位寻址的位A -一累加器P59B寄存器BC (CY进、借位标志位,或位累加器间接寄存器或基址寄存器的前缀a表示对该位操作数取反,但不影响该位的原值操作流程,将箭尾一方的内容送入箭头所指另,一方的单元中去,一x中的内容(x) ) :一x中的地址中的内容6一当前指令存放的地址
4、指令系统中常用的符号 单片机原理及应用 Principle and application of MCU Rn —— 工作寄存器R0 ~ R7(n=0~7) Ri —— 间接寻址寄存器R0、R1(i=0、1) Direct —— 直接地址,包括内部128B RAM单元地址、21个SFR地址 #data —— 8位常数(8位立即数,即包含在指令中的8位常数) #data 16 —— 16位常数(16位立即数,即包含在指令中的16位常数) addr 16 —— 16位目的地址 addr 11 —— 11位目的地址 rel ——以补码形式表示的8位相对偏移量,范围为-128~127,主要用在相对寻址的指令中。 DPTR —— 16位外部数据指针寄存器 bit —— 可直接位寻址的位 A —— 累加器 B —— 寄存器B C(CY)—— 进、借位标志位,或位累加器 @ —— 间接寄存器或基址寄存器的前缀 / ——表示对该位操作数取反,但不影响该位的原值。 → ——操作流程,将箭尾一方的内容送入箭头所指另一方的单元中去。 (x)—— x中的内容 ((x))—— x中的地址中的内容 $ —— 当前指令存放的地址 P59