




已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3 1指令系统概述 3 2MCS 51指令的寻址方式 3 3MCS 51指令系统介绍 下页 一台计算机所能执行的全部的指令集合 3 1指令系统概述 指令是计算机中具有特定功能的操作命令 程序与程序设计 按预定要求编排的指令序列称为程序 编排的过程称为程序设计 指令系统 设计一种CPU 一般从设计指令系统开始 因而 一种机器的指令系统是机器本身固有的 决定了机器的性能 用户无法改变 必须继承 学习 掌握 应用 上页 下页 回目录 机器语言 二进制代码 是机器唯一能直接识别 执行的语言 汇编语言 为了记忆和阅读方便 制造商对指令系统每一条指令 都给出了指令助记符 用助记符 操作数 标号编写的程序称为汇编语言源程序 一 汇编语言 汇编语言必须翻译成机器语言才能被机器执行 程序设计语言 汇编语言 高级语言 符号语言 上页 下页 回目录 如P55 图3 1所示 全是机器码 完成由汇编语言到机器代码的过程叫汇编 汇编的方法有两种 自动汇编 手工汇编 由机器代码到汇编语言的过程叫反汇编 汇编语言源程序 机器语言 二进制代码 汇编 反汇编 上页 下页 回目录 MCS 51交叉汇编 二 汇编语言的格式 标号 操作码 操作数 注释 其中除操作码部分是必须的 括号内的区段是任选项 1 标号 标号是该指令的符号地址 可根据需要设定 必须以字母开始 以 结束 长度不超过8个字符 系统中的保留字符不能作标号 如 SFR名 ADD等 标号可被其他语句的操作数直接引用源程序中 一个标号只能定义一个语句 不能相重 保持一义性 上页 下页 回目录 一个汇编语句分为四个区段 操作码 操作码 操作码 2 操作码 由指令系统的助记符 伪指令助记符组成 操作码是每一句汇编语言所必须的 操作码和操作数之间用空格分开 3 操作数 可为二进制数 B 十进制数 D 十六进制数 H 数字大于9 则数字应以 0 开头 如 0AFH 可以是操作数地址 立即数 标号 表达式如M 3 目的操作数和源操作数之间用 分开 可以是寄存器名如A B R DPTR M 标号 被定义过的 上页 下页 回目录 Binary Decimal Hexadecimal 指出该语句的操作性质 4 注释 以 开头 是程序员对指令操作的解释 以帮助阅读 理解程序的意义 可有可无 汇编时对这部分不予处理 不译成任何机器代码 可用英语或某种简洁的方式解释指令 或打印程序清单 上页 下页 回目录 三 伪指令 1 起点指令ORG 格式 ORG H 功能 给程序起始地址或数据块的起始地址赋值 例 用法 一般出现在每段源程序或数据块的开始一个源程序可多次出现ORG指令 上页 下页 回目录 首地址 首地址 2 结束命令END 格式 END 功能 汇编程序结束标志 附在一个源程序的结尾一个源程序只能出现一次END指令 3 定义字节命令DB 格式 功能 标号 DB字节常数或字符串 8位 定义字节的内容 汇编程序把DB定义的字节依次存入标号开始的存储单元 用法 有定义的内存单元地址 项或项表 上页 下页 回目录 例 伪指令ORG定义了数据块TAB的起始地址为8000H伪指令DB定义了8000H 8003单元的内容依次为 8000H 45H 8001H 49H 8002H 35H 8003H 41H 8004H 05H TAB TAB1 1 由ORG定义 2 跟在其他源程序之后 上页 下页 回目录 4 定义字命令DW 格式 功能 标号 DW字或字表 定义若干个字 双字节 例 ORG8000H TAB DW7234H 8AH 10 8000H 72H 8001H 34H 8002H 00H 8003H 8AH 8005H 0AH 汇编后 8004H 00H 上页 下页 回目录 5 定义空间命令DS 格式 功能 标号 DS数据或字符及表达式 例 8008H 30H 8009H 8AH 从指定单元地址开始 由数据或字符及表达式的值来定义应保留的单元数 备用 即 8000H 8007H单元保留备用 定义空间 上页 下页 回目录 6 等值命令EQU 格式 字符名称EQU数据或汇编符号 功能 将一个数据或汇编符号赋予标号段规定的字符名称 例 AA与R6等值 上页 下页 回目录 例 A10EQU10DELYEQU07EBHMOVA A10LCALLDELY A10 10 DELY 07EBH 转向入口地址07EBH 使用EQU指令 须先赋值后使用 不能反之 上页 下页 回目录 7 数据地址赋值等值命令DATA 格式 字符名称DATA数据或表达式 功能 此命令把数据 代码地址赋予标号段所规定的字符名称 定义的字符名称可先使用后定义 INDEXJDATA8389H INDEXJ这个字符名称的地址为8389H 例 上页 下页 回目录 等价于 EQU与DATA的区别 1 DATA与EQU相似 但DATA定义的字符名称 可先使用后定义 EQU则不能 2 EQU指令可把汇编符号赋给字符名称 DATA则不能 3 DATA可把表达式的值赋给字符名称 EQU则不能 DATA常在程序中定义数据地址EQU常在程序中定义字符数据 上页 下页 回目录 8 位地址符号命令BIT 格式 字符名称BIT位地址 功能 把位地址赋予标号段的字符名称 P1 0 P2 0赋予位地址字符名称A1 A2 在编程时可以直接把A1 A2当成位地址使用 上页 下页 回目录 汇编程序的操作 分两次扫描 汇编 第一次扫描 汇编 检查语法结构 对源程序中的符号 表达式 标号进行定义 处理伪指令 建立符号表 上页 下页 回目录 显示ERROR 并提示行号 显示ERROR 并提示行号 修改 修改 第二次扫描 汇编 汇编成目标代码和汇编程序清单 可执行的代码 机器码 三 MCS 51指令系统的特点 1 执行速度快 存储效率高 MCS 51指令系统共有111条指令 按字节分 单字节指令49条 双字节指令45条 三字节指令17条 按周期分 单周期指令64条 双周期指令45条 四周期指令2条 设时钟频率为12MHz 则指令执行的时间分别为 1 s58 2 s40 4 s2 占居空间 占居时间 上页 下页 回目录 硬件由221位构成 2 指令易掌握 功能强 3 适合于控制 智能仪表 布尔处理机 布尔运算器ALU 布尔累加器CY PSW 7 布尔RAM区共128位 布尔I O口 P0 P3口每位都可做布尔I O口 布尔指令子集 17条布尔指令 上页 下页 回目录 四 寻址方式 7种 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 基址寄存器加变址寄存器间接寻址 相对寻址 位寻址 上页 下页 回目录 数据传送 29条 算术运算 24条 逻辑运算 24条 控制转移 17条 布尔处理 17条 上页 下页 回目录 介绍描述指令符号的意义 当前选中寄存器区的8个工作寄存器 R0 R7 Rn Ri direct 8位内部RAM单元地址00H 7FH 专用特殊功能寄存器SFR的地址80H FFH 立即数 8位 data data16 立即数 16位 n 0 7 i 0 1 上页 下页 回目录 P61 addr16 16位目的地址 用于LCALL LJMP指令地址范围64KBROM空间 addr11 11位目的地址 用于ACALL AJMP指令地址范围2KBROM空间 rel DPTR 数据地址指针 可做16位间址寄存器 bit 内RAM或SFR中的直接位寻址 上页 下页 回目录 A 累加器 B 专用寄存器 用于MUL和DIV指令 C 位累加器 PSW 7 进位 借位标志 间址或基址寄存器前缀如 Ri A DPTR 位操作的前缀 表示对该位操作数取反 X X中的内容 X 由X寻址的单元中的内容 箭头左边的内容被箭头右边的内容所代替 DPTR A PC 上页 下页 回目录 3 2MCS 51指令的寻址方式 用何种方式寻找指令的操作数或指令的执行地址 1 立即寻址 寻址空间 指令形式 程序存储器 指令的操作数存放在程序存储器中 操作数紧跟操作码OP后面 立即寻址 在哪里 用何种方式寻找 OP data ImmediateAddressing 上页 下页 回目录 指令的寻址方式 指令的寻址方式 MOVA 30H 例1 30H MOVDPTR 8000H 例2 80H 00H 上页 下页 回目录 2 直接寻址 寻址空间 指令的三种形式 直接寻址 直接寻址是访问SFR的唯一方法 DirectAddressing 上页 下页 回目录 00H 7FH80H FFH CPU内部 直接间接 与 上页 下页 回目录 MOVA 30H 例1 ANL30H 30H 例2 结果 3 寄存器寻址 寻址空间 指令的三种形式 当前选定的寄存器内容就是实际操作数 MOVA R3 例1 ADDA R3 例2 寄存器寻址 RegisterAddressing 操作数隐含 操作数显然 隐含寻址 上页 下页 回目录 4 寄存器间接寻址 寻址空间 指令的三种形式 寄存器间接寻址 RegisterIndirectAddressing 上页 下页 回目录 MOV R0 A 例1 累加器传送指令 MOVXA DPTR 例2 读 读 上页 下页 回目录 5 基址寄存器加变址寄存器间接寻址 基址寄存器加变址寄存器间接寻址 以DPTR或PC作基址寄存器 A作变址寄存器两者相加形成操作数地址 寻址空间 程序存储器 A DPTR A PC 指令形式 上页 下页 回目录 MOVCA A DPTR 例 设 A 0FH DPTR 2400H 读 读 MOVCA A DPTR 上页 下页 回目录 6 相对寻址 程序存储器 寻址空间 指令的三种形式 相对寻址 以当前PC值为基准地址 加上指令的偏移量 rel 结果为目标地址 rel为有符号补码数 范围 128 127 一般为双字节或三字节指令 RelativeAddressing 上页 下页 回目录 寻址指令执行地址目标地址 JNZrel 例 累加器A不等零则转移设 rel 23H PC 2002H rel 23H 修正后转移目标地址D PC 2025H 上页 下页 回目录 PC 2002H Rel 23H 0 0 5 2 0 2 H D PC 2112H rel F2H 修正后转移目标地址D PC 2104H 上页 下页 回目录 例 DJNZR7 rel R7 1不为 0 则转 PC 2112H Rel F2H F F 4 0 1 2 H D 7 位寻址 寻址空间 片内RAM的20H 2FH字节地址位地址 00H 7FH请参看图2 15共128位 SFR中12个能被8整除的字节地址位地址请参看图2 16共93位 BitAddressing 以访问触发器的方式 对内部RAM SFR的位地址空间进行访问 称为位寻址 位地址用于布尔指令 上页 下页 回目录 请参看P43 专为布尔指令设计 寻址方式与相应的寻址空间 小结 上页 下页 回目录 P67 3 3MCS 51指令系统介绍 MCS 51系统指令系统共111条 按操作功能分类 数据传送类 算术运算类 逻辑运算类 控制转移类 布尔处理类 上页 下页 回目录 一 数据传送类 29条 用到的指令助记符有5种 片内传送MOV 片外传送MOVX 查表传送MOVC 累加器交换XCH XCHD SWAP 堆栈操作PUSH POP 上页 下页 回目录 1 MOV类传送指令 格式 MOV 目的字节 源字节 功能 把源字节内容送目的字节 源字节内容不变 以累加器A为目的字节的传送 例 立即数送累加器 MOVA data 上页 下页 回目录 MOVA Rn 例 寄存器内容送累加器 MOV类传送指令小结 上页 下页 回目录 P79MOV片内传送指令 MOV类传送指令小结 上页 下页 回目录 P79MOV片内传送指令 2 MOVX类传送指令 累加器A与外部RAM传送数据用MOVX 外部RAM送累加器A MOVXA Ri i 0 1 单字节指令 以Ri内容为外部RAM地址的单元中的数送A 累加器内容送外RAM MOVX Ri A i 0 1 累加器内容送以Ri内容为地址的外部RAM单元 单字节指令 上页 下页 回目录 外部RAM送累加器A MOVXA DPTR 单字节指令 以DPTR内容为地址的外部RAM单元中的数送A 累加器内容送外RAM MOVX DPTR A 累加器内容送以DPTR内容为地址的外部RAM单元 单字节指令 上页 下页 回目录 MOVX类传送指令小结 上页 下页 回目录 P80MOVX片外传送指令 例 将片外RAM120H单元的内容传送到片外RAM地址为78H的单元 MOVDPTR 0120H MOVXA DPTR MOVR0 78H MOVX R0 A 例 将片内RAM12H单元的内容传送到片内RAM地址为78H的单元 MOV78H 12H 外部RAM送累加器A 累加器内容送外RAM 上页 下页 回目录 3 MOVC类传送指令 MOVC类传送指令 均为基址加变址寄存器寻址 MOVCA A DPTR 单字节指令 以DPTR作基址加变址寻址 上页 下页 回目录 长查表指令 16位 MOVCA A PC 单字节指令 以PC作基址加变址寻址 上页 下页 回目录 短查表指令 MOVC类传送指令小结 上页 下页 回目录 P79MOVC查表传送指令 例 在外部ROM中存放0 9的平方值 根据累加器A中的数 0 9 查找对应的平方值 用DPTR作基址寄存器指向表格的首地址用A作变址寄存器实际上A中的值是表格中的第几项 上页 下页 回目录 09H 设 A 03H 查 3 的平方 上页 下页 回目录 用PC作基址寄存器 它并不指向表格首址 是PC当前值与所查表格首址之间的距离 即 PC data TABBEL表格首址 设 A 03H 是表格中的第3项 单字节指令 设指令在ROM中的地址为1FF0H ADDA data MOVCA A PC 000FH 上页 下页 回目录 data是变址调整值 TABBEL MOVCA A PC PC 1FF1H 09H 查 3 的平方 上页 下页 回目录 4 XCH XCHD SWAP类传送指令 寄存器内容与累加器内容交换 XCHA Rn n 0 7 内RAM或SFR内容与累加器内容交换 XCHA direct n 0 7 上页 下页 回目录 内RAM内容与累加器内容交换 XCHA Ri i 0 1 内RAM内容低4位与累加器低4位内容交换 XCHDA Ri i 0 1 上页 下页 回目录 累加器A高4位与低4位交换 SWAPA 上页 下页 回目录 交换类传送指令小结 上页 下页 回目录 P80都在CPU内部交换 5 堆栈操作指令 进栈指令 PUSHdirect direct地址单元的内容压入SP指向的单元 双字节指令 出栈指令 POPdirect SP指向的单元内容弹出到以direct为地址的单元 双字节指令 上页 下页 回目录 例 堆栈操作设 A 55H B 3FH 建立堆栈 压入操作 弹出操作 55H 3FH MOVSP 60H PUSHA PUSHB POPPSW 结果 PSW的内容3FH SP的内容为61H 上页 下页 回目录 PSW 3FH 二 算术运算类 24条 用到的指令助记符有8种 加法指令ADD ADDC INC DA 减法指令SUBB DEC 乘除指令MUL DIV 算术运算类指令执行结果影响标志位 CY AC OV 上页 下页 回目录 见P80表3 3 见P405 409表D 1 标志位 1 不带进位加ADD 例 累加器内容加立即数 ADDA data 双字节指令 例 累加器内容加寄存器内容 ADDA Rn n 0 7 单字节指令 上页 下页 回目录 ADD类指令小结 上页 下页 回目录 P90求和指令 2 带进位加ADDC 例 累加器内容加立即数加进位位 ADDCA data 双字节指令 例 累加器内容加寄存器内容加进位位 ADDCA Rn n 0 7 单字节指令 上页 下页 回目录 ADDC类指令小结 上页 下页 回目录 P90求和指令 带进位 无符号数相加 若和数大于255 则CY 1 否则CY 0 上页 下页 回目录 用于多字节无符号数相加 试分析执行下面的指令后 程序状态字PSW中CY AC OV的内容是什么 1 0 0 1 0 0 1 1 C9H 上页 下页 回目录 3 增量INC 例 累加器内容加 1 INCA 单字节指令 例 寄存器内容加 1 INCRn 单字节指令 上页 下页 回目录 INC类指令小结 上页 下页 回目录 P90增量指令 4 十进制调整指令 DAA 对累加器A 作BCD码加法后进行 过9补6 调整 注意 DA指令不能对BCD码减法的结果进行调整 单字节指令 上页 下页 回目录 ABCDEF 0123456789 BCD 上页 下页 回目录 合法 例设 A 37H R3 36H 执行下面的程序 00110111 37H 00110110 36H 6DH 01101101 过 9 00000110 01110011 补 6 73H A 6DH A 73H 01110011 73H 10011001 99H 100001100 0CH CY 01100110 01110010 72H A 0CHCY 1 A 72H 过 9 补 6 1101 1 1100 上页 下页 回目录 99 就等于减 1 互补 DAA只能跟在加法指令之后 5 减法指令SUBB 例 累加器减立即数和借位标志 SUBBA data 双字节指令 例 累加器减寄存器内容和借位标志 SUBBA Rn n 0 7 单字节指令 上页 下页 回目录 SUBB类指令小结 上页 下页 回目录 P90减法指令 带借位 6 减量DEC 例 累加器内容减 1 DECA 单字节指令 例 寄存器内容减 1 DECRn 单字节指令 上页 下页 回目录 DEC类指令小结 上页 下页 回目录 P90递减指令 7 MUL MULAB DIVAB 单字节指令 8 DIV 单字节指令 CY 0 上页 下页 回目录 三 逻辑运算类 24条 用到的指令助记符有9种 包括与 或 异或 清除 求反 移位等操作 ANL ORL XRL CLR CPL RL RLC RR RRC 上页 下页 回目录 1 逻辑与ANL 6条 例 累加器内容逻辑与立即数 ANLA data 双字节指令 例 累加器内容逻辑与寄存器内容 ANLA Rn n 0 7 单字节指令 上页 下页 回目录 CPU按位运算 ANL类指令小结 上页 下页 回目录 读 修改 写 P99逻辑运算指令 CPU按位运算 ORL类指令小结 上页 下页 回目录 读 修改 写 2 逻辑或ORL 6条 CPU按位运算 P99逻辑运算指令 XRL类指令 上页 下页 回目录 读 修改 写 3 逻辑异或XRL 6条 按位运算 相异为 1 相同为 0 P99逻辑运算指令 CPU按位运算 例 根据累加器中4 0的状态修改P1端口位4 0的状态 ANLA 00011111B ANLP1 11100000B ORLP1 A A屏蔽前3位 保留后5位 A的后5位是 1 使P1口相应位置 1 P1前3位不变 P1屏蔽后5位 保留前3位 上页 下页 回目录 仅修改了P1口的后5位 读 修改 写 4累加器清除与求反指令 2条 累加器A清零 CLRA 单字节指令 累加器A按位取反 CPLA 单字节指令 上页 下页 回目录 例 给出下面程序分析执行结果 CLRA CPLA A 00H A FFH 上页 下页 回目录 4移位指令 4条 累加器内容循环左移一位 RLA 单字节指令 累加器内容连同进位标志循环左移一位 单字节指令 RLCA CY 上页 下页 回目录 累加器内容循环右移一位 RRA 单字节指令 累加器内容连同进位标志循环右移一位 单字节指令 RRCA CY 上页 下页 回目录 移位指令小结 累加器清除与求反指令小结 上页 下页 回目录 P100移位指令 P100表3 5 例 设 A 5AH CY 1 RLA RLCA RRA RRCA A B4H A 2DH A B5H A ADH 01011010 01011010 0 1 0 1 0 0 上页 下页 回目录 四 控制转移指令 17条 控制转移指令共有17条 无条件转移指令 条件转移指令 子程序的调用返回等 上页 下页 回目录 1 无条件转移指令 长转移 LJMPaddr16 三字节指令 绝对转移 AJMPaddr11 AJMP将程序存储器分为32个区 由PC15 11决定 每个区2KB 分8页 由A10A9A8决定 双字节指令 上页 下页 回目录 转移范围2KB 转移范围64KB 上页 下页 回目录 在2区形成11位目标地址 1000H17FFH 保持高5位地址以确定某区 00010 例如AJMPadd11在2区的执行过程 2KB范围内 00001 短转移 SJMPrel 指令中的rel是8位带符号补码 范围 128 127 可由汇编自动计算并填入指令代码 也可手工计算 双字节指令 计算式 rel 目标地址 PC 2 例 分析指令SJMP 符号 指本指令执行前的PC值 指令SJMP 执行后 程序仍然转移回此指令继续执行 计算机于是不断的执行这一指令 进入等待状态 上页 下页 回目录 原地踏步 rel 0FEH 2 补 间接长转移 JMP A DPTR 单字节指令 上页 下页 回目录 无条件转移指令小结 上页 下页 回目录 散转指令 可以有n个目标地址 P107 则顺序执行 2 条件转移指令 累加器为零则转移 JZrel JNZrel 累加器不为零则转移 上页 下页 回目录 则转移 则顺序执行 则转移 累加器与立即数不等则转移 CJNEA data rel 寄存器与立即数不等则转移 CJNERn data rel 上页 下页 回目录 顺序 转移 转移 顺序 两数相减 累加器与内RAM或SFR不等则转移 CJNEA direct rel 内RAM与立即数不等则转移 CJNE Ri data rel 上页 下页 回目录 顺序 转移 转移 顺序 寄存器减 1 不等零则转移 DJNZRn rel n 0 7 DJNZdirect rel 内RAM或SFR减 1 不为零则转移 上页 下页 回目录 顺序 转移 转移 顺序 上页 下页 回目录 条件转移类指令小结 P107 3 子程序调用及返回指令 长调用 LCALLaddr16 三字节指令 在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 谁动了我的时间课件
- 2025年度企业人力资源管理与优化服务合同
- 2025二手集装箱国际运输与销售合同
- 2025年度农业现代化人才招聘与乡村振兴战略合同
- 2025版通信工程施工现场安全管理及应急预案合同示范
- 2025版文化创意产品原创设计授权协议书
- 诺如病毒知识培训小结课件
- 纪念白求恩精美课件
- 红酒基础知识培训课件
- 2025电子产品买卖合同样本版
- 放射治疗计划的设计讲课件
- 大队委选拔笔试题目及答案
- 2025夏日暑期萌宠嘉年华(交个萌友主题)活动策划方案
- 全科医师基层实践结业考试试题及答案
- 2025至2030年中国珠光颜料行业投资前景及策略咨询研究报告
- 项目走账协议书
- 《美发师的职业道德》课件
- 中国老年糖尿病诊疗指南(2024版)解读课件
- 2025-2030中国手机无线充电行业市场现状供需分析及投资评估规划分析研究报告
- 绞磨工考试试题及答案
- 血液透析患者的心理护理
评论
0/150
提交评论