单片微型计算机C第6讲(机械)
* * 第6-7讲教学目的和要求 【教学目标】通过讲述单片机的寻址方式和指令系统功能,以及位寻址功能。掌握各种寻址方式、常用指令的功能和使用方法及汇编语言程序设计方法。 【教学重点】①MCS51单片机的寻址方式; ②MCS51单片机的指令系统; 【教学难点】寻址方式及指令系统。 第四章 MCS-51单片机指令系统 4.1MCS51指令格式及常用符号 单片机的功能往往由执行存储在ROM中程序来体现的。 程序是指令的有序集合。其功能体现在有序指令所表达的逻辑上。 程序 功能 指令1 指令2 指令3 指令n 执行 机器指令 计算机能直接识别和执行仅0和1序列所构成指令,即机器指令。 如指(04H)表示给累计器A加1并存回A的功能。 机器指令难以记忆,采用助记符表示的汇编指令更方便,一般用2~4个字母表示指令功能。 如上例机器指令可为:INC A ,即Increase之意 4.1.1指令格式与分类 一条指令应包含两层含义。 指令完成什么功能? 要操作的数据是什么? 操作码OP 操作数A 根据指令功能的不同,以及所操作数据的个数不同,MCS51单片机的操作数可分为单字节指令、双字节指令和三字节指令。 ①单字节指令 指令只有一个字节,操作码和操作数在同一个字节中。 单字节指令共有49条。 累加器单独运算、累加器与寄存器之间运算属单字节指令。 8位编码仅为操作码 8位编码含操作码与寄存器编码 INC A:04H。 DEC A:14H。 CLR C:C3H 指令MOV A,R? 机器码 E8~EFH 1 1 1 0 1 * * * ②双字节指令 指令具有两个字节,操作码和操作数各占一个字节。 双字节指令共有45条。 指令中带数据、或者需要访问存储单元时,一般为该类型。 位号 7 6 5 4 3 2 1 0 字节 opcode data或Address 如:MOV A,#50H 编码为: 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 机器码:74H 50H 指令格式 ③三字节指令 指令具有三个字节,操作码占一个字节,操作数占两个字节。 三字节指令共有17条。 RAM单元间数据传送时,一般为该类型。 位号 7 6 5 4 3 2 1 0 字节 opcode data或Address data或Address 如:MOV 20H,#50H 编码为: 机器码:75H 20H 50H 指令格式 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 4.1.2符号指令的书写格式 书写格式 注意: 操作助记符不能缺少; 操作数个数可为:1、2、3个; 2个操作数的指令,目的操作数在左边; 一般格式 操作助记符 [目的操作数][,源操作数][;注释] 指令的描述符号 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的位地址 C或CY:进位标志位或位处理机中的累加器 (X):表示 X 地址单元或寄存器中的内容 ((X)):由X寻址的单元中的内容 → :箭头右边的内容被箭头左边的内容所取代。 / :位操作数的取反操作前缀 4.2MCS51的寻址方式 程序运行时所需的数据,可以存在于: 寄存器中 RAM存储器中 ROM的表格中 指令中直接给出 …… 寻址方式:寻找(源)操作数或指令转移地址的方式。 8051有7种寻址方式 ①寄存器寻址 操作数在寄存器中; 寻址空间:R0~R7、A、B、DPTR 【例】若(R0)=30H,执行MOV A, R0后,A中内容为多少? E8H ROM MOV A,R0 30H RAM 00H ??H SFR ACC R0 30H 30H 特点:传送和执行速度快。 操作数在R0 寄存器寻址 4组通用工作寄存器区共32个寄存器均能使用寄存器寻址,但只能寻址当前工作寄存器区的8个工作寄存器,因此指令中寄存器的名称只能是R0~R7; 部分SFR寄存器,如累加器A、寄存器B,以及数据指针寄存器DPTR均可采用寄存器寻址。 源操作数和目的操作数均可采用寄存器寻址方式。但不允许工作寄存器同时作为源操作数和目的操作数, 如MOV R1,R0则是不允许的。 ②直接寻址 操作码后字节存放的是操作数的地址; 寻