第2章51系列单片机的指令系统

上传人:cn****1 文档编号:567708253 上传时间:2024-07-22 格式:PPT 页数:58 大小:1.15MB
返回 下载 相关 举报
第2章51系列单片机的指令系统_第1页
第1页 / 共58页
第2章51系列单片机的指令系统_第2页
第2页 / 共58页
第2章51系列单片机的指令系统_第3页
第3页 / 共58页
第2章51系列单片机的指令系统_第4页
第4页 / 共58页
第2章51系列单片机的指令系统_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《第2章51系列单片机的指令系统》由会员分享,可在线阅读,更多相关《第2章51系列单片机的指令系统(58页珍藏版)》请在金锄头文库上搜索。

1、第第2章章 51系列单片机的指令系统系列单片机的指令系统 单片机原理、接口及应用单片机原理、接口及应用单片机原理、接口及应用单片机原理、接口及应用阮庙洞马萍涸管卯椿兑瓢谜丫摸印靴崔蚂坦骋咙水姨剩盗摔蚤核靳醉掏栽第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 内内 容容 提提 要要寻址方式寻址方式数据数据传送与交换指令传送与交换指令算术运算、逻辑运算指令算术运算、逻辑运算指令控制转移指令控制转移指令位操作指令位操作指令垦这载会裹毅镜葵起戮冉斟寡碎累雕韩良八止壁吗悯薄胜兜赂迁堑屡匝慧第2章51系列单片机的指令系统第2章51系列单

2、片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 计算机通过执行程序完成人们指定的任务,程序由一计算机通过执行程序完成人们指定的任务,程序由一条一条指令构成,能为条一条指令构成,能为CPU识别并执行的指令的集合就识别并执行的指令的集合就是该是该CPU的的指令系统指令系统。 MCS-51 MCS-51单片机汇编语言指令格式单片机汇编语言指令格式: :操作符操作符 目的操作数,源操作数目的操作数,源操作数 操作符指明该指令完成什么操作;操作数是指明该指令的操作对象。目的操作数是存放结果的。指令中操作数提供的方式称为寻址方式。玄凉溪肢映箕穴沽锣疵馒馈拿穗白窖斤跋玛乖偿礁重剐肢苑

3、丽鄂鞘吻腊淳第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 指令中的常用符号Rn: n=(07),表示当前工作寄存器),表示当前工作寄存器R0R7中的一个中的一个Ri: i=(0、1),代表),代表R0和和R1寄存器中的一个,用作间接寻址寄存器寄存器中的一个,用作间接寻址寄存器dir : 8 位直接字节地址(片内位直接字节地址(片内 RAM 和和 SFR )#data: 8位立即数,即位立即数,即8位常数。可以为位常数。可以为2进制进制(B)、10进制、进制、 16进制进制(H)、 字符(字符( )#data16: 表示表示

4、16位立即数,即位立即数,即16位常数,取值范围为位常数,取值范围为#0000H#0FFFFHaddr16 : 表示表示16位地址位地址 addr11 : 表示表示11位地址位地址rel : 相对偏移量(为一字节补码)用于相对转移指令中相对偏移量(为一字节补码)用于相对转移指令中bit :位地址,在位地址空间中。位地址,在位地址空间中。$: 表示当前指令的地址。表示当前指令的地址。议盛茬俞琳蝗前摈挡恤湿慈尸浴表调眨看盏恋傅叙社既里坏降设史进洋售第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2.1 2.1 寻址方式寻址方式1

5、 1、立即寻址、立即寻址 指令中直接给出操作数的寻址方式。在指令中直接给出操作数的寻址方式。在51系列单片系列单片机的指令系统中,立即数用一个前面加机的指令系统中,立即数用一个前面加 “#“号的号的8位位数数(#data,如,如#30H)或或16位数位数(#data16,如,如#2052H)表表示。示。立即寻址中的数,称为立即数。立即寻址中的数,称为立即数。 例如指令:例如指令:MOV A,#30H烂弥晤遵挖适还哮形浅坯沏拒赔友纠撇拦哄首涯面糯屡寥绰惶诚祥樊换倍第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2 2、直接寻址

6、、直接寻址 操作数的地址直接出现在指令中。操作数的地址直接出现在指令中。 寻址对象:寻址对象: 内部数据存贮器:使用它的地址。内部数据存贮器:使用它的地址。 特殊功能寄存器:既可使用它的地址,也可以特殊功能寄存器:既可使用它的地址,也可以 直接使用寄直接使用寄存器名。存器名。41H 78H40H 56H41H 78H40H 78H例:例:例:例:MOV AMOV A,40H ; A=56H40H ; A=56H 机器码机器码机器码机器码 E540 E540 MOV P0MOV P0,#45H #45H ;45HP045HP0, P0 P0为直接寻址的为直接寻址的为直接寻址的为直接寻址的 SFR

7、 SFR,其地址为,其地址为,其地址为,其地址为 80H 80H, 机器码为机器码为机器码为机器码为758045758045 MOV 40H MOV 40H,41H ; 41H ; 机器码为机器码为机器码为机器码为854140854140 内部内部内部内部RAM RAM (41H41H)(40H40H) (40H40H)= =(41H41H)=78H=78H 估荧延施癣警溜栋动禾竣勃橱孪判颊靖牡铰捧危墓殆柄趣赚爸训婚镑潮评第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 3 3、寄存器寻址、寄存器寻址 操作数存放在寄存器中。操

8、作数存放在寄存器中。 寻址对象:寻址对象:A,B,DPTR,R0R7 。 B 仅在乘除法指令中为寄存器寻址,在其他指令中为直仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。接寻址。 A 可以寄存器寻址又可以直接寻址,直接寻址时写作可以寄存器寻址又可以直接寻址,直接寻址时写作ACC例如:例如:MOV A,R0 ;R0A,A、R0均为寄均为寄 存器寻址,机器码存器寻址,机器码E8 MUL AB ;A*BBA,A、B为寄为寄 存器寻址,机器码存器寻址,机器码A4屉铣晋鸯让棠碾庄有有疟抨阑赵拒凶虏凭叼绒凡霓姨涛橡敝互杏孩夕盎咙第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章

9、 51系列单片机的指令系统系列单片机的指令系统 MOV B,R0 ;R0B,R0为寄存器寻为寄存器寻 址,址,B为直接寻址为直接寻址 机器码机器码 88F0,其中,其中 F0为为B的的 字节地址(见表字节地址(见表1-2) PUSH ACC ;A的内容压入堆栈的内容压入堆栈 机器码机器码C0E0 片跃贯埃佣剂鼠扎扑涡歉蝗竣铂舱慎驮存破供孝衰退幽达弥涅拷盐斩肾掷第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 4 4、寄存器间址、寄存器间址 操作数存放在以寄存器内容为地址的单元中。操作数存放在以寄存器内容为地址的单元中。例如:例

10、如: MOV R0,#20H MOV R0,A ;A(20H) 地址的内部地址的内部RAM MOVX A,R1 ;外部;外部RAM(地址为(地址为P2 R1 ) 的的 内容内容A MOVX DPTR,A ;A以以DPTR内容为地址的内容为地址的 外部外部RAM 桥全媳堪膏俗品束掂岸厂离峨鸳拢瞒绷侣验区辆绢喉妥小锄渔阂组正嚎瘫第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 5 5、变址寻址、变址寻址 以以DPTRDPTR或或PCPC寄存器内容为基地址,和寄存器内容为基地址,和A A的内容为相加形的内容为相加形成操作数的地址。其

11、中累加器成操作数的地址。其中累加器A A内容是可变的。内容是可变的。例如:例如: MOVC A, A+DPTR MOVC A, A+DPTR6 6、相对寻址、相对寻址 相对寻址是将程序计数器相对寻址是将程序计数器PCPC的当前值与指令第二字节给的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。出的偏移量相加,从而形成转移的目标地址。例如:例如:JZ 61HJZ 61H歌哦暇陈敞翔套怕怖禾昭敖厨浚眼霜炔认谎舷枣翼障衅回憎卜广投雕咋奶第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 7 7、位寻址、位寻址 对片内对片

12、内RAM中中20H2FH中的中的128个位地址及个位地址及SFR中的中的可位寻址的位地址寻址。可位寻址的位地址寻址。例如:例如: MOV C,20H;20H位的内容送位的内容送CY标志标志 位,位,C称为位累加器。称为位累加器。 MOV A,20H ;字节寻址,将内部;字节寻址,将内部 RAM中中20H单元中的单元中的 内容送给累加器内容送给累加器A。 以上两条指令均为寻址,究竟是位寻址还是字节寻址,以上两条指令均为寻址,究竟是位寻址还是字节寻址,根据两操作数类型一致的原则,由另一个操作数决定。根据两操作数类型一致的原则,由另一个操作数决定。 库笛证苍砰懦纱矩袋头髓蹦睁违盔乞盖婪浇粮哪考甩灿以

13、嘻蓟诬书铅唬顿第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 dirRi Rn#dataAMOV A , Rn #data dir RiMOV dir ,A RnRi #data dir MOV Rn , MOV Ri,Adir #data1 1、内部、内部RAMRAM、SFRSFR之间的传送之间的传送MOVMOV指令指令A dir #data2.2 2.2 数据传送与交换指令数据传送与交换指令2.2.1传送类指令羔椎犀闺畔炭挎唆训凤坟砒赎亲湍窒戈场拆玩见令剖忽翅甫牙累单脾胚帛第2章51系列单片机的指令系统第2章51系列单片

14、机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 R1=20H,(,(20H)=55H,指令指令MOV A,R1执行后,执行后,A=55H。例例 (40H)=30H,指令,指令 MOV R7,40H 执行后,执行后,R7=30H。例例 MOV R7,40H 执行后,执行后,R7=40H。n n 例例例例 判断下列指令的正误:判断下列指令的正误:判断下列指令的正误:判断下列指令的正误: MOV 29H,R7 MOV 25H,P1 MOV 29H,R7 MOV 25H,P1 MOV 56H,#70H MOV 34H,28H MOV 56H,#70H MOV 34H,28H

15、 MOV R3,R7 MOV R3,R7 MOV R3,R7 MOV R3,R7 MOV R3,#D2H MOV #34H,28H MOV R3,#D2H MOV #34H,28H MOV A,#280H MOV P3,P1 MOV A,#280H MOV P3,P1n n编程将编程将编程将编程将R3R3的内容送的内容送的内容送的内容送R1R1。 MOV A MOV A,R3R3 MOV R1 MOV R1,A A亩促枢玄盟诺朵敬泥盲饿黍咎遥哄份雍剂睫呵拥悄谐虑嗣抿叮摆聘钩想顽第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统

16、A 外部数据外部数据存储器存储器程序程序存储器存储器 Ri , A DPTR , A A , Ri A , DPTRMOVXMOVCA , A+PCA , A+DPTR2 2、外部存储器和、外部存储器和A A累加器之间的传送累加器之间的传送MOVXMOVC呼襟溃域括而技帛资锦箍买横熄捆醛蔑带邑总蜜漏咬缓珐咐嘛镍浪儒轨旅第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 MOVX指令举例指令举例例例: 实现片外数据存储器数据传送实现片外数据存储器数据传送 (2000H)(2100H)。MOV DPTR,#2000HMOVX A,D

17、PTRMOV DPTR,#2100HMOVX DPTR,A; DPTR= 2000H; DPTR= 2100H ; A X;(2100H) Xx片外数据存储器不能直接寻址。下列为片外数据存储器不能直接寻址。下列为非法非法指令:指令: MOVX A,2000H MOVX 2100H,2000H 篓廖翻黄锣累幽俺垦涌押赊奖那止类订砷软厂响谊吏玻燎藉原牟岭二润链第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 使用使用P2口和口和8位寄存器位寄存器Ri间址间址: MOV P2,#20H;高位地址;高位地址 MOV R0,#00;低位

18、地址;低位地址 MOVX A,R0;读片外;读片外RAM MOV P2,#21H;改变高位地址;改变高位地址 MOVX R0,A;写片外;写片外RAM虹码畏亲李扭鲤故次终蔗亭剖筋湿瞒窟呸梁淮宴吉任腺陪蝇则徽叭妇澡湛第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 查表指令查表指令MOVC 注:注:只能从程序存储器读取数据到只能从程序存储器读取数据到A累加器。累加器。 只能使用变址间接寻址方式只能使用变址间接寻址方式 多用于查常数表程序,直接求取常数表中的函数值多用于查常数表程序,直接求取常数表中的函数值1)DPTR为基址寄存器

19、为基址寄存器MOVC A,A+DPTR ;A(A+DPTR) 查表范围为查表范围为 64KB 程序存储器任意空间。程序存储器任意空间。2)PC为基址寄存器为基址寄存器MOVC A,A+PC;A (A+PC)常数表只能在查表指令后常数表只能在查表指令后 256B 范围内。范围内。沮舒钾榜搁捅枯哩叔机缚靶奎盛丙户瑶妄啸机刷援氮仿篆什命触券搅政懈第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 查表法求查表法求 Y=X2。设。设 X(0X15)在片内在片内 RAM 20H单元,要单元,要求将查表求求将查表求 Y,存入片内,存入

20、片内 RAM 21H单元单元1)用)用DPTR作基址寄存器作基址寄存器 ORG 0100HSQU: MOV DPTR,#TAB ;确定表首地址;确定表首地址 MOV A,20H ;取;取 X MOVC A,A+DPTR ;查表求;查表求 Y=X2 MOV 21H,A ;保存;保存Y RET ;子程序结束;子程序结束 ;其它程序段;其它程序段 ORG 0200HORG 0200H ;常数表格首地址;常数表格首地址;常数表格首地址;常数表格首地址TAB:TAB: DB 00 DB 00,0101,0404,0909,225 225 ;平方表;平方表;平方表;平方表逻脚允嘿量撼莉炯辖滨猾邱俞窟贴般高

21、释坞劣应童条慑膝栖嘱置蚕枚藏有第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2)用用PCPC作基址寄存器作基址寄存器 指令地址指令地址 源程序源程序 ORG 0100H;程程序序起起始地址始地址0100H SQU: MOV A,20H ;取;取X 0102H ADD A,#3;修正偏移量;修正偏移量0104H MOVC A,A+PC ;查表求;查表求Y=X20105H MOV 21H,A ;存结果;存结果 0107H RET ;子程序结束;子程序结束0108H TAB: DB 00,01,04 ;平方表;平方表 010BH

22、DB 09,225 思考题思考题 当0X255时,如何用查表法编程求Y=X2荚租隔毗蚁胺旧谍厕愚颗谓探拦淮眉斗野怎捧恼翁鱼宗拘菲谭傣厢磅没宿第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 3.3.堆栈操作指令堆栈操作指令例例:设设 A=02,B=56H,执执行行下下列列指指令令序序列列后后,SP = ?A = ? ,B = ? SBR:MOV SP,#30HPUSH APUSH BMOV A,#0MOV B,#01POP BPOP ARET;设栈底;设栈底 ;保护现场;保护现场;恢复现场;恢复现场 入栈指令:入栈指令:PUS

23、H dir ;SPSP+1,(SP) (dir ) 出栈指令:出栈指令:POP dir ;(dir )(SP),SPSP-1 SP 02 SP 5602 56SP 02 5602SP SP 堆栈操作示意:堆栈操作示意:板超泣朝待殿燃馈艰噪报趋殆镜榆蓝耀怜润才粒绘臣恍虎卿况腮侗佰锐合第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2.2.2交换指令 实现片内实现片内RAM区的数据双向传送区的数据双向传送1. 字节交换指令字节交换指令 XCH A,Rn ;ARn XCH A,Ri;A(Ri) XCH A,n ;A (n)习题习题

24、 将片内将片内RAM 60H单元与单元与 61H单元的数据交换单元的数据交换例例 设设A= 29H,(,(2AH ) 38H 执行指令执行指令 XCH A,2AH 后,后,A= ?,(2AH)= ?38H29HXCH 60H,61H 对吗?对吗?器中压可搜劲橡蓄蜀镇扁漾眯咨沂献坞栋疥盛杀榜期稻奖足云买场袄壶聘第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2. 半字节交换指令半字节交换指令XCHD A,Ri ;A03 (Ri)03SWAP A ;A47A03例例3-4-3:将片内:将片内 RAM 2AH和和 2BH单元中的单

25、元中的 ASCII码转换成压码转换成压缩式缩式 BCD码存入码存入 20H单元单元数字数字 09的的ASCII码码30H39H85H压缩的压缩的BCD码和非压缩的码和非压缩的BCD码见图码见图如如 1823压缩的压缩的BCD码为码为1823H 非压缩的非压缩的BCD码为码为01080203H非压缩非压缩BCD AA完骸兽抿拂柜数荔踞粹拢柿浇忱慰吴乳撮经赦双琵顿珐犬种序香傣拭漂大第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 08例例 将片内将片内RAM 2AH和和 2BH单元中的单元中的ASCII码转换成压缩式码转换成压缩式

26、BCD码存入码存入 20H单元单元MOVAMOVA,#00H#00H;A=00A=00MOVR0MOVR0,#2AH#2AHMOVR1MOVR1,#2BH#2BHXCHDAXCHDA,R0R0SWAPASWAPAXCHDAXCHDA,R1R1XCHXCHA A,20H20H85HR1R0习题:习题:交换片内交换片内RAM 40H单元和单元和 41H单元的低半字节单元的低半字节00;低;低4位交换位交换A=08;A=80HA=80H; 低低4位交换位交换;(20H)=85H(20H)=85H3 80 0A3 58 08 5R1R03 03 0对辊役哦鼻奥绵锋逮哇静溢着适禄狄班汹郊裹孺徘疑故跳怪牢

27、凝诵运吱舞第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 dirRi Rn#dataA dirRi Rn#dataAADDADDCSUBBANLORLXRLA ,Rn,Ri#datadir加加进位加进位加借位减借位减与与或或异或异或1.以以A为目的操作数的算术、逻辑运算指令(为目的操作数的算术、逻辑运算指令(24条)条)以以dir为目的操作数逻辑运算指令(为目的操作数逻辑运算指令(6条)条)A#data dir与与 ANL或或 ORL异或异或 XRLdir ,#dataA2.3算术运算和逻辑运算指令算术运算和逻辑运算指令晃卷

28、易款舞摆侍釉返鸵闭匆叼震鹃耙族茨橙黔迫羞脉降让荤径湾款省视漫第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 算术类指令的操作意义非常明确,不一一赘述,算术类指令的操作意义非常明确,不一一赘述,注意减指令只有带借位减,因此在多字节减法中,注意减指令只有带借位减,因此在多字节减法中,最低字节作减法时,注意先清最低字节作减法时,注意先清CY。 逻辑运算是按位进行的,两数运算的运算法则是:逻辑运算是按位进行的,两数运算的运算法则是: 与:有与:有“0”则则“0”; 或:有或:有“1”则则“1” 异或:同为异或:同为“0” , 异为异

29、为“1”; 与与“0”异或值不变:与异或值不变:与“1”异或值变反。异或值变反。 逻辑指令常用于对数据位进行加工。逻辑指令常用于对数据位进行加工。n n0000111100001111 10000110 10001111n n0000111100001111 10000110 10001001例:例:A=0FH, A=0FH, 执行执行执行执行XRL A,#86H XRL A,#86H 后后后后 A A06HH06HH 例:例:例:例:A=0FH, A=0FH, A=0FH, A=0FH, 执行执行执行执行ORL A,#86H ORL A,#86H ORL A,#86H ORL A,#86H

30、后后后后 A A A A8FH8FH8FH8FH例:例:例:例:A=0FH, A=0FH, A=0FH, A=0FH, 执行执行执行执行XRL A,#86H XRL A,#86H XRL A,#86H XRL A,#86H 后后后后 A A A A89H89H89H89H+瓮审叫妈韶鬃问捕匿哈酶剁迸追拓芒朱轧皇营匝磋含佐紊鸣继眯剪漾牡挨第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 ARnRidirDPTRINC减减 1 指令指令:DECARnRidir加加 1 指令指令:提问提问:没有:没有DEC DPTR指令,怎么解决指

31、令,怎么解决DPTR的减的减 1?2.加加1、减、减1指令指令贷生纽乍循除登明捆镁秤滔记似萨轻猫苫茫冷们窗狙觉亏潘外兆寒涩驹脉第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 3. 十进制调整指令十进制调整指令 计算机完成二进制加法其和也为二进制,如果是十进制相计算机完成二进制加法其和也为二进制,如果是十进制相加(即加(即BCD码相加)想得到十进制的结果,就必须进行十进码相加)想得到十进制的结果,就必须进行十进制调整(即制调整(即BCD 码调整)。码调整)。 调整指令:调整指令: DA A ;将;将A中二进制中二进制相加和相加

32、和调整成调整成BCD码码 调整方法:和低调整方法:和低4位大于位大于9或有半进位则低或有半进位则低4位加位加6; 和的高和的高4位大于位大于9或有进位,则高或有进位,则高4位加位加6。 指令根据相加和及标志自行进行判断,因此该指令应紧跟指令根据相加和及标志自行进行判断,因此该指令应紧跟在加指令之后,至少在加指令和该指令之间不能有影响标志在加指令之后,至少在加指令和该指令之间不能有影响标志的指令。的指令。 DA A指令只对一个字节和调整,如为多字节相加必须进行指令只对一个字节和调整,如为多字节相加必须进行多次调整。此指令不能对减法结果进行调整。多次调整。此指令不能对减法结果进行调整。 徘氓未僚设

33、厌猎惦彪搬凯针掸笨考进粘生翱当茂悬夜点梆匙抨钠骡葬帆桌第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 完成完成56+17的编程。的编程。 MOV A,#56H ;A存放存放BCD码码56H MOV B,#17H ;B存放存放BCD码码17H ADD A, B ;A=6dH DA A ;A=73H SJMP $56H17H6dH673H+栗头员武曙阜烬阵湛荚搁堪硕美朗琢端泣聂橡裁遭呛参韦悟惺遁淖漆耸即第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 指令

34、对标志位的影响有如下规律:指令对标志位的影响有如下规律: 1)凡是对A操作指令(包括传送指令)都将A中1个的奇偶反映到PSW的P标志位上。即A中奇数个“1”,P=1;偶数个“1”,P=0。2)传送指令、加1、减1指令、逻辑运算指令不影响Cy、OV、AC标志位。3)加减运算指令影响标志位,乘除指令使Cy=0,当乘积大于255,或除数为0时,OV置1。4)对进位位Cy(指令中用C表示)进行操作的指令和大环移指令,显然会影响Cy。具体指令对标志位的影响可参阅附录A。标志位的状态是控制转移指令的条件,因此指令对标志位的影响应该记住。扬丑龙茎耐骂意乔丁颇谁其祸馒将盾层溢烦岔抒嚼挚响隘培银匿好且蒙糖第2章

35、51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例:A= 9AH,R2= E3H,PSW= 0,执行指令,执行指令ADDC A,R2 后求:后求:A= ,Cy= ,OV= ,AC= ,P= PSW= ? 1001 1010 1110 0011 + 0 1 0111 11017DH 1 1 0 010000100 = 84HCYACF0RS1RS0OV-P10000100硷萎扬耕昼听戏望催毡莆维翻妙扔蕉左碍戚直兆态褂栅熔李挠杨齿帚灸救第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系

36、列单片机的指令系统 CYCYRR ARL ARLC ARRC A4.移位指令(仅对移位指令(仅对 A )1001011000101101AA设设01001011A1CY11001011A000101101A1CYCY镣醉岗捞惕哈屋愚甘庚葱吞巢谗烁姓附绥脓孝根寸拣采途啮纺击我希莆纤第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2.4 控制转移指令控制转移指令 这一类指令的功能是改变指令的执行顺序,转到指令指示的新的这一类指令的功能是改变指令的执行顺序,转到指令指示的新的PC地地址执行。址执行。 MCS-51单片机的控制转移指

37、令有以下类型:单片机的控制转移指令有以下类型:无条件转移:无条件转移:无需判断,执行该指令就转移到目的地址。无需判断,执行该指令就转移到目的地址。条件转移:条件转移:需判断标志位是否满足条件,满足条件转移到目的地址,否则顺需判断标志位是否满足条件,满足条件转移到目的地址,否则顺序执行。序执行。绝对转移:绝对转移:转移的目的地址用绝对地址指示,通常为无条件转移。转移的目的地址用绝对地址指示,通常为无条件转移。相对转移:相对转移:转移的目的地址用相对于当前转移的目的地址用相对于当前PC的偏差(偏移量)指示,通常的偏差(偏移量)指示,通常为条件转移。为条件转移。长转移或长调用:长转移或长调用:目的地

38、址距当前目的地址距当前PC 64KB地址范围内。地址范围内。短转移或短调用短转移或短调用:目的地址距当前:目的地址距当前PC 2KB地址范围。地址范围。者纤织串刹伪奎斗篡访亡筐伴注浑骆哆休糙秘该积痊砰居曾记蹋基帘定绎第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 1.长调用长调用 LCALL addrl16 ;addr16PC015 说明:说明:(1)该指令功能是该指令功能是 保护断点,即当前保护断点,即当前PC(本指令的下一条指令的首地(本指令的下一条指令的首地 址)压入堆栈。址)压入堆栈。 子程序的入口地址子程序的入口地

39、址 addr16 送送PC,转子程序执行。,转子程序执行。(2)本指令为本指令为64KB地址范围内的调子程序指令,子程序可在地址范围内的调子程序指令,子程序可在64KB地址空间的任一处。地址空间的任一处。(3)本指令的机器码为三字节本指令的机器码为三字节 12 addr16。2.4.1 调用程序和返回类指令调用程序和返回类指令廷板堆沸地杜善隔沟社右羚蛛粳督连氖嘿措闰酒箱箍矿讨狰莲殖枪厦单筋第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2.短调用短调用 ACALL addr11 ;addr11PC010说明:说明:(1)该指

40、令的功能是该指令的功能是 保护断点,即当前保护断点,即当前PC压入堆栈。压入堆栈。 addrl11PC010,而而PC1115保持原值不变。保持原值不变。(2)本指令为本指令为2KB地址范围的调子程序指令,子程序入口距地址范围的调子程序指令,子程序入口距当前当前PC不得超过不得超过2KB地址范围。地址范围。(3)本指令的机器码为二字节,设本指令的机器码为二字节,设addr11的各位是的各位是a10a9a8a2a1a0,则,则ACALL指令机器码指令机器码a10a9a810001a7a6a5a4a3a2a1a0,其中,其中10001是是ACALL指指令的操作码。令的操作码。 钉硬第鲜汝课湾能客蕾

41、拘伺忙别胺叹颤拼链瞳舷睫屯埋萎总社螺疚帅区烂第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 子程序调用指令子程序调用指令ACALL在在 程序存储器中的首地址为程序存储器中的首地址为0100H,子程序入口地址为,子程序入口地址为0205H。试确定能否使用。试确定能否使用ACALL指令实指令实现调用?如果能使用,确定该指令的机器码。现调用?如果能使用,确定该指令的机器码。 解解: 因为因为ACALL指令首地址在指令首地址在0100H,而,而ACALL是是 2字节指字节指令,所以下一条指令的首地址在令,所以下一条指令的首地址

42、在0102H。0102H和和0250H在同在同一一2KB地址范围内,故可用地址范围内,故可用ACALL调用。调用入口地址为调用。调用入口地址为0250H,ACALL指令的机器码形式为:指令的机器码形式为:0101000101010000B=5150H。钵凌督凡徒畜筏盛潜丑氦式啮漾泥酿阐沁层怂蛛樟肇驴厌们以矗楷焊路师第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 3.子程序返回指令子程序返回指令RET ;从调用子程序返回。;从调用子程序返回。功能:从栈顶弹出断点到功能:从栈顶弹出断点到PC。RETI ; 从中断服务程序返回。从

43、中断服务程序返回。功能:从栈顶弹出断点到功能:从栈顶弹出断点到PC,并恢复中断优先级状态触发器。,并恢复中断优先级状态触发器。 消械窿拄密酝纯诀烈殿帆紫艺壶率颁呆泣细宇特远邵乍屠续答疫只爵停沥第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2.4.2 转移指令转移指令1. 无条件转移指令无条件转移指令(1)短转移)短转移 AJMP addr11 ;addr11PC010说明:说明:转移范围:本指令为转移范围:本指令为2KB地址范围内的转移指令。对转移目的地址范围内的转移指令。对转移目的地址的要求与地址的要求与ACALL指令对

44、子程序入口地址的要求相同。指令对子程序入口地址的要求相同。机器码形式:本指令为机器码形式:本指令为2字节指令。设字节指令。设addr11的各位是的各位是a10a9a8a2a1a0,则指令的机器码为则指令的机器码为a10a9a800001a7a6a5a4a3a2a1a0。纱镜吻党山促烽臃刹番骚群蚌跋育斥扼侨恒祭岗豁凸鲁楷涸呀勒泉佛儡嫁第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 (2)长转移)长转移LJMP addr16 ;addr16PC015说明:说明:本指令为本指令为64KB程序存储空间的全范围转移指令。转移地址程序存

45、储空间的全范围转移指令。转移地址可为可为16位地址中的任意值。位地址中的任意值。本指令为本指令为3字节指令字节指令02 addr16。(3)间接转移)间接转移 JMP A+DPTR ;A+DPTRPC 例例 A=02H,DPTR=2000H,指令,指令JMP A+DPTR执行后,执行后,PC=2002H。也就是说,程序转移到。也就是说,程序转移到2002H地址单元去执行。地址单元去执行。盖辆诽左荫裕想盆领磋驮荫盲邪耐罩架强询傍道她磕享剖镭庞者浦旬深榔第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 现有一段程序如下:现有

46、一段程序如下: MOV DPTR,#TABLE JMP A+DPTRTABLE:AJMP PROC0 AJMP PROC1 AJMP PROC2 AJMP PROC2 根据根据JMP A+DPTR指令的操作可知,指令的操作可知,当当A=00H时,程序转入到地址时,程序转入到地址 PROC0 处执行;处执行;当当A=02H时,转到时,转到PROC1处执行处执行 可见这是一段多路转移程序,进入的路数由可见这是一段多路转移程序,进入的路数由A确定。因为确定。因为AJMP指令是指令是2字节指令,所以字节指令,所以 A 必须为偶数。必须为偶数。 以上均为绝对转移指令,下面介绍相对转移指令。以上均为绝对转

47、移指令,下面介绍相对转移指令。月坍反栈媳扰因茅孩千怖遍锁胃襟豢院菠受嚷沫新赵嗅虫榆估阶践鹿玲主第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 (4)无条件相对转移)无条件相对转移 SJMP rel ;PC+relPC, 即即As2relPC,机器码为,机器码为80 rel说明:说明: As为源地址(本指令的首地址),该指令为为源地址(本指令的首地址),该指令为2字节指令,执字节指令,执行本指令时行本指令时 当前当前PCAs+2,rel 为转移的偏移量,转移可以向前转为转移的偏移量,转移可以向前转(目的地址小于源地址),也可以

48、向后转(目的地址大于源(目的地址小于源地址),也可以向后转(目的地址大于源地址),因此偏移量地址),因此偏移量rel 是是 1 字节有符号数,用补码表示字节有符号数,用补码表示(128127),所以指令转移范围在离源地址),所以指令转移范围在离源地址As的的126129字节之间。字节之间。蛹仑惺鳞糠气裴询掸敦宗簇瘴啼仿灶遏萝炒愚己过吻避唇的琶辗敷示蹄沥第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 2. 条件转移指令条件转移指令(1)累加器为零(非零)转移)累加器为零(非零)转移 JZ rel ;A=0 则转移(则转移(As

49、+2+relPC) JNZ rel ;A0 程序顺序执行,机器码为程序顺序执行,机器码为60rel界无复谗废恒阔幸俩润赣混斩麓胖遮殉盛膳栗勾罚扯效箔盂痴须满听悟聚第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 dirRi Rn#dataADJNZDJNZ(2)减)减 1 不等于零转移不等于零转移DJNZ Rn , rel ;Rn-1 DJNZ dir , .rel本指令有自动减本指令有自动减 1 功能。功能。 (3)比较转移指令)比较转移指令CJNE A,dir , relCJNE A , #data , relCJNE R

50、n , #data , relCJNE Ri , #data , rel七拥蚂鹰虽散竟啼滥等司呕框柒巳得颜律举雀诡彰造脸过敲铁崭蒂炎共竟第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 说明说明: CJNE指令都是指令都是3字节指令,作减操作,不回送结果,影响字节指令,作减操作,不回送结果,影响CY标志。标志。 若第一操作数大于或等于第二若第一操作数大于或等于第二 操作数,则标志操作数,则标志CY=0。若。若第一操作数小于第二操作数,则第一操作数小于第二操作数,则CY=1。这几条指令除实现两操作数相等与否的判断外,利用对这几条

51、指令除实现两操作数相等与否的判断外,利用对CY的的判断,还可完成两数大小的比较。判断,还可完成两数大小的比较。苹冯匣眷昔厄景局撩菱验审傻荤韦唉箩羡容葵汝阮惜狱负刁袜离山蹲鬃卞第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 试说明以下一段程序运行后试说明以下一段程序运行后A中的结果。中的结果。 MOV 23H,#0AH CLR ALOOP:ADD A,23H DJNZ 23H,LOOP SJMP $根据程序可知根据程序可知A=10+9+8+7+6+5+4+3+2+1=55=37H荧类剧针治厂额痴骄畔蝇缄湖捉妙帧腕者蚀韧铰愿橇身

52、岗灌吃谚宪滥污籍第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 编写程序,要求读编写程序,要求读P1 端口上的信息,若不为端口上的信息,若不为55H,则程序,则程序等待,直到等待,直到P1端口为端口为55H时,程序才往下顺序执行。时,程序才往下顺序执行。程序:程序: MOV A,#55H ;A55H CJNE A,P1,$ ;P155H,则程序循环执行本指令,则程序循环执行本指令 在实际编程中,转移的目的地址不管是在实际编程中,转移的目的地址不管是addr11、addr16、还是还是rel ,均是一符号地址表示的(如均

53、是一符号地址表示的(如SJMP ABC,AJMP LOOP),转移的类型是通过指令的操作符来决定的。),转移的类型是通过指令的操作符来决定的。魔郊由蝇苔兑甫辐颈打平猿辈遥卸蹄遍鸵翱臻态郑靠沛廖柏乃谴董衡乞嘉第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 3.相对偏移量相对偏移量rel的求法的求法 在相对转移中,用偏移量在相对转移中,用偏移量 rel 和转移指令所处的和转移指令所处的地址值来计算转移的目的地址,地址值来计算转移的目的地址,rel 是是 1 字节补码字节补码.在填机器码时,需计算在填机器码时,需计算rel,下面介

54、绍计算下面介绍计算rel 的方法。的方法。设设 本条转移指令的首地址为本条转移指令的首地址为As源地址,源地址, 指令字节数为指令字节数为Bn2字节或字节或3字节,字节, 要转移的目标地址为要转移的目标地址为Ad目的地址,目的地址, 当前当前PC= As+ Bn 因为在执行本条指令时,因为在执行本条指令时,PC已经指向了下一条指令已经指向了下一条指令,见下图:见下图:教盟歼预估妒锦秀森强宫坟芬爵卜葛形锁血狸汽景画夜贾采箕憾乎弘唬座第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 Ad 0100 MN: . . As 0125

55、BF 05 rel CJNE R7,#06,MN当前当前PC 0128当前当前PC= As +Bn=0125+3=0128Bn=3于是于是 rel =Ad-当前当前PC =Ad(As+Bn)= Ad - As - Bn 在上例中在上例中 rel=Adrel=Ad当前当前当前当前PC =0100HPC =0100H0128H=0128H=28H28H2828求补得求补得求补得求补得D8HD8H于是于是 rel=(Ad-As-Bn)补补 这就是在已知源地址,目的地址和指令的长度时,计算这就是在已知源地址,目的地址和指令的长度时,计算rel 大大小的公式。小的公式。稻沈隔以天魏危沪诗葡逢祈顾束眼迷琢

56、饼谩笔诵涛过露却挡孪狭皖设根泰第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 MCS-51单片机指令系统中,没有停机指令,通常用短转单片机指令系统中,没有停机指令,通常用短转移指令移指令SJMP $ ($为本条指令的首地址为本条指令的首地址)来实现动态停机的操来实现动态停机的操作,试写出这条指令中机器码。作,试写出这条指令中机器码。解解: 查附录查附录A ,SJMP rel 的指令码为的指令码为80rel 据题意据题意 本条指令本条指令的首地址的首地址 As=$,转移的目的地址是本条指令地址,即,转移的目的地址是本条指

57、令地址,即Ad=$ 该指令为两字节,即该指令为两字节,即Bn=2,rel= (Ad-As-Bn)补补= ($2)补补=(2)补)补=FEH 所以所以SJMP $指令的机器码是指令的机器码是80FEH。即黄谆妻铂厢波品浊架镁澄柒灌净哥雄筏帅咕晌蠢双秽号详骚叁挫鸭搀魂第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 计算下面程序中计算下面程序中CJNE指令的偏移量。指令的偏移量。 LOOP:MOV A,P1 CJNE A,#55H,LOOP解解: 由于由于MOV A,P1是是2字节指令,故字节指令,故CJNE指令的首指令的首

58、地址是地址是LOOP+2。又因为。又因为CJNE是是3字节指令,于是字节指令,于是有:有:Ad=LOOP ,As=LOOP+2, Bn=3 rel=LOOP-(LOOP+2)-3补补=-5补补=FBH所以所以CJNE A,#55H,LOOP的指令码为的指令码为B455FBH。2.4.3 空操作指令空操作指令 NOP 机器码机器码 00 该指令经取指,译码后不进行任何操作(空操作)而转到下一条该指令经取指,译码后不进行任何操作(空操作)而转到下一条指令,常用于生产一个机器周期的延时,或上机修改程序时作填充指指令,常用于生产一个机器周期的延时,或上机修改程序时作填充指令,以方便增减指令。令,以方便

59、增减指令。豫邮右器贰住风咸乐例纳村安贼郭归咐凛癸襄疡芹迟忻懊有录惶寨零冗烁第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 将将A累加器的低四为取反四次、高四位不变。每变换一次,累加器的低四为取反四次、高四位不变。每变换一次,从从P1输出。输出。方法一方法一 加加 1 计数:计数: MOV R0,#0 ;计数初值送;计数初值送0LL:XRL A,#0FH ;高;高4位不变,低四位取反位不变,低四位取反 INC R0 ;次数加;次数加1 MOV P1,A ;从;从P1输出输出 CJNE R0,#04,LL ;不满四次循环;

60、不满四次循环 RET 方法二方法二 减减1计数计数: MOV R0,#04H ;计数初值送计数初值送4LL: XRL A,#0FH MOV P1,A DJNZ R0,LL ;次数减;次数减1不等于不等于0循环循环 RET未像集棺镶递严汕空芋茬荐阐抬困幢妨殷轩瘪到嚏盾墒蘑渐响发郁狭涟跺第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 例例 在内部在内部RAM的的40H地址单元中,有地址单元中,有1字节符号数,编写求其字节符号数,编写求其绝对值后放回原单元的程序。绝对值后放回原单元的程序。程序如下:程序如下: MOV A,40H

61、ANL A,#80H JNZ NEG ;为负数转移;为负数转移 SJMP $ ;为正数,绝对值;为正数,绝对值=原数,不原数,不 改变原单元内容改变原单元内容 NEG:MOV A,40H ;为负数求补,得其绝对值;为负数求补,得其绝对值 CPL A INC A MOV 40H,A SJMP $ 有符号数在计算机中以补码形式存放,例如有符号数在计算机中以补码形式存放,例如5,存放在,存放在内部内部RAM中为中为FBH,求补后得,求补后得5, 即即|5|=5。躯孪设仁模丸敝蜕胶婆通磕恶昨碘傈谍冻董戌吏盆踩捉的氨入淄屁介厢豁第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51

62、系列单片机的指令系统系列单片机的指令系统 2.5 2.5 位操作指令位操作指令MCS-51单片机的特色之一就是具有丰富的位处理功能,以进单片机的特色之一就是具有丰富的位处理功能,以进位标志位标志CY为位累加器为位累加器C,使得开关量控制系统的设计变得,使得开关量控制系统的设计变得十分方便。十分方便。 在程序中位地址的表达有多种方式:在程序中位地址的表达有多种方式: 1)用直接位地址表示,如)用直接位地址表示,如D4H。 2)用)用“”操作符号表示,如操作符号表示,如PSW.4,或,或D0H.4 3)用位名称表示,如)用位名称表示,如RS1。 4)用用户自定义名表示。如)用用户自定义名表示。如A

63、BC BIT D4H,其中,其中ABC定定义为义为D4H位的位名,位的位名,BIT为位定义伪指令。以上各例均表为位定义伪指令。以上各例均表示示PSW.4的的RS1位。位。 位操作类指令的对象是位操作类指令的对象是C和直接位地址,由于和直接位地址,由于C是位累加是位累加器,所以位的逻辑运算指令目的操作数只能是器,所以位的逻辑运算指令目的操作数只能是C,这就是,这就是位操作指令的特点。下面将位操作的位操作指令的特点。下面将位操作的17条指令介绍如下。条指令介绍如下。辱丧吭捍蚂竹跑兼舆祥朔纠斑扫悉揍卿督哮肇措天协著呜荧砸得拷卞员廊第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章

64、 51系列单片机的指令系统系列单片机的指令系统 1位清零位清零 CLR C ;0CY CLR bit ;0bit2位置位置 1 SETB C ;1CY SETB bit ; 1bit3位取反位取反 CPL C ; CY CY CPL bit ; bit bit逊猴芒柱筒术闹捏蹄汲恶笑顷酝映束考自椰络声夸叶杨习暗业蝴赖光次惨第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 4.位与位与 ANL C,bit ;CY (bit)CY ANL C,/bit ;CY(bit)CY5.位或位或 ORL C,bit ;CY(bit)CY O

65、RL C,/bit ;CY(bit)CY6. 位传送位传送MOV C,bit ;(bit)CYMOV bit,C ;CYbit腻亩蛆柏褐拼锚仿炸隋匪舶雹遁隅僧羽樊疼癸渡旨搔镁濒危峡涧事分厦滔第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 7. 位转移位转移 位转移根据位的值决定转移,均为相对转移指令,设位转移根据位的值决定转移,均为相对转移指令,设As为下面各指为下面各指令的首地址。令的首地址。JC rel ;CY=1,则转移(,则转移(As+2+relPC),否则程),否则程 序顺序执行序顺序执行JNC rel ;CY=0

66、,则转移(则转移(As+2+relPC),否则程),否则程 序顺序执行序顺序执行JB bit,rel ;(bit)=1,则转移(则转移(As+3+relPC),否则程),否则程 序顺序执行序顺序执行JNB bit,rel ;(bit)=0,则转移(则转移(As+3+relPC),否则),否则 程序顺序执行程序顺序执行JBC bit,rel ;(bit)=1,则转移(则转移(As+3+relPC),且该),且该 位清零;否则程序顺序执行位清零;否则程序顺序执行丈价预删羊畦瞄柠娘叁鬃局沫寐肋标烫镜悟例顾拂巫囚讯阐弯木叉搓萍颖第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 5

67、1系列单片机的指令系统系列单片机的指令系统 例例 用位操作指令实现用位操作指令实现 XX0 X1,设,设X0为为P1.0, X1为为P1.1, X为为ACC.0。 解解(1):因位操作指令中无异或指令,依据因位操作指令中无异或指令,依据XX0 X1X0X1X0X1用与、或指令完成,编程如下用与、或指令完成,编程如下 : X BIT ACC.0 X0 BIT P1.0 X1 BIT P1.1 ;位定义位定义 MOV C,X0 ANL C, /X1 ;C=X0X1 MOV 20H,C ;暂存于暂存于20H 单元单元 MOV C,X1 ANL C,/X0 ;C=X0X1 ORL C,20H ;CX0

68、X1X0X1 MOV X,C SJMP $ 须保澜皋淋斡辽绪瀑某权炳枝耽蛙龙啤贷旁糜捌奴贮虞猿跟镶奇违擦冻造第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 解(解(2):根据异或规则,一个数与:根据异或规则,一个数与“0”异或,该数值不变;异或,该数值不变;与与“1”异或,该数值变反,编程如下:异或,该数值变反,编程如下: MOV C,X0 JNB X1,NCEX ; X1=0,X=C=X0 CPL CNCEX:MOV X,C ;X1=1,X=C=X0 SJMP $胳稚今俊袋返器秉废吃牢厄撩肝铆宽缅园笆鸡械鸯牧奉暴哆疵夸瑟胞

69、甚琵第2章51系列单片机的指令系统第2章51系列单片机的指令系统第第2章章 51系列单片机的指令系统系列单片机的指令系统 小小 结结(1)51系列单片机指令系统的特点是不同的存储空间寻址系列单片机指令系统的特点是不同的存储空间寻址方式不同,适用的指令不同,必须进行区分。方式不同,适用的指令不同,必须进行区分。(2)指令是程序设计的基础,应重点掌握传送指令、算术)指令是程序设计的基础,应重点掌握传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令,运算指令、逻辑运算指令、控制转移指令和位操作指令,掌握指令的功能,操作的对象和结果,对标志位的影响,掌握指令的功能,操作的对象和结果,对标志位的影响,应要求熟记。应要求熟记。让皖榜宙罚筒拭京放屡帚态匠碰谅丽损府让邪慈猫沙补枉瞎镰棒售庙姬活第2章51系列单片机的指令系统第2章51系列单片机的指令系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号