原文:四十年前的 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-2025 CODEPRJ.COM