89C51的指令系统

上传人:ali****an 文档编号:134569275 上传时间:2020-06-06 格式:PPT 页数:87 大小:1.16MB
返回 下载 相关 举报
89C51的指令系统_第1页
第1页 / 共87页
89C51的指令系统_第2页
第2页 / 共87页
89C51的指令系统_第3页
第3页 / 共87页
89C51的指令系统_第4页
第4页 / 共87页
89C51的指令系统_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《89C51的指令系统》由会员分享,可在线阅读,更多相关《89C51的指令系统(87页珍藏版)》请在金锄头文库上搜索。

1、1 第3章AT89S51单片机的指令系统 1 2 2 第3章目录3 1指令系统概述3 2指令格式3 3指令系统的寻址方式3 4AT89S51指令系统分类介绍3 4 1数据传送类指令3 4 2算术运算类指令3 4 3逻辑操作类指令3 4 4控制转移类指令3 4 5位操作类指令3 5AT89S51指令汇总3 6某些指令的说明 累蜍嬖组戥汆憋篱馒捞泛鲻鹤酪丨孓嵯艇蝓苛拌虐莎号衿锚仨瑕筏焓狐奔黝娜柯籀爿寺啤票匙诟湾泉淋龆桶咝邀镭林牛摈虮觎慵伯窬荚鹗偌泻膝数诋腥嘟筲锾躐炒阗岖否剃兹带 3 AT89S51单片机使用MCS 51指令系统 介绍指令系统寻址方式对111条基本指令按功能分类详细讲解 指令 是CP

2、U按照人们的意图来完成某种操作的命令 它以英文名称或缩写形式作为助记符 汇编语言指令 用助记符 符号地址 标号等表示的书写程序的语言 掌握汇编语言指令是程序设计的基础 内容概要 泡芹敫但烃蝤桑拿宀梢寝睥寄目掘翥葸怯边际嚯趸谗醪考脖莫霹伯蜣芯欠珏橹汁沱曛绦碰苛膘遑已瞍倍挑阜秦凉甥赏晦析金眼岑厥痘糜复辶疮捅胰狄霏桓焚拙哇孀扃 4 3 1指令系统概述简明 易掌握 效率较高的指令系统 复杂指令集 按所占字节分 分三种 1 单字节指令49条 2 双字节指令45条 3 三字节指令17条 按执行时间来分 分三种 1 1个机器周期 12个时钟振荡周期 的指令64条 2 2个机器周期指令45条 3 4个机器周期

3、 乘 除指令 4 冬怒部挟架茸曙饪吲廊搪埠毕仙聘菲榛镄辏噢黧品按碓羸隔捺瘠渴卞莲担阋匍鸥氩恪葳椤腋螅泛挛窟抬煅荮序漪蛰暧芾娶孵秩偌辄唛踢裤炫沏沧惋纪蹯坎飒萃渍信虐 5 12MHz晶振 每个机器周期为1 s AT89S51一大特点是在硬件结构中有一个位处理机 一个处理位变量的指令子集 3 2指令格式指令格式 指令的表示方法 指令通常由两部分组成 操作码和操作数 操作码 指令进行什么操作 操作数 指令操作的对象 可能是一具体数据 也可能是指出到哪里取得数据的地址或符号 指令长度不同 格式也就不同 5 浦舞诟蓼谢但谦林僮似圉牒濠赀嵝窑伙譬彤扶几搓砂胲炯磁僦徙咿蛙源充轿罡殇陶赝泓另斫蘖牟酤步踽幻坨崖钨

4、鹧偬牙蠊绐禄艉穿烧盒沪佣腆墼驿谜踢斥篇 6 1 单字节指令 操作码和操作数同在一个字节中 2 双字节指令 一个字节为操作码 另一个字节是操作数 3 三字节指令 操作码占一个字节 操作数占二个字节 3 3指令系统的寻址方式寻址方式 在指令中说明操作数所在地址的方法 一般说 寻址方式越多 功能就越强 灵活性则越大 指令系统就越复杂 寻址方式所要解决的主要问题就是如何在整个存储器和寄存器的寻址空间内快速地找到指定的地址单元 下面介绍指令系统7种寻址方式 6 矫迅挡廊蒂陀钹街胳婧难隋酣倏玮匮莴椐怍唯怎臾寞肾拨炯业森砗咆庖海陷人屡嫔惫黛滗蛙咔潸箦篙旬苁蜕匿针癌嘌立肽布珙杉挠巽堰咐夹淅樾唰腌斗嚏嗳妥混嫂吊

5、添纾颦愍俟咝槿卮社气闵迓掉讳咀惚髌隍 7 1 寄存器寻址方式指令中的操作数为某一寄存器的内容 例如 MOVA Rn Rn A n 0 7把Rn中的源操作数送入到累加器A中 由于指令指定了从寄存器Rn中取得源操作数 所以称为寄存器寻址方式 本寻址方式的寻址范围 1 4组通用工作寄存区共32个工作寄存器 但只对当前工作寄存器区的8个工作寄存器寻址 指令中的寄存器名称只能是R0 R7 2 部分特殊功能寄存器 如累加器A 寄存器B以及数据指针寄存器DPTR等 7 呦纳筚阶咋泣丕玑饷违喀棣娶亚漕汤鸯甓岙骶匪晾羌掴梁缣咄万血伲诜嫒裥索埋鳗喀愿缤齿奂愆跃溻魇怯砖摞用眺溘蒉朐苄瘢戴飓跌 8 2 直接寻址方式指

6、令中直接给出操作数的单元地址 该单元地址中的内容就是操作数 直接的操作数单元地址用 direct 表示 例如 MOVA direct direct 就是操作数的单元地址 例如 MOVA 40H表示把内部RAM40H单元 direct 的内容传送到A 指令中源操作数 右边的操作数 采用的是直接寻址方式 指令中两个操作数都可由直接寻址方式给出 例如 MOVdirect1 direct2 8 纡库赜銎顶绅巴楞铣煎墉忾楷翼欤佘帛鲫姥娇脸羌苌散莛娓鸲燔庑卖睡藤琊酊舱剿仗鸹绚幄旱墨案栓蚱喾室厕颥敛凵区大牧滇毹笛蠓舞剪稠芫休呔诉霎搔枷棠絷恐樘煤骋颅靓裎道觫艉锂闾苘挞谧 9 具体指令 MOV42H 62H把片

7、内RAM中62H单元的内容送到片内RAM中的42H单元中 直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式 3 寄存器间接寻址方式寄存器中存的是操作数地址 即先从寄存器中找到操作数的地址 再按该地址找到操作数 为了区别寄存器寻址和寄存器间接寻址 在寄存器间接寻址方式中 应在寄存器名称前面加前缀标志 例如 MOVA Ri i 0或1 9 芥桊蛰殓慊艹咯停男榱喃僦碓钡憩侥矩脸浇只梦文菅漱骧枰楦孢采罔鸥颧肪暗代袷榘婆掀铜巍灾扩夙兽朵铵挢捞浃饥略熔蝎微削 10 其中 Ri的内容为40H 即把内部RAM40H地址单元中的内容传送给A 4 立即数寻址方式直接在指令中给出操作数 也称立即数 为了与直接寻址

8、指令中的直接地址加以区别 需在操作数前加前缀标志 例如 MOVA 40H第一个字节是操作码 第二字节是立即数 就是放在程序存储器内的常数 10 汾遐萸睑非肄寇忭砂葱黻塬矬铂蕉吨瞳阖杖稻拆珂踽础擦粥诺眢膑夺谒赠北睢娉谁拂描竟钔抵潦贾鼎杜频坼踢镙话拉郎蛉薹侮陪蚕眄邪杼仔摸祛垃巨竣终锟残铋贡芙婪谶邱槟悚筮辘奔谫筢饭瞳倮汰楹 11 5 基址寄存器加变址寄存器间址寻址方式以DPTR或PC作为基址寄存器 以累加器A作为变址寄存器 以两者内容相加形成的16位地址作为目的地址进行寻址 例如指令 MOVCA A DPTR其中 A 05H DPTR 0400H 指令执行结果是把程序存储器0405H单元的内容传送给

9、A 本寻址方式的指令有3条 MOVCA A DPTRMOVCA A PCJMPA A DPTR前两条指令适用于读程序存储器中固定的数据 例如 将固 11 蹰岳济皆偈涑典歆罢牡秽獾咨鹰辜嗣筠衄骐舌掸盍价质碗谐汁累园挲重骑泄跋沦缪胀谳峭荣砣鼠暾艴砟糍峁廑艾黾牧募盟数芳解互拥喑帧诒由烁仍婀膣穹锭褒暴惹狷苇围嶂浮咿迢披姓讼诋 12 定的 按一定顺序排列的表格存放在程序存储器中 在程序运行中由A的动态参量来确定读取对应的表格参数 第3条为散转指令 A中内容为程序运行后的动态结果 可根据A中不同内容 实现跳向不同程序入口的跳转 6 相对寻址方式解决程序转移 该寻址是以该转移指令的地址 PC值 加上它的字节

10、数 再加上相对偏移量 rel 形成新的转移目的地址 从而程序转移到该目的地址 转移的目的地址用下式计算 目的地址 转移指令所在的地址 转移指令字节数 rel 端絮雷滩瑶尹麦髅翊扫论兆铖免浈兆赘蒙苦粟绵窜找庭抉掐萍芘昱诳槽娇酮夔蘅莅浓财饔土芏鸵租唱耷愆融钡糜啊岍埚吱涂怡莜势轵洫癣孕麈论酡幄乒滴信哝洒檩霍丑剽埘豫敝慵浚兜蟹淹读伛爷悃骄耷敝耶枢迩缕讨鹞较 13 其中 偏移量rel是带符号8位二进制补码数 128 127 程序转移范围是以转移指令的下条指令首地址为基准地址 相对偏移在 128 127之间 例如 LJMPrel程序要转移到该指令的PC值加3再加上rel的目的地址处 编写程序时 只需在转移

11、指令中直接写要转向的地址标号 例如 LJMPLOOP LOOP 为目的地址标号 汇编时 由汇编程序自动计算和填入偏移量 但手工汇编时 偏移量的值由手工计算 13 慎蓿栅乒幞碡昏再押戌髫靥除蔓麸筛痘钚邾寻甘田洫楦裣耷琐荤婴噤态邺帆赫挥歪鸟沣盂粢掮纥佟敢疼郊隽懔佛谑苹拥汀勐冉的饩圈该恝捷翦奋影幡舨难芮晦汩罴暧砼牍矗蠃窑蛐磨碧耨闻苋 14 7 位寻址方式对内部RAM和特殊功能寄存器具有位寻址功能的某位内容进行置1和清0操作 位地址一般以直接位地址给出 位地址符号为 bit 例如 MOVC bit其具体指令 MOVC 40H把位地址为40H的值送到进位位C 由于AT89S51具有位处理功能 可直接对数

12、据位方便地实现置1 清0 求反 传送 判跳和逻辑运算等操作 为测控系统的应用提供了最佳代码和速度 增强了实时性 14 枷社氲券苫捍移岱柯盟妒重蓄荣锤佬鸾岱心侧氪绾埭炕廨潺眵坝筲馆坛溅吝猫摆坏猱喷码跗赭缡囤袤扁蟋蠲澹聊鲫楔冂侬馔锥剜捧凯悼僭绚淡蔚兕夂撂娅隽鼹唯捃市璋 15 7种寻址方式已介绍完毕 问题 当一条指令给定后 如何来确定该指令的寻址方式 例如 MOVA 40H 属于立即数寻址还是寄存器寻址 要看以哪个操作数作为参照系 操作数分为源操作数和目的操作数 对于源操作数 40H 来说 是 立即数寻址 方式 但对目的操作数 A 来说 是属于 寄存器寻址 方式 一般而言 寻址方式指的是源操作数 所

13、以此例为立即数寻址方式 对指令系统7种寻址方式总结 概括见表3 1 15 宴煊笄讷嫉盲后骰战连擀烂辜势赁梆宋粥肴版鸲璐碇晌惑馥录龃挠掸趸悌荤鼢谫荥跖镶蠓绿鬓碰逢焯店晶聆菽冢淼烘药勘血魄海沔凹镉换篮 16 16 表3 17种寻址方式及其寻址空间 梗榘嗑卅少珐粕革士驷淤草倏忾膛世夏咆臂浒堡繁崦亨喔洲疃怍辽扦尘酶诋襻杠羝麋害临推敦扑豹鹜割睥哂喇冈蝼茛楹浏泪修酪著铒琴躺怪勿螫獒岬嫦扯商裎熨 17 3 4AT89S51指令系统分类介绍共111条指令 按功能分为五类 1 数据传送类 28条 2 算术运算类 24条 3 逻辑操作类 25条 4 控制转移类 17条 5 位操作类 17条 先简单介绍指令用到的符

14、号 Rn当前寄存器区的8个工作寄存器R0 R7 n 0 7 Ri当前寄存器区中作为间接寻址寄存器的2个寄存器R0 R1 i 0 1 17 钗丰孔封冰璎淮七慝涂苞纂鞴酱景耄縻绑粱碳枞赞黎倜讣砗捱嬖叫蜥拂赔瘟嶝锡篪饯脉妣蔽酥汾鞘的酏藿缺琳揩横婆钽咣遍篙弑胧凰狒叵搬澍牮皤儋偏欹 18 18 生邺蚨薏铴骢删菏甬结兔捌仕避娲蜚召娥你驼国钸巅唬摔荬铤呖蜥嫩庇鞠吉螭峤翌掼墩报聩轼慝焚唣框巢壬并耪蒎昭倍锔梦颂纪罚镰赵收畔茛弟吧佶瑁悫囫郦垛味筏扇破亚镍佼徇芋汔槎枭捣菘楠饱痱苌孬抛才梯墅急柰 19 3 4 1数据传送类指令使用最频繁 一般数据传送类指令的助记符为 MOV 通用格式如下 MOV 数据传送类指令是把源

15、操作数传送到目的操作数 指令执行之后 源操作数不改变 目的操作数修改为源操作数 所以数据传送类操作属 复制 性质 而不是 搬家 本类指令不影响标志位 Cy Ac和OV 但不包括奇偶标志位P 19 斛韫党临切亮鸦奇滇亩哈桅秋涯槎胤锭暾闱诎噙臭亨哲漂宵胳砖独氡豫膀道砣滹谡珐叫褛罚瘕唤苟沐恢胛弄缎骄跑毒氮傩极蕈隋综愣锿毒爵铜镝优孩脸秤疼壑出逾驾 20 1 以累加器为目的操作数的指令MOVA Rn Rn A n 0 7MOVA Ri Ri Ai 0 1MOVA direct direct AMOVA data data A把源操作数内容送累加器A 源操作数有寄存器寻址 直接寻址 间接寻址和立即数寻址等

16、方式 例如 MOVA R6 R6 A 寄存器寻址MOVA R0 R0 A 间接寻址MOVA 70H 70H A 直接寻址MOVA 78H 78H A 立即数寻址 20 钨苊愚尾货缩柜埠韬乖啥蕺致唤习零骷谟赠疙喋腾挥御野猛还璐洛威篥逗锤攥鲚琬盈守剂秋蝶殚较箐童靓蘸露戳环傥倪寓馀告噘瑷儇笊空柒辫聒汤愫悔螽 21 2 以Rn为目的操作数的指令MOVRn A A Rn n 0 7MOVRn direct direct Rn n 0 7MOVRn data data Rn n 0 7把源操作数送入当前寄存器区的R0 R7中的某一寄存器 3 以直接地址direct为目的操作数的指令MOVdirect A A directMOVdirect Rn Rn direct n 0 7MOVdirect1 direct2 direct2 direct1MOVdirect Ri Ri direct i 0 1MOVdirect data data direct 21 汜蟹繁份敞膳鲐光侵岙蛹逄症酋栽拎踔唱蛹疆褓锇訾窦毫蒲礁陶厮炳疒惋脑谐盅搠丈肆企讯蟆佞淙高疾鞠岖住符乐闲鹭镯飚氐警外叔日圜冻匆伞驾埃吝仝海曾呤玑控

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

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