- 1、本文档共265页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指令、指令系统等基本概念以及MCS-51系列单片机CPU支持的七种寻址方式已在第1章中介绍过,这里不再重复。本章只介绍MCS-51系列单片机指令系统及其汇编语言程序设计的一些基本概念及注意事项。 MCS-51系列单片机采用复杂指令系统,共有42种操作码助记符,支持直接寻址、寄存器寻址、间接寻址、立即数寻址、变址寻址、相对寻址、位寻址等七种寻址方式。不同指令操作码助记符与不同寻址方式之间的组合就构成了MCS-51系列单片机的指令系统,共111条。按功能可将这些指令分成数据传送、算术运算、逻辑运算、控制转移、位操作等五大类,每一类型的指令中又包含若干条指令。这使许多初学者无所适从, 感到很难掌握,其实只要理解每类指令的功能、助记符及其支持的寻址方式,即可从MCS-51指令表中找出完成特定操作所需的指令。 本章在介绍MCS-51指令系统时,为了方便叙述,使用下列符号及约定: 1 ?Rn n? ?0~7 :表示工作寄存器组R7~R0中的某一寄存器。 2 ?@Ri i? ?0~1 :以寄存器R0或R1作间接寻址,表示操作数地址在寄存器R0或R1中,而“@”是间接寻址标识符。操作对象是外部RAM或内部RAM 00~FFH单元 对仅有前128字节内部RAM的51子系列来说,地址范围是00~7FH 。 3 ?@DPTR:以数据指针DPTR 16位 作间接寻址,操作数在外部RAM中,“@”同样是间接寻址标识符。 4 ?#data:8位立即数;#data16:16位立即数。其中“#”是立即数标识符,常用于初始化内部RAM单元、特殊功能寄存器、数据指针DPTR。 5 ?direct:8位直接地址,可以是内部RAM 00~7FH单元字节地址、内部RAM 20H~2FH单元中的位地址或特殊功能寄存器的映象地址。 6 ?/bit:在位操作中,取出“bit”位信息后,先取反,然后再参与运算,但不改变bit位的值,其中“?/?”是位取反标识符。 7 ?rel:补码形式的8位偏移地址,范围在-128~+127。 8 ?rrr:在操作码中,用于表示R7~R0寄存器的编码,rrr编码与寄存器R7~R0之间对应关系如下: rrr的编码 二进制 对应的工作寄存器名 000 R0 001 R1 010 R2 011 R3 100 R4 101 R5 110 R6 111 R7 9 ?addr11:11位目标地址,用于ACALL 绝对调用 和AJMP 绝对跳转 指令中,转移范围为2 KB。 10 ?addr16:16位目标地址,用于LCALL和LJMP指令中,转移范围为64 KB。 11 操作数中的累加器A写作“A”时,是寄存器寻址;写作“Acc”时是直接寻址,尽管操作对象均是CPU内的累加器A。对于支持直接寻址和寄存器寻址的指令来说,用A和Acc均可,只是指令的操作码不同;对于不支持寄存器寻址的指令 如PUSH、POP ,则不能将累加器Acc写作“A”;而对于不支持直接寻址的指令,如“MOVX”中的“A”也不能写成“Acc”。因此,在汇编语言指令中,须严格区分累加器A的写法。 12 累加器A内容为nn时,用“A nn”表示;地址编码为mm的存储单元内容用“ mm ”表示。 13 指令执行时间用“机器周期”度量。例如“MOV A, Rn”指令执行时间为一个机器周期,在标准MCS-51中,一个机器周期包含12个振荡 即时钟 周期。如果晶振频率为12 MHz,则振荡周期T? ?1/12 μs,因此一个机器周期为12T,即1 μs;对于运行在“6时钟/机器周期”的8×C5××2、89C51RX、P89C6××2芯片来说,指令机器周期数不变,但指令执行时间缩短了一半;又如对于“2时钟/机器周期”芯片LPC900系列来说,指令执行时间只有标准MCS-51的1/6。 14 指令机器码一律用二进制书写。 15 对于不常用或约束条件多、容易出错的指令,在指令表中加灰色背景,程序设计时应尽量避免使用这类指令。 3.1.1 数据传送指令 数据传送是计算机系统中最常见,也是最基本的操作。因此,数据传送指令在计算机指令系统中占有重要位置,指令条数也最多,其任务是实现计算机系统内不同存储单元之间的信息传送,如图3-1所示。 图3-1 MCS-51中不同存储区之间数据传送示意图 在MCS-51指令系统中,数据传送指令包括: 1 内部RAM、特殊功能寄存器之间的数据传送,这类指令用“MOV”作为指令操作码助记符。 2 外部RAM 包括扩展的并行I/O口、内部扩展RAM 与累加器A之间的数据传送,这类指令用“MOVX”
您可能关注的文档
- 边做边学——InDesign CS3排版艺术案例教程 教学课件 作者 魏哲 08.ppt
- 边做边学——InDesign CS3排版艺术案例教程 教学课件 作者 魏哲 09.ppt
- 边做边学——InDesign CS3排版艺术案例教程 教学课件 作者 魏哲 10.ppt
- 边做边学——Photoshop CS3图像制作案例教程 教学大纲作者 魏哲 23755 边做边学—PhotoshopCS3图像制作案例教程教学大纲.doc
- 边做边学——Photoshop CS3图像制作案例教程 教学课件 作者 魏哲 01.ppt
- 边做边学——Photoshop CS3图像制作案例教程 教学课件 作者 魏哲 02.ppt
- 边做边学——Photoshop CS3图像制作案例教程 教学课件 作者 魏哲 03.ppt
- 边做边学——Photoshop CS3图像制作案例教程 教学课件 作者 魏哲 04.ppt
- 边做边学——Photoshop CS3图像制作案例教程 教学课件 作者 魏哲 05.ppt
- 边做边学——Photoshop CS3图像制作案例教程 教学课件 作者 魏哲 06.ppt
文档评论(0)