Ideas you learnt on interpretation

Assignment Help Basic Computer Science
Reference no: EM13935009

1. The aim of this programming assignment is to try out some of the ideas you learnt on interpretation. It is to be done on an individual basis.

2. Write a program (C language preferred) that will emulate a x86 processor

3. Input: The input to the program shall be a text file containing binary encoding of some x86 code. Here is a sample input file ("sampleinput.txt"): 8d 4c 24 04 83 e4 f0 50 c1 f8 02 34 2e 89 e5 45 83 ec 04 80 7c 24 04 81 5d This is for the following IA32 instructions: leal 4(%esp), %ecx andl $-16, %esp pushl %eax sar $0x2,%eax xor $0x2e,%al movl %esp, %ebp inc %ebp subl $4, %esp cmpb $0x81, 4(%esp) popl %ebp

4. First, try to decipher the instructions by hand. You will need to refer to the instruction set definition from the official Intel site: products/processor/manuals/.

You may want to zoom into Appendix A and B found in "Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 2"

5. An utility in x86-Linux will help you to generate more test code. First, take a program and compile it for the 32-bit IA32 instruction set. Suppose you test input is t.c. Do this: $ gcc -m32 -O3 t.c

6. $ objdump -D a.out

7. You will see something like this: ‘08048250' is the memory address (in hexadecimal) of the routine _init. Note that this is only a sample. The actual numbers you see will be different.

The first instruction is ‘push %ebp' and the binary encoding of that instruction is 55 (hexadecimal). Using cut and paste from appropriate parts of the output of objdump, create test inputs like the sample-input.txt.

8. Your program will read in the input file and emulate the encoded instructions. At the end, your code should dump out all the registers. Here is the default input for all the registers that you should use: eax 0xbf8db144 ecx 0x88c5cffb edx 0x1 ebx 0xae5ff4 esp 0xbf8db0bc ebp 0xbf8db118 esi 0x9a0ca0 edi 0x0 eip 0x8048354 eflags 0x246 cs 0x73 ss 0x7b ds 0x7b es 0x7b fs 0x0 gs 0x33

9. What you program should do is a bit like gdb - step through the instructions one by one, printing out all the registers' content after each instruction's execution. Your program should also simulate memory (not all 4GB but just the top of the stack) such that if your input writes to A to memory location X, then a later read of memory location X should return AAbstract. Romer et al (ASPLOS 96) examined several interpreters and concluded that they behave much like general purpose integer programs such as gcc. We show that there is an important class of interpreters which behave very differently. Efficient virtual machine interpreters perform a large number of indirect branches (3.2%-13% of all executed instructions in our benchmarks, taking up to 61%-79% of the cycles on a machine with no branch prediction). We evaluate how various branch prediction schemes and methods to reduce the mispredict penalty affect the performance of several virtual machine interpreters. Our results show that for current branch predictors, threaded code interpreters cause fewer mispredictions, and are almost twice as fast as switch based interpreters on modern superscalar architectures.

Reference no: EM13935009

Find the effective input noise temperature for preamplier

An antenna is pointed in a direction such that it has a noise temperature of 30 K. It is connected to a preamplifier that has a noise figure of 1.6 dB and an available gain

Introduce a few areas of programming using c

In this project it was required to write a small Notepad program and it will introduce a few areas of programming using C# (which are very important in many programs), inclu

Create a network diagram illustrating the solutions

Write a cumulative 4- to 5-page paper (not including any diagrams or charts) incorporating your prior work. Solve the design problems of your organization. Create a network

Find a real-world letter

Find a real-world letter, memo, bulletin, pamphlet, or report online. Identify specific style problems. Evaluate the style and clarity of the document, and identify specific

Consultant for fantasy software

Imagine you are a consultant for Fantasy Software, a small company of ten employees. The company needs to integrate Android mobile devices into its work. The company has ask

Variable types for pseudocode

THERE is NO need to declare variable types for your pseudocode. This will save you some time. Write a pseudocode (NOT a computer program) for a program that has a loop to cont

What are some of the key differences between a flat file

Discussion Question. What are some of the key differences between a flat file and a relational database? Which of the two storage methods do you think is most useful in a

Approaches for marketing it value

Specify at least three (3) approaches for marketing IT's value. Propose (1) method for implementing each approach within an organization. Provide one (1) example of each app


Write a Review

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd