2 Explain the register Organization of Zilog 28000?
Z8000 consists of sixteen 16-bit general purpose registers, which can be used for data, address and indexing. The designers of this machines felt that it was useful to provide a regularized, general set of registers than to save instruction bits by using special purpose registers. Further the way the functions are assigned to these registers is the responsibility of the programmer. There might be different functional breakdown for different applications.
A segmented address space 7-bit is used. It uses 7-bit segment number and a 16-bit offest. It uses two registers to hold a single address. There are two other registers called stack pointers that are necessary for stack module. One register used for system mode and one for normal mode.
Z8000 consists of five other registers that are related to program status. Two registers hold the program counter and two registers hold the address of a program status area in the memory. A 16-bit flag register called Flag control word holds various flags status and control bits.
You do this by constructing a loop and adding up the individual instruction times and multiplying by the loop count, offsetting the end of loop and overhead.
For example, in the 8085, running at a 3 MHz clock (6 MHZ crystal) with no wait states, and a desired 1 ms delay...
PUSH PSW ; 12
MVI A,212 ; 7
LOOP DCR A ; 4
JNZ LOOP ; 7/10
NOP; 4
POP PSW ; 12
The numbers in the comments are the clock cycles for the instructions, assuming no wait states. (If you had wait states, you would need to incorporate them.) At 3 MHz, 1 ms is 3000 clocks. Overhead is 32 clocks, 35 - 3 for the last iteration of the loop. That leaves 2972 clocks. Divide that by 14, the loop time, and you get a loop count of 212. The total time will be 32 + 212 * 14, or 3000 clocks. The NOP instruction compensates for the fact that the actual total time without it would be 2996 clocks.
If you need more time, you add more "busy" time inside the loop, or make nested loops. Better, because this does not compensate for other processing time, is to setup an external counter and feed it into an interrupt, perhaps RST7.5, at the desired frequency.
As far as the 8086/8088, I cannot answer, because I am not intimate with that processor. As far as higher incarnations of processors, that is even harder because latency and cache hit/miss ratios inter into the equation, but you get the picture with this example.
Memory Controller Chip
ive got the same problem.... I have no idea what to do, but it might were off in a while
What are the advantages of the movs and cmps instructions over the mov and cmp instructions?
Its not an issue of an advantage, it an issue of different purpose.
What is count register purpose?
The 8085 does not have a specific "count" register. Any register can be used, in the larger context of a block of code, as a count register.
What was the national register?
The National Register, often referred to in the context of the National Register of Historic Places, is a program administered by the National Park Service in the United States to identify, evaluate, and protect historic and archaeological sites. Established in 1966, it aims to recognize places of historical significance and promote their preservation. Properties listed in the National Register can be eligible for federal tax benefits and grants, encouraging conservation efforts at the local level. The register includes a diverse array of sites, from buildings and districts to archaeological sites and landscapes.
Conditional results after execution of an instruction in a microprocess is stored in?
Flag register part of psw
How are segment registers used to form a 20-bit address?
The 16 bit segment register is left shifted by 4 and added to the effective address to form a 20 bit physical address.
How do you get instructions to set a Envirastation?
I had the same question, but answered it myself. You push, and hold the center of the three buttons on the back of the main (not remote) unit, until you hear a "beep." This will cause an icon on the front to begin flashing. Sit the remote unit right next to the main unit, and wait a couple of minutes. Eventually, the unit will automatically program and you're ready to go.
What are register variables What are the advantage of using register variables?
Asks the compiler to devote a processor register to this variable in order to speed the program's execution. The compiler may not comply and the variable looses it contents and identity when the function it which it is defined terminates.
What is a memory mapped register?
A memory mapped register is a register that has its specific address stored in a known memory location.
What are the instruction to reset RST 7.5?
To reset the pending RST 7.5 instruction in the 8085, you need to execute a SIM instruction with a particular value in the accumulator.
PUSH FLAGS
MVI A,10H
SIM
POP FLAGS
Of course the PUSH and POP are optional, if you don't need to preserve the value of the accumulator.
Why write programs in machine code?
The resulting programs are more efficient, use less processor cycles and memory. Because michine code is the most basic form of language that a processor can understand. It consists of 1's and 0's. It needs no interpreter to interpret to the processor and therefore is the fastest way to tell a processor which commands to run.
Justify RST instruction can be called 1 byte Call instruction?
The RST instruction is a 1 byte opcode with a 3 bit imbedded operand. There are 8 different RST instructions. Each pushes the PC on the stack, and loads the PC with the operand's value times 8. (0H, 8H, 10H, 18H, etc.)
Pushing the PC on the stack and loading a new value into the PC is exactly what a CALL instruction does, so the RST instruction is a 1 byte CALL instruction. The difference between RST and CALL is that CALL is a 3 byte instruction which can go anywhere in memory in one instruction.
What is an interrupt and how are multiple interrupts dealt with?
An Interrupt is a signal that goes into a microprocessor that tells it something has happened that needs attention. There are generally dedicated pins on the microprocessor, often called "Int" (for Interrupt) and "NMI" (for Non-Maskable Interrupt). For a microprocessor, an interrupt signal is like the bell on a telephone is for you; it's a notice that you should stop what you are doing now and deal with this issue that has come up.
Exact procedures for dealing with an interrupt vary from one microprocessor to another; generally, the microprocessor puts out a signal that says "Where should I go, then?" and a piece of hardware, the Interrupt Controller, then responds with a signal that tells it which condition has happened. The processor then starts processing the indicated piece of code, and that piece of code handles the condition.
The Interrupt Controller often handles setting priority for interrupts, accepting a number of signals (often four), and setting priorities on each. It will trigger another interrupt in the middle of processing one if the new interrupt is a higher priority than the one that is already being processed, or will hold on to the lower priority one until the CPU is finished with a higher-priority one.
The CPU can often "disable interrupts" when it is doing something time-critical. At such times, the only interrupt that can occur is the Non-Maskable Interrupt, which is generally reserved for critical error conditions that have to be dealt with immediately no matter what else is going on.
Why does it take 5 machine cycles in the SHLD instruction of 8085 microprocessor?
How do I read a memory address with borland c?
In order to read a memory address you must hold a reference to that address. If the object at that address is a named object, then the object's name is a reference, thus we can simply take its address using the address-of operator (unary &):
int i = 42;
printf ("Variable i resides at memory address 0x%x\n", &i);
If we wish to store the address we must use a pointer variable of the appropriate type:
int* p = %i;
Like any other variable, a pointer variable has an address of its own, thus we can read its address:
printf ("Variable p resides at memory address 0x%x\n", &p);
To read the address being pointed at we simply examine the pointer's value:
printf ("Variable p refers to memory address 0x%x\n", p);
Note this address is the same as the address of i, the object being referred to (pointed at).
To read the value stored at the address being pointed at we must dereference the pointer (unary *). Dereferencing is also known as indirection because we are indirectly accessing the object's value:
printf ("Variable p refers to the value %d\n", *p); // e.g., 42
Pointers can refer to both named and anonymous objects. Anonymous objects are simply objects allocated on the heap at runtime. Since they don't exist at compile time we cannot name them:
int* anon = malloc (sizeof (int)); // allocate memory
Note that anon is the name of the pointer, not the object being pointed at.
printf ("The anonymous variable resides at memory address 0x%x\n", anon);
free (anon); // always release heap allocations as soon as we are finished with them!
Pointers also make it possible to pass memory addresses to and from functions (also known as pass by reference):
void f (int* p) {
}
int a = 42;
f (&a); // pass the address of a to the f() function
Note that all variables in C are passed by value, but when we pass a pointer by value we are passing an address and an address is a reference. Passing references is useful when the object being referred to cannot be efficiently passed by value. Typically this means any value that is larger than the word value of the underlying architecture (e.g., 4 bytes on a 32-bit system). Arrays in particular are never passed by value, hence an array implicitly converts to a pointer.