四川工程职业技术学院 单片机应用技术课程电子教案 第6讲 51单片机指令格式及指令系统 Copyright Http:llmcu. scetc. net
四川工程职业技术学院 单片机应用技术课程电子教案 Copyright © Http://mcu.scetc.net 第 6 讲 51单片机指令格式及指令系统
本讲主要内容: 51单片机汇编语言的指令格式 6-2.指令表的查阅方法和指令功能的描述 6-3.几种不同的寻址方法 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 2 Copyright © Http:// mcu.scetc.net 本讲主要内容: 6-1. 51单片机汇编语言的指令格式 6-2. 指令表的查阅方法和指令功能的描述 6-3. 几种不同的寻址方法
6-1.51单片机汇编语言的指令格式 ◇一个简单的彩灯设计 下图中的8个发光二极管代表8组彩灯,让它们按你的想法显示吧 c110 RESET C2 30PF ALEP WR C3 30PF D EAtP TO p17 p16 p12 图3-1彩灯电路 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 3 Copyright © Http:// mcu.scetc.net 6-1. 51单片机汇编语言的指令格式 一个简单的彩灯设计 下图中的8个发光二极管代表8组彩灯,让它们按你的想法显示吧 图3-1 彩灯电路
6-1.51单片机汇编语言的指令格式 ◇汇编语言程序 758l58 7589ll MAIN: MOV SP, #60H 初始化 C28A MOV TMOD #IlH C288 787F CLR ITI 797C CLR ITO 程序何地 7600 MOVRO,#7FH MOVRI #7CH 开 F发软件 DOFB SET MOV (RO, #OOH 清除数据区 90A000 DEC RO D297 DJNZRI, MAINI MOV DPTR#PORT 8279控制口 SETB PL.7 PHILIPS 编程器 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 4 Copyright © Http:// mcu.scetc.net 6-1. 51单片机汇编语言的指令格式 汇编语言程序 MAIN: MOV SP , #60H ;初始化 MOV TMOD , #11H CLR IT1 CLR IT0 MOV R0 , #7FH MOV R1, #7CH SET: MOV @R0 , #00H ;清除数据区 DEC R0 DJNZ R1,MAIN1 MOV DPTR,#PORT ;8279控制口 SETB P1.7 758158 758911 C28A C288 787F 797C 7600 18 D9FB 90A000 D297 程序是如何进 单片机的? 编程器 开发软件
6-1.51单片机汇编语言的指令格式 ◇51单片机指令格式 程序片段 机器码 MOV SCON,#00H;SCON←00H,串口工作于方式0 759800 MOV SBUF,A;将SBUF←(ACC) F599 wAI0:JCT,WAr0;发送完一个字节吗? 2099FD CLR TI ;清除T中断标志 C299 INC A 04 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 5 Copyright © Http:// mcu.scetc.net 6-1. 51单片机汇编语言的指令格式 51单片机指令格式 程 序 片 段 机 器 码 MOV SCON,#00H ;SCON←00H,串口工作于方式0 MOV SBUF,A ;将SBUF←(ACC) WAIT0:JC TI,WAIT0 ;发送完一个字节吗? CLR TI ;清除TI中断标志 INC A 75 98 00 F5 99 20 99 FD C2 99 04
6-1.51单片机汇编语言的指令格式 ◇汇编语言指令格式 [标号]:操作码[操作数];[注释] WAIT0:JCT1,WAI0;发送完一个字节吗? ◇标号又称为指令地址符号。对标号有如下规定: ◇一般由1~8个ASC字符组成,以字母开头,其余字符可以是字母、数字和其他特定字符。 ◇不能使用助记符、伪指令或者寄存器的符号名称做标号。 ◇与操作码之间用冒号分开,带方括号表示为可选项。 ◇一个标号只能在程序中出现一次,不能重复出现。 ◇操作码是由助记符表示的字符串,它规定了指令要完成的具体操作。 ◇操作数是指参加操作的数据或数据的地址。 ◇注释是为该条指令所做的说明,以便于阅读,中英文不限,用“;”和 指令分开。 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 6 Copyright © Http:// mcu.scetc.net 6-1. 51单片机汇编语言的指令格式 汇编语言指令格式 [标号]: 操作码 [操作数] ;[注释] ↓ ↓ ↙ ↘ ↓ WAIT0 : JC TI, WAIT0 ;发送完一个字节吗? 标号 又称为指令地址符号。对标号有如下规定: 一般由1~8个ASCII字符组成,以字母开头,其余字符可以是字母、数字和其他特定字符。 不能使用助记符、伪指令或者寄存器的符号名称做标号。 与操作码之间用冒号分开,带方括号表示为可选项。 一个标号只能在程序中出现一次,不能重复出现。 操作码 是由助记符表示的字符串,它规定了指令要完成的具体操作。 操作数 是指参加操作的数据或数据的地址。 注 释 是为该条指令所做的说明,以便于阅读,中英文不限,用“ ; ”和 指令分开
6-1.51单片机汇编语言的指令格式 ◇51单片机汇编语言指令分类 分类方法 按指令占用的RoM空间 按指令功能 按指令执行的时间 数算‖逻控 单双 双 四 字字字 楼运转操 周 周 节节节 期期 指指指 单周期指令 指指 令令 指指指指損 令 令令 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 7 Copyright © Http:// mcu.scetc.net 分类方法 6-1. 51单片机汇编语言的指令格式 51单片机汇编语言指令分类 按指令占用的ROM 空间 双 字 节 指 令 单 字 节 指 令 三 字 节 指 令 按指令执行的时间 双 周 期 指 令 单 周 期 指 令 四 周 期 指 令 按指令功能 控 制 转 移 类 指 令 逻 辑 运 算 类 指 令 位 操 作 类 指 令 算 术 运 算 类 指 令 数 据 传 送 类 指 令
6-1.51单片机汇编语言的指令格式 ◇汇编指令及其注释中常用的符号 ◇Rn(n=0~7)一当前选中的工作寄存器组中的寄存器R0~R7之 ◇Ri(i=0,1)一当前选中的工作寄存器组中的寄存器R0或R1 ◇@ 间址寄存器前缀 ◇#data 8位立即数 ◇#ata1616位立即数 ◇ direct 片内低128个RAM单元地址及SFR地址(可用符号名称表示) ◇addr11—11位目的地址 ◇addr16 16位目的地址 re 补码形式表示的8位地址偏移量,值在-128~+127范围内 ◇bit 片内RAM位地址、SFR的位地址(可用符号或名称表示) 位操作数的取反操作前缀 ◇(×)一 表示×地址单元或寄存器中的内容 ◇((×)) 一-表示以×单元或寄存器内容为地址单元的内容 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 8 Copyright © Http:// mcu.scetc.net 6-1. 51单片机汇编语言的指令格式 汇编指令及其注释中常用的符号 Rn(n=0~7)------当前选中的工作寄存器组中的寄存器R0~R7之一 Ri(i=0,1)------当前选中的工作寄存器组中的寄存器R0或R1 @ ---------------间址寄存器前缀 #data ------------8位立即数 #data16-----------16位立即数 direct------------片内低128个RAM单元地址及SFR地址(可用符号名称表示) addr11------------11位目的地址 addr16------------16位目的地址 rel---------------补码形式表示的8位地址偏移量,值在-128~+127范围内 bit---------------片内RAM位地址、SFR的位地址(可用符号或名称表示) /-----------------位操作数的取反操作前缀 (×)------------表示 × 地址单元或寄存器中的内容 ((×))--------表示以 × 单元或寄存器内容为地址单元的内容
6-2.指令表的查阅 ◇从指令表中可以得到的信息 ◇指令名称——指令的书写规范 ◇机器代码——指令在单片机中的存储内容 ◇指令功能—指令的执行效果 ◇指令的字节数—指令的长度(所占存储单元的个数) ◇指令周期—指令的执行时间(以机器周期为单位) SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 9 Copyright © Http:// mcu.scetc.net 6-2. 指令表的查阅 从指令表中可以得到的信息 指令名称——指令的书写规范 机器代码——指令在单片机中的存储内容 指令功能——指令的执行效果 指令的字节数——指令的长度(所占存储单元的个数) 指令周期——指令的执行时间(以机器周期为单位)
6-2.指令表的查阅 ◇指令表的作用 ◇用于修改指令中的语法错误。 例如:查找指令MOVR8,#30中的语法错误。 语法错误一般会出现在标号处(标号过长、标号名称重复)、操作码处 (操作码使用不当、书写错误)、操作数处(操作数使用不当、书写错 误)、符号错误等处。 本条指令中操作数R8是错误的,在指令表中词条指令的格式为 MOV Rn,#data,其中Rn代表R0~R7,并没有R8 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 10 Copyright © Http:// mcu.scetc.net 6-2. 指令表的查阅 指令表的作用 用于修改指令中的语法错误。 例如:查找指令MOV R8,#30中的语法错误。 语法错误一般会出现在标号处(标号过长、标号名称重复)、操作码处 (操作码使用不当、书写错误)、操作数处(操作数使用不当、书写错 误)、符号错误等处。 本条指令中操作数R8是错误的,在指令表中词条指令的格式为: MOV Rn,#data,其中Rn代表R0~R7,并没有R8