|
Article concerning the CIS41 Emulator / Assembler / IDE Package |
| | | | Submitted on: 3/12/2001 5:09:54 AM
By: Jared Bruni
Level: Advanced User Rating:
By 16 Users Compatibility:Microsoft Visual C++
Users have accessed this article 5425 times. | (About the author) |
| | In depth explanation, as well as ability to download. Source codes contain, Platform SDK using Win32 Interfaces, incorperating graphics into interfaces, using mouse moves, customized buttons, command line dos application (for the assembler which contains a awesome string algorithm to translate the mnemoics) a algorithm to process the binary (hex for shortand) that the assembler outputs and a standard notepad wanna be to execute the assembler (so you dont gotta use the commandline). and MORE!!!<br>
<b> Features </b><br><br>
- 15 Instructions <br>
- Error Checking, tells you the line of the error and what error it is. <br>
- Translates to .8xe <br>
- Emulator runs .8xe <br>
- Emulator allows full execution and records what it changes.<br>
- Emulator allows step by step execution, as if you were debugging.<br>
- Emulator contains memory map<br>
- Emulator contains register map<br>
- Emulator allows process of single machine instruction<br>
- Comes with 7 Source codes with assembled .8xe files<br><br>
<b> CIS41 Emulation of Simulation (my friend whos a software enginer says that this is a more propper name)</b><Br><br>
This application is intended to help you learn assembly, binary , hex, and the most basic concepts of binary assembly language. This is something Im learning in school , it is just about a exact replica of the teachers simple fake machine language example.
Update:
Fixed bugs in code editor, and in the masasmx (for the inc instruction) , newer versions of the source now avialable.
-Jared Bruni
| |
| | Terms of Agreement:
By using this article, you agree to the following terms...
1) You may use
this article in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
2) You MAY NOT redistribute this article (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.
3) You may link to this article from another website, but ONLY if it is not wrapped in a frame.
4) You will abide by any additional copyright restrictions which the author may have placed in the article or article's description. |
Cosumnes River CIS41 - Simple Machine Language - Assembler/IDE/Emulator
What Is CIS 41 - Emulator ?
*Note*: This program is currently beta if you find a bug Mail me
CIS41 stands for Compuer Information Science , 41 stands for the class number. Its a class I am taking at Cosumnes River College over here in Elk Grove. Well basicly heres the story in my class we were learning about machine langauges, and the teacher gave us a fake machine/assembly langauge. We had to use this langauge and do some problems implementing its concepts. To help me deeply understand these concepts, I thought I would make a tool that would allow me to practice. This is now being given to the school free of charge and for anyone else who wishes to use it.
Download The Program Here . Download the Source Code Package (3 Programs total) Get the source for the Emulator Here .
Download the newest source for the code editor Here .
download the newest source for the assembler Here
make sure you download all three, cause the programs work together
Screen Shots
Features
- 15 Instructions
- Error Checking
- Translates to .8xe
- Emulator runs .8xe
- Emulator allows step by step execution
- Emulator contains memory map
- Emulator contains register map
- Emulator allows process of single machine instruction
- Comes with 7 Source codes with assembled .8xe files
How to use CIS 41 Emulator
CIS41 Emulator is broken up into 3 Programs, The command line assembler (masasmx.exe) the Quick Code Editor (CodeEdit.exe) , and then the Emulator (CPUEMU.EXE). Note, this is not a real true assembly language, it is only the bare bones of what a language would require. This is so that it is possible to be able to play around with the concepts, until it makes sense. I use this to help me memorize how to count in binary and hex. How it works: you simply use the CodeEditor, if all is successful it outputs a .8xe file. The CPU Emulator exe, will then run the .8xe file and let you debug it and mess around with it. The assembler can also be ran from the command line using the following syntax:
masasmx sourcefile.asm
The Simple Assembly Language Mnemoics
- Register Notation (0-F)
ax - stands for 0
bx - stands for 1
cx - stands for 2
dx - stands for 3
ex - stands for 4
fx - stands for 5
gx - stands for 6
hx - stands for 7
ix - stands for 8
jx - stands for 9
kx - stands for A
lx - stands for B
mx - stands for C
nx - stands for D
ox - stands for E
px - stands for F
- Instruction mnemoics
loadm (1RXY)
stands for load from memory (load from xy as address in ram)
loadm register,xy
load (2RXY)
stands for load constant value into register
load register,val
store (3RXY)
stands for store value from register into ram
store register,xy
mov (40AB)
stands for copy value from dest register into source register
mov source,dest
add (50AB)
stands for add values of the registers together and place new value in source
add source,dest
sub (60AB)
stands for subtract values of the registers together and place new value in source
sub source,dest
mul (70AB)
stands for multiply the values of the registers together, and palce new value in source
mul source,dest
div (80AB)
stands for divide the values of the registers together, and palce new value in source
div source,dest
inc (900R)
stands for increment the value in the register
inc ax
dec (A00R)
stands for decrement the value in the register
dec ax
or (B0AB)
stands for or the registers, and place the new value in source
or source,dest
xor (C0AB)
stands for exclusive or the registers, and place the new value in source
xor source,dest
and (D0AB)
stands for and the registers, and place the new value in source
and source,dest
rotate (E0AB)
stands for rotate left (rol) the pattern in register source by the amount in register dest
rotate source,dest
halt (F000)
stands for terminate application, required on all programs
halt
Example of a Simple Program
; example written by jared bruni
; this program will load the registers with 2 values
; add the numbers together, and then store it in ram
load ax,F ; load register ax with value F
load bx,F ; load register bx with value F
add ax,bx ; add ax and bx, put value in ax
store ax,01 ; store value in register ax in memory address 01
halt ; stop execution
written by Jared Bruni
| | Other 273 submission(s) by this author
| | | Report Bad Submission | | | Your Vote! |
See Voting Log | | Other User Comments | 3/12/2001 11:35:30 PM:nim extremely powerful and easy to use...i
am a bit beyond hexadecimal and asm
(assembly), i do enjoy these
features:
step by step execution,
error checking capability, recording of
any changes you make to the code... i
do not visit psc very often, but this
program reflects a very high intellect
possessed by its author
| 3/31/2001 9:24:32 PM:Jared Bruni BTW the emu/interperator was designed
to run at 1024x768
| 4/18/2001 7:45:17 PM:Jeff I go to cosumnes, and I must say this
is bad! We will get to use it in class,
thanks Jared your the best!
| 7/13/2001 6:09:37 PM:3D gamer Hey this is cool. I havent seen
anything else like it before keep up
the sweet work!!
| 7/23/2001 7:52:30 PM:Rhiannon Do you think you will ever make another
version of this with more features ?
| 8/3/2001 5:10:01 PM:Jared Bruni Possibly with some loop logic, flag
registers, and a stack :)
| 9/18/2001 6:05:40 PM:Jared Bruni "one two free four" - pink floyd
| | Add Your Feedback! | Note:Not only will your feedback be posted, but an email will be sent to the code's author in your name.
NOTICE: The author of this article has been kind enough to share it with you. If you have a criticism, please state it politely or it will be deleted.
For feedback not related to this particular article, please click here. | | |