answersLogoWhite

0

📱

Intel 8086 and 8088

The Intel 8086/8088 family of microprocessors is a 16 bit architecture on a 16 bit (8086) or an 8 bit (8088) bus. The 8088 was the processor in the original IBM PC, and has evolved into the most popular processor used today in PC's and servers.

1,056 Questions

What is the use of the extra segment in a 8086 processor?

extra segment is a 16-bit register containing address of 64KB segment, usually with program data. By default, the processor assumes that the DI register points to the ES segment in string manipulation instructions. ES register can be changed directly using POP and LES instructions. It is possible to change default segments used by general and index registers by prefixing instructions with a CS, SS, DS or ES prefix. any corrections most welcome

How many address lines are requried for 12mb?

There are 24 address lines required for 16 mb. That covers 12 mb. The next step down is 23 address lines, which is 8 mb.

The 8085 and 8086/8088 cannot address 12 mb. Only the 80286 and higher can.

What is overlapping segment addresses?

Each segment register is multiplied by 16 before being added to the effective address during physical address computation. As a result, sequential values of segment registers result in physical addresses that are 16 bytes apart, yet, the maximum distance, based on effective address is 64 KB. That is why the segmented memory addressing approach in the 8086/8088 is overlapping - there are 64 K different combinations of segment register / effective address pair that will result is the same physical address. Well - sort of - its not wrap around - its a sliding window - call it a 16 byte paragraph size with an addressability range of 64 KB.

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.

How can you find the instruction execution time of the instructions in a loop for given critical frequency and lower and higher bytes of variable count?

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.

What are the starting and ending addresses if the DS register contains 1A30H in real mode addressing scheme?

The starting and ending addresses if the DS register contains 1A30H are 1A300H and 2A2FFH. The effective address range is 0H to FFFFH, and you simply add that to the segment register times 16 (left shifted 4).

The 8086/8088 only operates in real mode. You don't have any other (protected) modes until you get to the 80286 and higher processors.

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.

  • mov & cmp operate on individual bytes/characters
  • movs & cmps operate on strings of multiple bytes/characters

How explain the terms even parity and odd parity Is one method bettrer than the other?

"Parity" refers to the number of 1s in a given binary number. Odd parity means there are an odd number of 1s and even parity means that there are an even number of 1s.

Parity bits are often used as a crude means of error detection as digital data is transmitted and received.

For example,

0b11010100 has 4 1s in it, therefore, it has even parity.

Two devices exchanging data must be set to the same parity. If both are set (strapped) for odd parity, for example, then the sending device must ensure that the number of bits in each word has an odd number of 1s. Likewise, the receiving device must be set to ensure it only receives words with an odd number of 1s.

An odd parity bit is defined as a bit in the word which can be set to ensure odd parity. If the word already has an odd number of 1s, then the parity bit is not set. If the word otherwise has an even number of 1s, the parity bit is set to ensure an odd number of 1s.

The same is true for even parity settings. One way is not necessarily better than the other in theory but, in practice, should observe the convention for the system in question.

Many (if not most) devices provide a connector pin that can be strapped to define either even or odd parity.

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 can the memory other than four 64KB segments be accessed by 8086?

You can access any location in memory. You need only to load its segment address and then refer to its offset address, using the appropriate segment register.

What does micro-inch finish mean and how is it measured?

micro means 10 to the -6 inches so for example 32 microinches would be 0.000032 inch. With respect to surface finish it is basically a measure of the height of the "peaks and valleys" of the finish of a surface. There are different ways to measure this (RMS, etc.) but that is basically what it means. So for example a 125 microinch finish is a typical machined fnish for metals but a 32 is much better and would be called out where sealing surfaces may be needed.

What does addressing the audience mean?

Addressing the audience refers to the way a speaker or writer engages with their listeners or readers during communication. It involves acknowledging their presence, understanding their perspectives, and tailoring the message to resonate with their interests and needs. Effective audience engagement can enhance connection, improve comprehension, and foster a more impactful exchange of ideas.

Do you have to have an address?

At your home no. Unless you have a job and need a place for mail you need one or one at the post office. If you want people to actually find your house, I stress you need one.

What are the different types of segment register?

The code segment (CS) register is used for access to program code. The data segment (DS) register is used for access to data. The extra segment (ES) register is used for access to data during certain string primitive operations. The stack segment (SS) register is used for access to stack data.

Any of these implied uses can be overridden with a segment override prefix opcode.

How do you obtain offset address?

To obtain an offset address, you typically start with the base address of a memory segment and add the desired offset value to it. In programming, this can be done using pointer arithmetic. For example, in C or C++, if you have a pointer pointing to a base address, you can obtain the offset address by adding an integer value to that pointer. The resulting address points to a specific location within the memory segment relative to the base address.