原文:四十年前的 6502 CPU 指令翻译成 JS 代码会是怎样

去年折腾的一个东西,之前 blog 里也写过,不过那时边琢磨边写,所以比较杂乱,现在简单完整地讲解一下。 前言 当时看到一本虚拟机相关的书,正好又在想 JS 混淆相关的事,无意中冒出个想法:能不能把某种 CPU 指令翻译成等价的 JS 逻辑 这样就能在浏览器里直接运行。 注意,这里说的是 翻译 ,而不是模拟。模拟简单多了,网上甚至连 JS 版的 x 模拟器都有很多。 翻译原则上应该在运行之前完成的 ...

2017-03-02 20:30 23 6382 推荐指数:

查看详情

应用程序框架实战二:十年前的回忆

  大约10年前,我刚刚步入.Net开发,那时候还很流行单层架构,直接在界面上拖控件,然后绑定数据。数据库操作使用原生的Ado.Net,每次都要创建数据库连接,打开连接,发送Sql,获取结果、关闭连接。每当我需要进行数据库操作的时候,就把这一段复制粘贴过去,就这样干了几个月。   一日,一位师兄 ...

Thu Oct 30 01:16:00 CST 2014 6 6612
种一棵树最好的时间是十年前,其次是现在。

前言: 最近经常被朋友问到的两个问题。 问题一: “从事IT工作3了,做技术好累啊,是不是做到30岁就不能继续往下做啊?” 问题二: “我已经30岁了,还能不能学编程?” 我给出的答案是: 只要你兴趣还在,可以一直做,什么时候都不会晚; 种一棵树最好的时间是十年前,其次是现在。 本人目前 ...

Mon Aug 08 17:07:00 CST 2016 24 8863
云原生时代 来看看十年前李彦宏、马化腾和马云对云计算的评价

在容器、Kubernetes、DevOps,以及微服务等技术的推动下,2020云原生势不可挡。 .NET Core 也非常契合 云原生对应用运行时的不同需求,.NET Core和kubernetes 同年诞生发展, 2018kubernetes 已经奠定了在容器编排领域的王者地位,2019 ...

Sat Jan 18 05:05:00 CST 2020 7 3314
将来的手机,我心中的手机 【十年前的一篇随笔】

马上 2012 就将过去,于此交替之际,我在整理自己陈旧的文档时,发现了一篇整整10年前发出的一篇帖子,看后感触颇深。那是2002的12月30日,我当时正在闭关学英语,闲暇之际用手机颇多。受 Windows CE .Net 启发,感觉手机不应该是当时的样子。于是写了一篇文章,畅想一下我心中 ...

Tue Jan 01 04:22:00 CST 2013 6 2088
【探索】机器指令翻译成 JavaScript

简版:https://www.cnblogs.com/index-html/p/6492418.html 前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念。为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学。 于是想了一个话题:尝试将机器指令 1:1 翻译 成 ...

Wed Jul 06 03:56:00 CST 2016 3 3218
指令和运算 - 计算机指令:高级语言是如何翻译成计算机指令

指令和运算 - 计算机指令:高级语言是如何翻译成计算机指令 目录 指令和运算 - 计算机指令:高级语言是如何翻译成计算机指令 1. 机器码 vs 计算机指令 2. 从编译到汇编,代码怎么变成机器码 3. 解析指令和机器码 ...

Tue Mar 31 17:55:00 CST 2020 0 1061
机器指令翻译成 JavaScript —— 终极目标

上一篇,我们顺利将 6502 指令翻译成 C 代码,并演示了一个案例。 现在,我们来完成最后的目标 —— 转换成 JavaScript。 中间码输出 我们之所以选择 C,就是为了使用 LLVM。现在来看看,生成的 LLVM 中间表示: 不难看出,顺序执行的逻辑都在一个 label 中 ...

Mon Jul 11 00:19:00 CST 2016 1 1345
 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM