GitXplorerGitXplorer
j

y86_emulator

public
0 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
050aa2d96ac1625b8dd09805d12ad8dcc9a49a64

Final

jjustjish committed 9 years ago
Unverified
cb7f332e7980714912933ebb11b34f5e5d61efd8

:confetti_ball: Added .gitattributes & .gitignore files

jjustjish committed 9 years ago

README

The README file for this repository.
{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\froman Helvetica;}{\f1\froman Liberation Serif;}{\f2\froman\fcharset0 Helvetica;}} {\colortbl ;\red0\green0\blue0;} {\*\generator Riched20 10.0.10586}\viewkind4\uc1 \pard\nowidctlpar\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\cf1\kerning1\f0\fs24\lang1033 ReadMe\cf0\f1\par \cf1\f0 Sujish Patel\cf0\f1\par \cf1\f0 This program takes in a long instruction set of y86 instructions and puts them through the emulator. \cf0\f1\par \cf1\par \f0 How this Program Runs:\par \cf0\f1\par \f2 To run the program, make sure that the first argument is given at launch\par \par For example: "y86emul prog1.y86" is a valid way to start the program.\f1\par \par \cf1\f0 This program does the fetch and execute within the main method. It first takes in file and puts it into the correct spots in the file. It does only MINOR error checks. The prog2 input only works for numbers greater than 0 and less than 7. I was not able to pinpoint this issue. Prog1 as well as various single function test cases, I personally created and used are working, these are including addl, subl, pop, push, rmovl, mrmovl, irmovl, writeb, writew, readb, readw, call, return. Test files for these are included in the program. \b You may use them for inputs for future generations as well, if/when they may decide to do this project.\cf0\b0\f1\par \cf1\f0\par Big O Runtime for Fetch+Decode\cf0\f1\par \cf1\f0 Alright, each character is read in letter by letter. Thus you will face a runtime at least of the file size. Now as each letter is coming in it is check based on what kind of letter + number it is. On top of the numbers are converted from string[] to ints which takes a lot of run time. Overall with these numbers added to it. with n being characters, and N being being the number of numbers converted Big O for Fetch +Decode is O(n^2).\cf0\f1\par \cf1\f0\par Big O Runtime for Execute.\cf0\f1\par \cf1\f0 Alright so a huge issue, was not being able to get the program to work 100% with prog2. Prog1 works flawlessly. From what i learned this emulator is a vary variable runtime. In work case you would be raced with the operations that cost the most work. In this case I would say popl. This is because a lot of pointers are being changed and such. Since it is based on the number of words. You can get a big o runtime for the entire project as\cf0\f1\par \cf1\f0\par \pard\nowidctlpar O(n^4):\cf0\f1\par }