- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章MCS_C51的指令系统
单片机原理及应用; 常用的编程语言;2.汇编语言 为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码,于是就产生了汇编语言。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言亦称符号语言。汇编语言由 于是采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。 汇编语言中由于使用了助记符号, 计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的“汇编程序“的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。
汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。 ;3.高级语言 不论是机器语言还是汇编语言都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉。
高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以通用。
计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。
每一种高级语言,都有自己规定的专用符号、英文单词、语法规则和语句结构。高级语言与自然语言更接近,而与硬件功能相分离,便于广大用户掌握和使用。高级语言的通用性强,兼容性好,便于移植。
;第3章 MCS-51指令系统 ;3.1 指令格式及常用符号;2.8位编码含有操作码和寄存器编码
高5位为操作码,低3位为存放操作数的寄存器编码。如:MOV A,R0
编码为1110 1000B,其十六进制表示为E8H(低3位000为寄存器R0的编码)。功能是将当前工作寄存器R0中的数据传送到累加器A中。 ;二、双字节指令
第一字节表示操作码,第二个字节表示参与操作的数据或数据存放的地址。
如:MOV A,#50H
编码为0111 0100B,0101 0000B。其十六进制表示为74H,50H。功能是将立即数“50H”传送到累加器A中。 ;三、三字节指令
指令的第一字节表示该指令的操作码,后两个字节表示参与操作的数据或数据存放的地址。如:MOV 20H,#50H
编码为0111 0101B,0010 0000B,0101 0000B。其十六进制表示为75H,20H,50H。功能是将立即数“50H”传送到内部RAM 的20H单元中。;3.1.2 符号指令的格式
一般格式为:
操作助记符 [目的操作数][,源操作数][;注释]
多数指令为两操作数指令;当指令操作数隐含在操作助记符中时,在形式上这种指令无操作数;另有一些指令为单操作数指令或三操作数指令。指令的一般格式中使用了可选择符号“[ ]”,包含的内容因指令的不同可以有或无。
在两个操作数的指令中,通常目的操作数
写在左边,源操作数写在右边。 ; 如:指令ANL A,#40H
功能是将立即数“40H”同累加器A中的数进行“与”操作,结果送回累加器。
ANL为“与”操作的助记符,立即数“40H”为源操作数,累加器A为目的操作数。
注:在指令中,多数情况下累加器用“A”表示,仅在直接寻址方式中,用“ACC”表示累加器在SFR区的具体地址E0H。
试比较,指令MOV A,#30H的机器码为74H、30H;而指令MOV ACC,#30H的机器码为75H、E0H、30H。;3.1.3 符号指令及其注释中常用的符号
Rn(n=0~7)--当前选中的工作寄存器组中的寄存器R0~R7之一;
Ri(i=0,1)--当前选中的工作寄存器组中的寄存器R0或R1;
@ ---------------间址寄存器前缀;
#data ------------8位立即数;
#data16---------16位立即数;
direct--------片内低128个RAM单元地址及SFR地址(可用符号名称表示);addr11-------11位目的地址;
addr16-------
文档评论(0)