Giter VIP home page Giter VIP logo

#Arc

This program is an interactive Intel 8088 CPU and assembly code IDE. It provides an environment for users to write Intel 8088 Assembly Code. Complete with syntax highlighting and a helpful index of Intel 8088
instructions and descriptions of their operation. It is ideal for users who wish to learn Intel 8088 assembly code or for users who wish to
obtain a deeper understanding of assembly code in general.

The user can simulate their code by stepping through each instruction line by line or by running all the code at once. The user can set multiple breakpoints to aid in debugging and interpreting the code. The program has a graphical representation of the registers and memory space of the Intel 8088 to assist the user in understanding the assembly code their writing.

##Features

  • Development Environment with Syntax Highlighting
  • Simulates the execution of 8088 Assembly Code
  • Provides Graphical Representation of Registers, Memory, and Stack
  • Helpful Documentation of the Instruction Set

##Simulator Usage

The simulator has various functions.

  • New (also accessible by Ctrl+N)
  • Open (also accessible by Ctrl+O)
  • Save (also accessible by Ctrl+S)
  • Save As (also accessible by Ctrl+Shift+N)
  • Step Once (also accessible by Enter)
  • Run All (also accessible by Ctrl+Enter or Shift+Enter)
  • Stop Running (also accessible by Ctrl+X)
  • Exit (also accessible by Ctrl+Q)

Where New creates a new file, trashing any unsaved changes in the current.

Open opens a new file as selected via a dialog, trashing any unsaved changes in the current.

Save saves the current file, or asks via a dialog to save if the current file hasn't already been saved.

Save As prompts via a dialog where to save a copy of the file.

Step Once runs one line of code, (re)starting the simulation if necessary.

Run All runs all lines of code, (re)starting the simulation if necessary.

Exit closes the program, prompting regarding active simulations or unsaved changes if necessary.

In the Text Field users can enter in various assembly language instructions, or load in instructions via file. The code follows the basic schema:

PREAMBLE 
.SECT .TEXT 
  code 
.SECT .DATA 
  data 
.SECT .BSS 
  buffers 

Any text following a exclamation mark (!) on a line is a comment and so ignored

Local variables can be defined in the 'preamble' of your assembly code. To do this enter very simple assignments at the top of the document.

Things like

_EXIT = 1 

etc.

Blank Buffers in memory can be defined in the .SECT .BSS section at the bottom of your code.

Like so:

.SECT .BSS 
  num: .SPACE 3 

Defines a 3 space buffer called "num".

Values can be loaded into memory with the .SECT .DATA section like so:

.SECT .DATA 
  helloWorld:   .ASCIIZ "Hello World" 
  helloNoZero:  .ASCII "Hello World" 

Where .ASCIIZ stores a zero terminated string in memory. And .ASCII stores the string in memory.

The code section is everything between a .SECT .TEXT line and either a .SECT .DATA, .SECT .BSS, or end of the file. In the code section any basic

Any numerals directly placed in are interpreted as hex if they are ended by a "h". Otherwise they are interpreted as an integer.

Like so:

PUSH 25   ! This pushes the integer 25 
PUSH 25h  ! This pushes the hex value 0x25 = 37 

##Simulator Interface Basics The text field on the left hand side is for the entering/loading of assembly code.
The line of numbers to its left represents the line numbers of each associated line.
The grey field on the bottom left is for output by the program upon running.
The bar of buttons below performs basic actions as described above.
The coloured bar that says either "hide" or "show" can shrink or expand the interface.
If the interface is expanded then on the left there are two tabs: machine info and help.
Machine Info tab displays various information about the current status of the simulation including: register values, flag status, memory status, and stack.
The hex switch toggles viewing this information in hexadecimal or an ASCII/decimal interpretation.
The Help tab contains info about all the instructions in the instruction set including the format of their expected arguments, flags affected, description, and English word title.

About

This program is written in Python and released under the GPL 2.0 License. For more information please view the LICENSE file or visit: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Copyright (c) 2014 Brydon Eastman

Brydon Eastman 's Projects

arc icon arc

A graphical program that allows users to write, edit, and simulate Intel 8088 assembly code in a virtual Intel 8088 CPU

chemotactic-automata icon chemotactic-automata

Quick Cellular Automata Simulation investigating the importance of chemotaxis, and auto-chemotaxis, in relation to cell adhesion in the growth and metastasis of solid tumours.

cramming icon cramming

Cramming the training of a (BERT-type) language model into limited compute.

pywiikinectswype icon pywiikinectswype

Software that simulates swype-style input with the Microsoft Kinect and Nintendo Wiimote, written in Python

stemcells2018 icon stemcells2018

A repository containing the code and data generated for an upcoming paper reconciling conflicting results on fixation probability of mutant, cancerous stem cells in a wild-type population as a function of stem-cell plasticity.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.