Article concerning the CIS41 Emulator / Assembler / IDE Package
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!!! Features - 15 Instructions - Error Checking, tells you the line of the error and what error it is. - Translates to .8xe - Emulator runs .8xe - Emulator allows full execution and records what it changes. - Emulator allows step by step execution, as if you were debugging. - Emulator contains memory map - Emulator contains register map - Emulator allows process of single machine instruction - Comes with 7 Source codes with assembled .8xe files CIS41 Emulation of Simulation (my friend whos a software enginer says that this is a more propper name) 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
एआई सारांश: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.
<HTML> <BODY BGCOLOR="#000000"> <FONT COLOR="#BD0000" FACE="ARIAL"> <TITLE> Cosumnes River CIS41 - Simple Machine Language - Assembler/IDE/Emulator </TITLE> <center> <img src="http://www.lostsidedead-software.com/cisemu/logo.jpg"> </center> <center> <b> What Is CIS 41 - Emulator ? </b> </center><br><br> <b> <left><br><br> <font color="white">*Note*: This program is currently beta if you find a bug <a href="mailto:master@lostsidedead.com"> Mail me </a></font><br><br> 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.<br><br> Download The Program <a href="http://www.lostsidedead-software.com/prog/masasmx_free.zip"> Here </a>.<br> <br> Download the Source Code Package (3 Programs total)<br> Get the source for the Emulator <a href="http://www.lostsidedead-software.com/prog/masasmx_full1.zip"> Here </a>. <br> Download the newest source for the code editor <a href="http://www.lostsidedead-software.com/prog/codeeditfix.zip"> Here </a>. download the newest source for the assembler <a href="http://www.lostsidedead-software.com/prog/asmbfix.zip"> Here</a> make sure you download all three, cause the programs work together <br><br><b> Screen Shots</b><br> <center> <img src="http://www.lostsidedead-software.com/cisemu/emu.jpg"> <img src="http://www.lostsidedead.com/cisemu/map.jpg"><br><br> <img src="http://www.lostsidedead-software.com/cisemu/about.jpg"> <img src="http://www.lostsidedead-software.com/cisemu/cpu.jpg"> </center> <br><br> <b> Features </b><br><br> - 15 Instructions <br> - Error Checking <br> - Translates to .8xe <br> - Emulator runs .8xe <br> - Emulator allows step by step execution<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> How to use CIS 41 Emulator </b><br><br> 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:<br><br> masasmx sourcefile.asm <br><br> <b><font color="white"> The Simple Assembly Language Mnemoics </a><br></b></font> <br><br> - Register Notation (0-F) <br><br> ax - stands for 0<br> bx - stands for 1<br> cx - stands for 2<br> dx - stands for 3<br> ex - stands for 4<br> fx - stands for 5<br> gx - stands for 6<br> hx - stands for 7<br> ix - stands for 8<br> jx - stands for 9<br> kx - stands for A<br> lx - stands for B<br> mx - stands for C<br> nx - stands for D<br> ox - stands for E<br> px - stands for F<br> <br> - Instruction mnemoics<br><br> <br>loadm (1RXY)<br><br> stands for load from memory (load from xy as address in ram)<br><br> <font color="green"> loadm register,xy</font> <br><br> load (2RXY)<br><br> stands for load constant value into register <br><br> <font color="green"> load register,val </font> <br><br> store (3RXY)<br><br> stands for store value from register into ram<br><br> <font color="green"> store register,xy</font><br><br> mov (40AB)<br><br> stands for copy value from dest register into source register<br><br> <font color="green"> mov source,dest</font><br><br> add (50AB)<br><br> stands for add values of the registers together and place new value in source<br><br> <font color="green"> add source,dest </font><br><br> sub (60AB)<br><br> stands for subtract values of the registers together and place new value in source<br><br> <font color="green"> sub source,dest</font><br><br> mul (70AB)<br><br> stands for multiply the values of the registers together, and palce new value in source<br><br> <font color="green"> mul source,dest </font><br><br> div (80AB)<br><br> stands for divide the values of the registers together, and palce new value in source<br><br> <font color="green"> div source,dest </font><br><br> inc (900R)<br><br> stands for increment the value in the register<br><br> <font color="green"> inc ax </font><br><br> dec (A00R)<br><br> stands for decrement the value in the register<br><br> <font color="green"> dec ax </font><br><br> or (B0AB)<br><br> stands for or the registers, and place the new value in source<br><br> <font color="green"> or source,dest </font><br><br> xor (C0AB)<br><br> stands for exclusive or the registers, and place the new value in source<br><br> <font color="green"> xor source,dest </font><br><br> and (D0AB)<br><br> stands for and the registers, and place the new value in source<br><br> <font color="green"> and source,dest </font><br><br> rotate (E0AB)<br><br> stands for rotate left (rol) the pattern in register source by the amount in register dest<br><br> <font color="green"> rotate source,dest </font><br><br> halt (F000)<br><br> stands for terminate application, required on all programs<br><br> <font color="green"> halt </font><br><br><br> <font color="white"> Example of a Simple Program </font> <br><br> <font color="green"><br> ; example written by jared bruni<br> ; this program will load the registers with 2 values<br> ; add the numbers together, and then store it in ram<br></font> <br> load ax,F <font color="green">; load register ax with value F</font><br> load bx,F <font color="green">; load register bx with value F</font><br> add ax,bx <font color="green">; add ax and bx, put value in ax</font><br> store ax,01 <font color="green"> ; store value in register ax in memory address 01</font><br> halt <font color="green">; stop execution</font><br> <br><br><br><br> written by <a href="mailto:jared@lostsidedead.com"> Jared Bruni </a> </left> </b> </FONT> </BODY> </HTML>