独立于应用的虚拟机
global.js ............ vm环境的定义
opcode.js ............ vm处理器的具体代码
fun.js ............ vm函数(api)表,可自由扩展(最好只定义基本的通用的函数,非通用的使用原型定义到其它文件中)
script.html ............ vm测试
script.jasm ............ vm测试用的脚本
-------------------------------------------------------------------
寄存器:
R0 是累加器,任何操作结果都会返回给它.
R3 是计数器,循环指令中的循环次数取它,并在完成时减1
R1 R2 可以作为临时变量用,或者进一步强化处理机时做其他特殊用途
值传递方向:
没有,我没有实现得象机器汇编一样,那是没有必要的.为了使主要精力都放在解决问题、流程上,
返回值都放入了R0,能简化代码生成器(分析器,将表达式、语句翻译成vm用的汇编)的推导过程.
应用:
具体的应用靠state目录中的状态转换和其他扩展来实现。大而全是不现实的,可能的话,为一个简单
应用写一个相应的简单的状态转换要远远好于写一个大而全的分析器来解决所有问题,除非想写一门自己的语言.
不应把大部分问题都由vm的脚本来解决,如:完成某个微观的具体的功能.这种时候推荐在"fun.js"
中扩展 API,象诸如:alert,print,getHtml,md5 等等,扩展后在脚本中使用call来调用,这样可以
避免把问题复杂化,用脚本解算法问题除了起测试环境的可靠性外没有任何意义.另外扩展的时候要
记得将返回值放入R0中.
如果需要扩展的是一些复杂且作用单一的功能,建议另建一个文件扩展,尽量保证"fun.js"的通用性.
进一步完善:
希望把握一个原则,通用!这里的“通用”外延比较广,包括多浏览器,包括vm用的脚本要独立于应用,
包括考虑移植到其他语言(如:jsp/java)中的可能性...等等,总之多考虑能为将来多节省时间.
-------------------------------------------------------------------
手工汇编:
.data,name,"var" | var
数值:
没有加 ( "" ) 的声明方式就是任意值,如果是数字特征就会被作为数值运算,如果不是数值特征
将被作为字符串操作.
字符串:
字符串变量前端带有标识符 "{[/s]}",要获取有效的变量值使用对象内部的getVar来获取。
标号:
一个单独占一行,末尾是":"符号的词汇既是标号.
代码中引用标号有两种方式:
#标号 :只能作为代码中参数单独使用,最终会被替换为立即数.
如:
__test1:
code...
code...
jmp,#__test1
@{标号} :可以放在任何位置,只要这样有意义,当然,是不能放在op这个位置上的了.它也会被替换为立即数,
使用起来较灵活.
__test1:
code...
code...
即可以:
jmp,@{__test1}
也可以:
.data,str1,"行号:@{__test1}"
指令:
打开"opcode.js"一览无余.代码中 指令、操作数1、操作数2...使用逗号(,)分隔,使用的是几乎没有什么分析
过程的简单机制.
为了方便直接手工汇编及调试,支持"invoke",不喜欢汇编的可以不关心这个.一些简单的应用可能没必要搞得去写
一个编译器那么复杂或者是个汇编狂,直接手工汇编时用这个就方便多了。
因为指令都对应有索引值,已经就扩展成直接使用二进制文件做了准备.目前正在规划中
cop的编写与维护人:
=Red_Fox= 2008-10-18
没有合适的资源?快使用搜索试试~ 我知道了~
js web excel 0.57 + js vm
共40个文件
txt:14个
js:13个
html:8个
5星 · 超过95%的资源 需积分: 6 432 下载量 78 浏览量
2008-12-02
18:17:23
上传
评论
收藏 75KB RAR 举报
温馨提示
修正了一些低级错误,增加了直接对日期计算.
资源推荐
资源详情
资源评论
收起资源包目录
cop0.57.rar (40个子文件)
excel
e_fun.js 24KB
matrix.js 11KB
matrix.html 5KB
editTable.js 8KB
e_e.js 26KB
readme.txt 43B
e_syntax.js 23KB
bbk
syom0.02.html 7KB
syom0.03.html 5KB
excel[本地].js 718B
设计
b.bmp 213KB
c.bmp 592KB
Thumbs.db 13KB
a.bmp 156KB
excel[xxx].js 920B
state
e_state.xml 10KB
e_state.js 12KB
readme.txt 30B
e_state.txt 22B
mx_local.html 3KB
mx.html 3KB
cop0.56修正说明.txt 371B
vm
script.html 4KB
global.js 10KB
os
excel.txt 695B
os.txt 225B
r_script.html 5KB
kernel.js 10KB
compile.js 4KB
script
array.txt 1KB
jmp.txt 944B
loop.txt 1KB
obj.txt 142B
string.txt 2KB
api.txt 4KB
script.txt 2KB
readme.txt 3KB
opcode.js 44KB
api.js 19KB
encodetest.html 1KB
共 40 条
- 1
darkfox123
- 粉丝: 6
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页