An Intel 8080 assembler and online simulator

栏目: IT技术 · 发布时间: 5年前

内容简介:While going through Charles Petzold's "Code" book again, I was looking for an easy-to-use online assembler and simulator for the classicSo I ended up rolling my own, and theIf you want to play with the simulator, a live version is available online at

While going through Charles Petzold's "Code" book again, I was looking for an easy-to-use online assembler and simulator for the classic Intel 8080 CPU , but couldn't find anything that fit my needs exactly. There are some well-done tools out there, but they seem to be more geared to running game ROMs and earge programs on an emulator; my need was different - I just wanted something to play with, to practice 8080 assembly programming.

So I ended up rolling my own, and the js-8080-sim project was born. The project has three main parts:

  • An assembler for the 8080: translating assembly language code into 8080 machine code. I wrote a custom assembler for this.
  • A CPU simulator: simulating 8080 machine code. For this purpose I cloned the maly/8080js project into my repositoryand tweaked it a little bit.
  • A simple web UI for writing 8080 assembly code, running it and observing the results (as changed values in memory and registers). I wrote a basic UI in JS:
An Intel 8080 assembler and online simulator

If you want to play with the simulator, a live version is available online at https://eliben.org/js8080

The UI is purely client-side; it makes no requests and just uses your browser as a GUI. It does use the browser's local storage to save the last program you ran.

Issues and PRs on Github welcome!

On JavaScript and frameworks

Using JS for a project like this is very natural, because ultimately what I'm interested in is having a convenient web UI to play with the simulator. When I do this, I almost always end up writing vanilla HTML+CSS+JS, avoiding frameworks. I don't write JS often, so whenever I get to work on a new project, the framework do juor has typically changed from the last time, and I just don't have the time to keep track. Vanilla HTML+CSS+JS has much better longevity, IMHO, although it does mean somewhat more manual work (e.g. to keep the UI in sync with the application state).

The only framework I was tempted to use is Bootstrap for the CSS and layout, but eventually decided against it in the interest of simplicity.

We're fortunate to have much more stable and usable JS and web APIs in 2020 compared to just a few years ago. For the simulator I've been using the ES6 version of JS, which is widely supported today and offers many niceties.

I went with vendoring 8080js because it appears to be unmaintained, and I also wanted to avoid a dependency, preferring the project to be self-contained. This was easy with 8080js because it's a single JS file and it has a permissive 2-clause BSD license. I've reproduced the license in full in the cloned source file. FWIW, 8080js itself is also based on an earlier BSD-licensed simuator; OSS at its best :-)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

光线跟踪算法技术

光线跟踪算法技术

萨芬 / 刘天慧 / 清华大学出版社 / 2011-3 / 98.00元

《光线跟踪算法技术》详细阐述了与光线跟踪问题相关的高效解决方案及相应的数据结构和算法,主要包括采样技术、投影视图、视见系统、景深、非线性投影、立体视觉、光照与材质、镜面反射、光泽反射、全局光照、透明度、阴影、环境遮挡、区域光照、光线与对象间的相交计算、对象变换、栅格技术以及纹理映射技术等内容。此外,《光线跟踪算法技术》还提供了相应的算法、代码以及伪代码,以帮助读者进一步理解计算方案的实现过程。 ......一起来看看 《光线跟踪算法技术》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具