- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机外文原稿1翻译
8051微控制器的字节码解释器
N. Jeenjun S. Khuntaweetep and S. Somkuarnpanit
一 引言
要使用微控制器,用户必须了解其架构和语言。每个家庭的微控制器都有它自己的体系结构和指令集。例如PIC家庭是RISC和8051是CISC。当用户想要使微控制器的变化来支持新的微控制器,可帮助其他用户开发新的方案。
它是废时间,因为用户必须学习新的微控制器的架构和指令集,以及解释另一种方式的微控制器要解决的问题。当用户想要改变新微控制器,用户只安装解释新微控制器,但不写新的程序。
例如,对于字节代码的Java语言,Java作为由Sun Microsystems引入,在1994年已经传遍了整个计算机行业,并已传递到所有域。不过Java是提供“一次编写,运行无处不在“的软件。在图1中,程序员编写的Java项目。 Java编译器将编译Java程序的Java字节码。使用Java程序,用户需要安装Java虚拟机操作目标系统。如果用户要改变到新的操作系统,用户只需安装Java虚拟机和Java程序就可以正常运行。这种情况下的Java虚拟机就是Java系统解释器。
世界上人们最喜欢的玩具是乐高的头脑风暴。乐高积木解释器中有H8微控制器。用户接口是基于图形块。这很容易为初学者即使孩子们,都可以来开发自己的应用。为了解释的其他例子,由麻省理工学院MetaCricket开发的,GoGo电路板,通过BasicStamp视差,picoJava-Ⅰ和picoJava-Ⅱ,由Sun微系统的嵌入式Java虚拟机和字节代码固件设计组成的单片机。
二 系统比较
在图2中所描绘的标准的微控制器(MCU)语言设计,就是用户写入装配程序为目标MCU和编译每个系统的机器代码。在这情况下,用户必须为8051和PIC制定方案2。
在图3中,用户安装字节码解释器,既然后在8051和PIC单片机写入程序字节代码指令集。在这种情况下,用户写程序只有1次。
三 翻译框图
这里解释的MCU有3个部分,他们如图4被加以描述。VM控制器是翻译的核心,它控制读取/执行和状态的命令,IF,ELSE,REPEAT和GOTO。VM EXECUTE是字节码解码器。外围是硬件模块。它包括,并口,串口,I2C端口,定时器,液晶口和算术函数。
在图5 系统流程图描述中MCU后复位后,解释器从内置闪存取出字节码。条件1将被选中,不管它是正常的任务或任务的条件。如果是正常的任务,接下来的字节码会被解码为正常。如果不是,解释器之前会去下一个命令,检查情况。完成该操作之后,程序计数器(PC)将被提高到下一行地址。
A.数据堆栈
解释器被设计成具有16级数据栈。该优势数据栈是,存储条件的结果指令值IF/ ELSE和WAITUNITL并从结果算术命令。
数据堆栈示例被描绘在图6中。
00,02,09,01,00,06,00,01,40,01,35,1C,0A
00,02:行程序地址
?09:SUM
?01:条件1(IF语句)
?00:没有条件2
?06:数字IF语句的奴隶
?00:这是主线
?01,40:推送数据40H到当前栈
?01,35:数据推35至下一个栈
?1C:比较均等字节码
?0A:在堆栈比较数据和堆栈+1,结果将在堆。
B字节码格式
字节码格式由7份组成,图7中所描绘那样。
?AddrH和ADDRL是16位地址线。(最大为65535行)
?SUM使用字节中的每一行(ADDRL,AddrH和SUM不包括在内)
?条件1是首要条件。
?条件2是次要条件。
?CondListH,在以下情况下,如果条件1不为00H
平等00H:这是从行地址。
不等于00H:这是主线地址。
?CondListL,在以下情况下,如果条件1不为00H
平等00H:这是主线地址。
不等于00H:这是从行地址。
?字节代码是8位的命令。
C.Byte代码指令集
该指令集被归类为2个部分:
没有条件的命令
对于没有条件的命令,条件1将是00H,条件2 CondListH和CondListL将不会出现在行中。在图8中格式描绘实施例如对于本命令TX232,RX232,I2CSTART,I2CWRITE,
LCD,WAITTIME,OUTPORT和INPORT。
命令条件
对于条件命令包括,IF,ELSE,REPEAT和GOTO。在图9中,格式条件1描绘会不会是00H和条件2为00h保留进一步使用。
解释器设计有8级IF和ELSE的命令。在图10中显示了3个级别IF命令和2ELSE命令的水平。对于IF命令,字节码01H-08H被保留,81H-88H是为IF行结束保留。 ELSE命令,字节码09H-0FH保留和EL
文档评论(0)