-
Notifications
You must be signed in to change notification settings - Fork 0
justjish/y86_emulator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
{\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 }
About
final
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published