- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 80C51系列单片机指令系统 §3-1单片机指令系统概述 机器语言级指令格式: 1、单字节指令:对于单字节指令有两种情况:一种是操作码、操作数均包含在这一个字节之内;另一种情况是只有操作码无操作数;格式为: 操作码 如:“MOV A,R0”所对应的机器语言指令为“E8H”。 2、双字节指令:对于双字节指令,均为一个字节是操作码,一个字节是操作数;格式为: 操作码 操作数 如:“MOV A,20H”所对应的机器语言指令为“E520H”。 3、三字节指令:对于三字节指令,一般是一个字节为操作码,二个字节为操作数;格式为: 操作码 第一操作数 第二操作数 如:“MOV 20H,#46H”所对应的机器语言指令为“E52046H”。() 为了便于记忆和使用,制造厂家对指令系统的每一条指令都给出了助记符。助记符是根据机器指令不同的功能和操作对象来描述指令的符号。由于助记符是用英文缩写来描述指令的特征,因此它不但便于记忆,也便于理解和分类。这种用助记符形式来表示的机器指令称为汇编语言指令。计算机的指令一般用汇编语言指令来表示。 80C51汇编语言指令格式如下: [标号:] 操作码 [目的操作数] [,源操作数] [;注释] [ ]中的项表示为可选项,可有可无。 标号:又称为指令地址符号,一般是由1~6个字符组成,以字母开头的字母数字串,与操作码之间用冒号分开。 操作码:是由助记符表示的字符串,它规定了指令的操作功能。 操作数:是指参加操作的数据或数据的地址。 注释:注释必须以“;”开始。是为该条指令作的说明,以便于阅读。 在80C51指令系统中,操作数可以是1、2、3个,也可以没有。不同功能的指令,操作数作用不同。例如,传送类指令多数有两个操作数,写在左面的称为目的操作数(表示操作结果存放的单元地址),写在右面的称为源操作数(指出操作数的来源)。 操作码与操作数之间必须用“空格”分隔,操作数与操作数之间必须用逗号“ ,”分开。由指令格式可见,操作码是指令的核心,不可缺少。 例如,一条传送指令的书写格式为: MOV A,3AH ;(3AH)→A 它表示将3AH存储单元的内容送到累加器A中。 Addr11:表示11位的目的地址。用在ACALL和AJMP指令中,可使程序转向与下条指令首字节位于同一2KB区域的任何单元。 Addr16:表示16位的目的地址。用在LCALL和LJMP指令中,可使程序转向64KB程序存储器的任何单元。 rel:表示一个补码形式的8位带符号的偏移量。用于SJMP和所有的条件转移指令中,范围为:-128~ +127。 DPTR:为数据指针,可用作16位的地址寄存器。 bit:内部RAM或专用寄存器中的直接寻址位。 /:位操作数的前缀,表示对该位操作数取反,再参与运算,但不改变指定位(bit)的原值。 (X): 寄存器X的内容或地址为X的存储单元中的内容。 如:MOV direct1,direct2 ;direct1←(direct2) ((X)):由间址寄存器X所间接寻址的存储单元中的内容。 如:MOV direct,@Ri; direct←((Ri)),将Ri指示的地址单元中的内容送入direct中。 ←:表示将箭头右边的内容传送至箭头的左边。箭头右边为源操作数,一般表示到数字;箭头左边为目的操作数,表示到存储器单元或寄存器,不能表示到数字。 执行指令对标志位影响的表示符号为:“打勾”有影响,“打叉”无影响。 §3-2 80C51单片机指令寻址方式 1. 寄存器寻址方式 ⒉ 直接寻址方式 MOV A,3AH ;将内RAM 3AH单元中的数据传送至A中 MOV A,P0 ;将特殊功能寄存器P0口中的数据传送至A中 说明:3AH和P0是以direct形式出现的直接地址 3、 寄存器间接寻址方式 MOV A,@R0;将以R0中内容为地址的存储单元中的数据传送至A中 MOVX A,@DPTR;将外RAM中 DPTR所指存储单元中的数据传送至A中 有关寄存器间接寻址方式范围及其说明: 1、当访问片内RAM低128B或片外RAM(00H-FFH)时,可采用当前工作寄存器组中的R0或R1作间接地址寄存器(用@表示),即由R0或R1间接给出操作数所在的地址,这样,R0或R1为存放操作数单元的地址指针。 2、访问片外数据存储器时,还可用数据指针DPTR作间址寄存器。DPTR是16位寄存器,故可对整个64 KB片外RAM空间寻址(0000H-FFFFH)。 例如指令MOVX A,@DPTR,”其功能是把DPTR指定的片外RAM中
原创力文档


文档评论(0)