Thursday, December 14, 2017

8085 MICROPROCESSOR SIMULATOR

The 8085 Microprocessor Simulator is a total software solution to replace the microprocessor kit from training and design labs. The Simulator executes the instructions from the user entered program, instruction by instruction showing all the register and flag status at the end of execution of each instruction. Microsoft Visual Basic is probably the fastest and easiest way to create applications for Microsoft Windows. Visual Basic provides you with a complete set of tools to simplify rapid application development.

Download from me


The 8085 is a complex IC of sequential circuits. The sequential circuits are designed to do some operation depending on what is the input on their lines. The vital inputs on the lines are what therefore determine what operation will be done by the sequential circuits inside it. The operations can be very complex and therefore this chip is also called a processor. Since we can find a way to put different values of inputs to the input lines of the processor at different times, we can make it execute different operations in a sequence that we desire. Thus, in other words we can make the processor execute a program to do useful things for us. These inputs then could alternately, be called instructions.


The program that we desire to be executed must be loaded into consecutive locations of memory chips. The memory is not part of the 8085 processor. The memory chips are again sequential circuits consisting of flip-flops that are capable of storing digital values. Since we would be interested in storing a huge number of such digital values, a large number of these memories are packed together with a scheme of addresses, so that we can address them individually. Generally the memories a rearranged in large numbers of 8 bit bunches each. The 8085 has a address bus which is 16 bit wide. Therefore it can put 2^16 different digital values on it, and therefore it can address a maximum of 2^16 different address locations. This is called the addressing space and it is 64 kilobyte for the 8085, because 2^16= 65535. And then we ask the processor to execute those instructions from a particular memory location on wards. It goes on executing those instructions one after another. The processor uses certain internal memory locations called Registers in doing all the operations that we ask it to do. The contents of those memory locations can be directly altered by the instructions that we give.


INTEL Corp. is generally recognized as the company that introduced the microprocessor successfully in the market. The first microprocessor, the 4004 was introduced in 1971.It was a central component in the chip set, called MCS-4.The microprocessors introduced between 1971 and 1973 were the first generation systems. They used PMOS technology, which provided low cost, slow speed and low output currents. After 1973-second generation microprocessors such as Motorola 6800 and 6809,Intel 8085 evolved. They were fabricated using NMOS technology. After 1978 The third generation microprocessors were evolved. They were 16 bit wide and included Intel 8086/80186/80286.They were designed using HMOS technology. In 1980 the fourth generation microprocessors evolved. Since 1985,32 bit microprocessors are fabricated using low power version of HMOS technology called HCMOS and they include an on-chip RAM called cache memory to speed up program execution. So extensive research is being carried out for the implementation of more on-chip functions and for the improvement of the speeds of memory and I/O devices. A machine language program consists of either binary or hexadecimal OP(operation)codes. Eight bit microcomputers can be programmed using machine language. A microprocessor has a unique set of machine language instructions defined by the manufacturer. No 2 microprocessors have same machine language instruction set.


Assembly Language

Assembly Language uses semi-English statements for 8 bit microprocessors. Each instruction in an assembly language comprises:(a) Label Field(b) Instruction, Mnemonic or Op-code field(c) Operand field(d) Assembly language basically consists of programs written with the help of mnemonics. Mnemonic is a combination of letters to suggest the operation of an instruction. In general an instruction has 2 components-operation code (OP-code) field and Address field.The OP-code field specifies how data is to be manipulated and the purpose of the address field is to indicate the address of a data item..

High- Level Language

Most 16 and 32 bit microprocessors in addition to assembly and machine language use a more understandable human oriented language called high-level language. High level language programs are composed of English language type statements .a no of high-level language.Regardless of what type of language is used to write a program, the microcomputers understand only binary numbers. So the programs must eventually be translated into their appropriate binary forms. An assembler is one such translator that translates a program written in assembly language to machine language (object code). A compiler/an interpreter converts a high-level language program into a machine language one. A compiler translates the entire source code to object code and then executes it. On the other hand, the interpreter performs line-by-line translation and execution simultaneously like FORTRAN, COBOL, BASIC, C, C++ are widely used these days.


DATA TRANSFER GROUPS

These groups include the move, exchange, load, and store operations. Data transfer instructions are among the most widely used of all microprocessor instructions. This group of instructions transfers data to and from registers and memory. None of the instructions of this group are the flag affecting instructions.The instructions included in this group are
 MOV, MVI, LXI, LDA, STA, LHLD, SHLD, LDAX, STAX, and XCHG 

For e.g.:MOV (A, B) will move the contents of register B to register A.


 ARITHEMATIC GROUPS

 This group includes the add, add with carry, subtract, subtract with borrow, increment, decrement, and decimal adjust accumulator operations. This group of instructions performs arithmetic operations on data in registers and memory. Unless indicated otherwise all the instructions are flag affecting instructions. All subtraction operations are performed via 2s complement arithmetic and set the carry flag to 1 to indicate a borrow and clear it to indicate no borrow.The instructions included in this group are ADD, ADC, SUB, SBB, DAD, INR, INX, DCR, DCX , and DAA. For e.g.:ADD B will add the contents of register B to the contents of register A and store the result in A. 

LOGICAL GROUPS

 This include AND, OR, XOR, compare, rotate and complement instructions. This group of instructions performs. Logical (Boolean) operations o the data in registers and memory and on flags.The instructions include in the group are
 ANA, XRA, ORA, CMP, AI, XRI, ORI,CPI, RLC, RRC, RAR, RAL, CMA, STC and CMC. For e.g.:ANA C will logically AND the contents of register C with the contents of register A and store the result in A. 


BRANCHING GROUPS

This include jump, call, return and restart instructions. This group of instructions alters the normal sequential program flow. The to types of branch instructions are:-Unconditional-Conditional. Unconditional transfers simply perform the specified operation o the program counter.Conditional transfers examine the status of one of the four MPU flags to determine whether the specified branch is to be executed.The instructions include in the group are Unconditional – 
 JMP, RET, CALL, RST 0, RST 1, RST 2, RST 3, RST 4,RST 5, RST 6, RST 7, PCHL. Conditional
- JNZ, JZ, JNC, JC, JPO, JPE, JP, JM, CNZ, CZ, CNC, CC,CPO, CPE, CP CM, RNZ, RZ, RNC, RC, RPO, RPE, RP, RM. For e.g.:JMP 4000 will transfer the program flow to the memory location 4000. 


STACK, I/O AND MACHINE CONTROL INSTRUCTIONS

 This include push and pop, input and output, exchange, interrupt enables and disables,no operation and halts, and multi – purpose read and set interrupt mask instructions.This group of instructions performs inputs and outputs, manipulates the stack, alters the internal control flags.The instructions included in the group are:Stack operations
 – 
 PUSH, POP, XTHL, and PCHL

Control operations.
 – 
 DI, EI, NOP, HLT, RIM, SIM 
Input/output operations

- OUT and IN 

For e.g.:PUSH B will push the contents the register B to the stack which is initialized previously.


THE 8085 SIMULATOR 

The 8085 Microprocessor Simulator is a total software solution to replace the microprocessor kit from training and design labs. The Simulator executes the instructions from the user entered program, instruction by instruction showing all the register and flag status at the end of execution of each instruction. The input process is fast and efficient, leading to better productivity. The Mnemonic Pad allows the user to enter the code. This makes is impossible to enter a wrong Mnemonic. The Tool tips tell you the syntax along with the operation performed by a particular Mnemonic. The Data Entry Window allows you to enter the Data Segment of your code. This is provided to enable the user to enter the data once and save it along with the code





2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. Stephen, I can't rely on a comment, also the PSC source is still there. By the way, you can let the source code online and commercialize the software in the same time. Those that understand the code are experienced programers, and are not your usual clients :)

    Regards,

    Marius

    ReplyDelete