第二讲:指令与编程 本讲重点: 寻址方式; MCS-51指令集; 伪指令; 汇编语言与简单程序设计 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 第二讲:指令与编程 本讲重点: 寻址方式; MCS-51指令集; 伪指令; 汇编语言与简单程序设计
三章指令系统及程序设讠 (P.43) 51系列单片机指令集含有111条指令 每条指令在程序存储器ROM中占据一定的空间, 以字节为单位。按指令所占字数分类 单字节(49条)双字节(46条):3字节(16条) 每条指令在执行时要花去一定的时间,以机器 周期为单位。按指令热行的分类: 单周期(64条)双周期(45条)4周期(2条) 按指令的功能分类,可分为5大类: 据传送类(29条);算术运算类(24条) 宠算及移位类(24)控制转移类(17条 位类(17条) 无锡煎 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 第三章 指令系统及程序设计 (P.43) 51系列单片机指令集含有111条指令 每条指令在执行时要花去一定的时间,以机器 周期为单位。按指令执行时间分类: 单周期(64条);双周期(45条);4周期(2条) 按指令的功能分类,可分为5大类: 数据传送类(29条);算术运算类(24条) 逻辑运算及移位类(24);控制转移类(17条) 位操作类(17条) 每条指令在程序存储器ROM中占据一定的空间, 以字节为单位。按指令所占字节数分类: 单字节(49条);双字节(46条);3字节(16条)
ASM-51指令的格式(P.44) [标号:]操作码[目的操作数][,源操作数][;注释] 方括符[]表示可选项 标号代表指令所在地址,1-8个字母数字 结尾 操作码就是指令功能助记符,指令实体 目的操作数 源操作数 释,以“;”开头 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 ASM-51指令的格式(P.44) 方括符[ ]表示可选项 标号代表指令所在地址,1-8个字母/数字, “:” 结尾 操作码就是指令功能助记符,指令实体 目的操作数 源操作数 注释,以“;”开头 [标号:]操作码 [目的操作数][,源操作数][;注释]
51单片机指令的寻址方式 (P.45) 寻址方式:指令按地址获得操作数的方式 寻址方式一条指令可能含多种寻址方式 寄存器寻址 立即寻址 寄存器间接寻址 直接寻址 址寻址(基址寄存器+变址寄存器间接寻址) 溶对寻址 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 51单片机指令的寻址方式 (P.45) 寄存器寻址 立即寻址 寄存器间接寻址 直接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 相对寻址 位寻址 寻址方式:指令按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式
寄存器寻址(P45) 从寄存器中读取操作数或存放操作数进寄存器 例:MoVA,B;(A)←(B) Mov30H,R0:(30H)←(R0) MovA,R1;(A)←(R1) 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 寄存器寻址——(P.45) 从寄存器中读取操作数或存放操作数进寄存器 例:MOV A,B ; (A) ←(B) MOV 30H,R0 ;(30H)←(R0) MOV A,R1 ; (A) ←(R1)
立即寻址(P45) 操作数直接就出现在指令中 例:MOVA,#64H;(A)←立即数64H ADDA,#05H;←(A)+立即数05H 注意:符号“#”表明其后跟的是立即数 立即数就是数字量本身。 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 立即寻址——(P.45) 操作数直接就出现在指令中 例:MOV A,#64H ;(A)← 立即数 64H ADD A,#05H ;(A)←(A)+立即数 05H 注意:符号“#”表明其后跟的是立即数, 立即数——就是数字量本身
寄存器间接寻址—(P46) 寄存器中的内容是一个地址,由该地址单元 寻址到所需的操作数 例:[MoVR1,#30H:(R1)←立即数30H MoV@R1,#0FH;(30H)←立即数0FH MOV A @RI (A+(30H))=#OFH 注意: 1)“间接”表示某寄存器中的“内容”只是一个 单元地址”,这个地址单元中存放的数据才是 要找的“操作数 2)符号“@”表示“在”,其含义与读音皆同 单士 a 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 寄存器间接寻址——(P.46) 寄存器中的内容是一个地址,由该地址单元 寻址到所需的操作数 注意: 1)“间接”表示某寄存器中的“内容”只是一个 “单元地址” ,这个地址单元中存放的数据才是 要找的“操作数” 。 2)符号“@”表示“在… ” ,其含义与读音皆同 “at” 。 例:[ MOV R1 MOV ,##30H ;(R1)← 30H ;(R1)← 立即数30H ] MOV @R1,#0FH ;(30H)←立即数0FH MOV A,@R1 ;(A)←((30H))=#0FH
直接寻址(P46) 指令中直接给出了操作数所在单元的地址或名称 例:MovR1,1FH;(R1)←(1FH MOV 30H, 4AH:30H+(4AH) 在本单片机中规定:访问特殊功能寄存器SFR 只能采用直接寻址方式。例如: MovA,SP;(A)←(SP) 相同 A,81H;(A)←(SP) (P1)一(#5AH SAH:(P1+(5AH 相同 BAN:(B)←(30H) SFR的地址见P33表 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 直接寻址——(P.46) 指令中直接给出了操作数所在单元的地址或名称 例:MOV R1,1FH ;(R1) ←(1FH) MOV 30H,4AH ;(30H)←(4AH) 在本单片机中规定:访问特殊功能寄存器SFR 只能采用直接寻址方式。例如: MOV A, SP ; (A) ←(SP) MOV A, 81H ; (A) ←(SP) MOV P1, #5AH ; (P1)←(#5AH) MOV 90H,#5AH ; (P1)←(#5AH) MOV B, 30H ; (B) ←(30H) SFR的地址见 P.33表 相同 相同
在本单片机中访问特殊功能寄存器SFR只能采用直 接寻址方式的原因:SFR分布在80H~0FFH范围 内,而52系列单片机有256字节的片内RAM其中 的80H~0FFH的RAM与SFR所占 于是规定:80H~0FFH范围内的RAM只能用寄 间接寻址方式,而SFR只能用直接寻址方式。 从而解决了地址冲突的问题。例如 MoVA,90H等效于MOVA,P1属直接寻 MOVA,@R0:[事先已知(R0) 90H] 执行的操作:A←(90H) 属青器间接寻址,随意写的指令如:M 则是非法的! 无锡煎 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 在本单片机中访问特殊功能寄存器SFR只能采用直 接寻址方式的原因:SFR分布在80H~0FFH范围 内,而52系列单片机有256字节的片内RAM,其中 的80H~0FFH的RAM与SFR所占地址重叠。 MOV A, 90H 等效于 MOV A, P1 属直接寻 址 MOV A, @R0 ;[事先已知 (R0) = #90H ] 执行的操作:A ←(90H) 属寄存器间接寻址, 随意写的指令如:MOV A, 85H 则是非法的! 于是规定: 80H~0FFH范围内的RAM只能用寄 存器间接寻址方式,而SFR只能用直接寻址方式。 从而解决了地址冲突的问题。例如:
存储器配置(片内RAM) 89c51片内RAM128字节(00H-7FH) 89c52片内RAM256字节(00H-0FFH) 只能寄存器间接寻址 FFH FFH SFR分布在 52子系列才有 80H-FFH 的RAM区 其中92个位 可位寻址 89c52 80H 80H 7FH 856字节 普通RAM区 89c51 30H 只能直接寻址 128字节2位寻址区 工作寄存器区 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 存储器配置(片内RAM) ⚫ 89C51片内RAM 128字节(00H—7FH) ⚫ 89C52片内RAM 256字节(00H—0FFH) 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SFR分布在 80H-FFH 其中92个位 可位寻址 80H FFH 89C51 128字节 89C52 256字节 只能直接寻址 只能寄存器间接寻址