About microprocessor 8085..!!

Papabravo

Joined Feb 24, 2006
21,225
Nonsense I dont think so,as per my post it has been said that the interrupt vector table (IVT) is located above 2000H which is in page 00H of 8085 ,I think its in a low memory region.

Here is a bit more on interrupts of 8085 the much I can remember.....

Interrupts are two types Vectored and Non Vectored.
Vectored are address of routines that are hardwired into the 8085 i.e.. the address location is known by 8085 for the interrupt service routine.

Non Vectored ,these type are the address of the routine that are supplied by external device to 8085.

Example the INTR input is a non vectored type interrupt and RTS 5.5 , RTS 7.5 ,RTS 6.5 are vectored type.

And the vector address are contained from address 0000H to 00FFH at page 00H ,some of them I remember is when you call restart instruction
like RST0 it jumps to memory location 0000H which is same as instruction "CALL 0000H" for RST1 it jumps to 0008H

So I think all these address are in low memory region and nothing is nonsense about it......
Nonsense because 2000H is greater than 0000H. An interrupt will never first go to an address greater than 2000H. The only way it could ever get there is a JMP instruction at one of the addresses mentioned below that jumps to a location in the address range 2000H 0FFFFH.

In the 8085 architecture there are only a few locations in the range 0x0000 to 0x00FF that are used for interrupts. In the strict sense they are not vectors since they do not point to an interrupt service routine. The way the mechanism works is that when INTR is asserted the external device may "force" an instruction onto the databus. The most convenient single byte instruction to force onto the 8-bit data bus is a single byte RESTART instruction.
Rich (BB code):
RST 0 --> 0x0000
RST 1 --> 0x0008
RST 2 --> 0x0010
RST 3 --> 0x0018
RST 4 --> 0x0020
RST 5 --> 0x0028
RST 6 --> 0x0030
RST 7 --> 0x0038
Those instructions worked like a special type of subroutine call. What usually went at those locations was a JMP instruction to the actual interrupt service routine. Very occasionally the "whole" function associated with a RESTART instruction was coded in eight bytes or less.

The other interrupt destinations are automatically synthesized inside the processor core and automatically inserted as follows
Rich (BB code):
TRAP    --> 0x0024
RST 7.5 --> 0x003C
RST 6.5 --> 0x0034
RST 5.5 --> 0x002C
As for the other question on register usage

HL is the primary register pair used for indirect addressing.
DE is used in places where two indirect pointers are used such as in comparing two strings or moving a block of memory from one place to another.
BC is seldom used as a pointer. It is used as primarily as a loop counter.
 
Last edited:

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
The most convenient single byte instruction to force onto the 8-bit data bus is a single byte RESTART instruction.
Code:
RST 0 --> 0x0000
RST 1 --> 0x0008
RST 2 --> 0x0010
RST 3 --> 0x0018
RST 4 --> 0x0020
RST 5 --> 0x0028
RST 6 --> 0x0030
RST 7 --> 0x0038
Hi,
how some many reset are done as there is only one pin in 8085, or we have to press each time??
 

debjit625

Joined Apr 17, 2010
790
Its called restart instruction these are generally used with interrupts and supplied using external hardware,But these can also used as normal software instruction for example...
Rich (BB code):
RST0
the avobe 8085 instruction will transfer the program execution to location 0000H
Their are also other 4 interrupts TRAP,RST 5.5,RST 6.5,RST 7.5 which generates RST instruction internally.These RST address are
Rich (BB code):
TRAP         0024H
RST 5.5     002CH
RST 6.5     0034H
RST 7.5     003CH


Nonsense because 2000H is greater than 0000H
In simple english "above then 2000H" means an address range from 0000H to 1FFFH
in my post I always said location above 2000H.Which is in low memory range.

In the strict sense they are not vectors since they do not point to an interrupt service routine.
Now here comes your strict sense,in that strict sense I have to change the meaning of interrupts in almost every modern microprocessor and microcontroller.

Any way it will keep going like this and RRITESH will not get his answers so I stop here and in your sence you could call anything an interrupt
 

Papabravo

Joined Feb 24, 2006
21,225
....
Now here comes your strict sense,in that strict sense I have to change the meaning of interrupts in almost every modern microprocessor and microcontroller.

Any way it will keep going like this and RRITESH will not get his answers so I stop here and in your sence you could call anything an interrupt
More nonsense. Processors can and do use one of several methods to invoke interrupt processing.

The PIC 16F series executes a CALL to address 0x0004 just as the 8085.
The AVR ATmeag64 has a vector of addresses in low memory pointing to the interrupt service routines
The MC68HC11 has a vector of addresses in high memory that pointing to the interrupt service routines.
I think the OP is doing just fine at getting the answers he wants.
If you want to take your ball and go home -- well there is not much I can do about that if you want to go and sulk.
 

debjit625

Joined Apr 17, 2010
790
By circuit did you mean the internal circuit of the microprocessor,if yes then I dont think so they are any different but anyway its totally unknown because manufacturers (almost every) do not disclose it.
 

Papabravo

Joined Feb 24, 2006
21,225
The registers themselves would be constructed from the same kind of elements, like latches of flip-flops. The pathways in and out of a register pair might be different. Can you elaborate on what your question is about?
 

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
hi, please give 8085 stimulator link for viewing machine cycle & fetch,etc.
for easy understanding it.

& i want to know while converting decimal to hex decimal like 0F means 0015 or 00001111 in binary, but when 11 is hex no., how it is converted to decimal i.e. 16??
 
Last edited:

debjit625

Joined Apr 17, 2010
790
hi, please give 8085 stimulator link for viewing machine cycle & fetch,etc.
for easy understanding it.

& i want to know while converting decimal to hex decimal like 0F means 0015 or 00001111 in binary, but when 11 is hex no., how it is converted to decimal i.e. 16??
8085 simulator haere you go : http://www.oshonsoft.com/8085.html

First of all in hex number 11 is not equal to 16 in decimal,and when you write hex number write it like this 0x11(put a "0x" before the num),decimal 16 = 0x10 in hex.Now how do we convert numbers from one number system to another,every number system have a base we use this ,like hex numbers have a base of 16 so if you want to convert 0x11 to decimal

Note 16^n means 16 to the power n and so on....

1 * 16^1 + 1 * 16^0 = 17

Each places in the hex system are represented by powers of sixteen.

Another example 0x10

1 * 16^1 + 0 * 16^0 = 16

converting number 0x100

1 * 16^2 + 0 * 16^1 + 0 * 16^0 = 256

Good luck ,google a bit on hexadecimal number system .
 

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
Hi, i want to know why we use LDI, why not LDA they both load accumulator then what mean that immediately.
Is LDA takes more times to load??
 

debjit625

Joined Apr 17, 2010
790
RRITESH I dont think you did gave a look over the pdf file provided by Bertus

It have the answer for your question,i.e.. about addressing mode on that file look at part "6. The 8085 Addressing Modes"

Any way I am adding the section from the file.

6. The 8085 Addressing Modes
The instructions MOV B, A or MVI A, 82H are to copy data from a source into a
destination. In these instructions the source can be a register, an input port, or an 8-bit
number (00H to FFH). Similarly, a destination can be a register or an output port. The
sources and destination are operands. The various formats for specifying operands are
called the ADDRESSING MODES. For 8085, they are:
1. Immediate addressing.
2. Register addressing.
3. Direct addressing.
4. Indirect addressing.
Immediate addressing
Data is present in the instruction. Load the immediate data to the destination provided.
Example: MVI R,data
Register addressing
Data is provided through the registers.
Example: MOV Rd, Rs
Direct addressing
Used to accept data from outside devices to store in the accumulator or send the data
stored in the accumulator to the outside device. Accept the data from the port 00H and
store them into the accumulator or Send the data from the accumulator to the port
01H.
Example: IN 00H or OUT 01H
Indirect Addressing
This means that the Effective Address is calculated by the processor. And the
contents of the address (and the one following) is used to form a second address. The
second address is where the data is stored. Note that this requires several memory
accesses; two accesses to retrieve the 16-bit address and a further access (or accesses)
to retrieve the data which is to be loaded into the register.

Good luck
 

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
HI, i want to know that AND gates are used for multiplication, but how in circuits please give an examples through which i can understand it.
 

debjit625

Joined Apr 17, 2010
790
RRITESH you really have lots of questions and that never ends and yes thats good...but the thing is that you cant learn everythings in forum's post to learn them you need a good resource like a good book on digital and guess what we have it for you in AAC,above this web page you will find the tabs for the book "Lessons In Electric Circuits" (Vol 1-5) and here is the link for "Vol 4 Digital" http://www.allaboutcircuits.com/vol_4/index.html

Good luck
 

Papabravo

Joined Feb 24, 2006
21,225
MVI -- Move Immediate takes a constant from the instruction and moves it to the accumulator.

LDA -- Load Accumulator has an address in the instruction. It goes to that address, fetches the data, and moves it to the accumulator. It takes longer because it has to fetch a piece of data from a different part of memory than the one the instruction is located in.
 

debjit625

Joined Apr 17, 2010
790
Hi, in stimulation s/w of 8085 where to write program, i have readied it help file but don't find the answer
Oshon's 8085 Simulator IDE have an integrated assembler,but I am not sure if the evaluation version also have it.

BTW I thought you was working with 8085,so you should already have an assembler where you was assembling your programs.If you already have an assembler just assemble your program their and load the hex or obj file to the simulator.

Good luck
 
Top