Quick Search for:  in language:    
   Code/Articles » |  Newest/Best » |  Community » |  Jobs » |  Other » |  Goto » | 
CategoriesSearch Newest CodeCoding ContestCode of the DayAsk A ProJobsUpload
C/ C++ Stats

 Code: 451,578 lines
 Jobs: 605 postings

Sponsored by:


You are in:


Latest Code Ticker for C/ C++.
Visual Pi Hex
By jo122321323 on 8/25

Click here to see a screenshot of this code!ShortCutSample
By Massimiliano Tomassetti on 8/25

(Screen Shot)

AnPMoneyManager beta
By Anthony Tristan on 8/24

A calculator (english/polish )
By Tom Dziedzic on 8/24

MMC (Mouse Move Counter)
By Laszlo Hegedüs on 8/24

By Jerome A. Simon on 8/24

By Jerome A. Simon on 8/23

Game 1945X
By Ozgun Harmanci on 8/23

Find hidden "back streamed" files on NTFS partitions. This code is a must for sec consultants.
By Israel B. Bentch on 8/22

Click here to put this ticker on your site!

Add this ticker to your desktop!

Daily Code Email
To join the 'Code of the Day' Mailing List click here!

Affiliate Sites


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


- 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


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
Use this form to notify us if this entry should be deleted (i.e contains no code, is a virus, etc.).
Your Vote!

What do you think of this article(in the Advanced category)?
(The article with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor 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
Keep the Planet clean! If this comment was disrespectful, please report it:

3/31/2001 9:24:32 PM:Jared Bruni
BTW the emu/interperator was designed to run at 1024x768
Keep the Planet clean! If this comment was disrespectful, please report it:

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!
Keep the Planet clean! If this comment was disrespectful, please report it:

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!!
Keep the Planet clean! If this comment was disrespectful, please report it:

7/23/2001 7:52:30 PM:Rhiannon
Do you think you will ever make another version of this with more features ?
Keep the Planet clean! If this comment was disrespectful, please report it:

8/3/2001 5:10:01 PM:Jared Bruni
Possibly with some loop logic, flag registers, and a stack :)
Keep the Planet clean! If this comment was disrespectful, please report it:

9/18/2001 6:05:40 PM:Jared Bruni
"one two free four" - pink floyd
Keep the Planet clean! If this comment was disrespectful, please report it:

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.


Categories | Articles and Tutorials | Advanced Search | Recommended Reading | Upload | Newest Code | Code of the Month | Code of the Day | All Time Hall of Fame | Coding Contest | Search for a job | Post a Job | Ask a Pro Discussion Forum | Live Chat | Feedback | Customize | C/ C++ Home | Site Home | Other Sites | About the Site | Feedback | Link to the Site | Awards | Advertising | Privacy

Copyright© 1997 by Exhedra Solutions, Inc. All Rights Reserved.  By using this site you agree to its Terms and Conditions.  Planet Source Code (tm) and the phrase "Dream It. Code It" (tm) are trademarks of Exhedra Solutions, Inc.