Can you register in dailymotion?
Of course.. Registration is sometimes required. Go to the link below to register
A segment is a chunk (segment) of memory that is 64Kb in size. Due to the design of the 8086/8088 there are 64K possible segments, ecah overlapping the next by 16 bytes, for a total addressibility of 1 Mb.
In the instruction model, a segment is the locus of addresses that can be reached in one instruction, without stopping to load a new value into a segment register. It is also called a near, or 16 bit address.
Difference between code segment and data segment of an instruction?
In the 8086/8088 microprocessor, the code segment is used to fetch the opcode and any additional instruction bytes that might be part of the instruction, while the data segment is used to fetch and/or store any operand bytes that the instruction requires to be manipulated.
This is in the case of no segment override prefix.
The stack will store the return address and the accumulator and flags.
Explain the instruction set of 8086 with examples?
Complete 8086 instruction set
Quick reference:
Operand types:
REG: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP.
SREG: DS, ES, SS, and only as second operand: CS.
memory: [BX], [BX+SI+7], variable, etc...(see Memory Access).
immediate: 5, -24, 3Fh, 10001101b, etc...
Notes:
These marks are used to show the state of the flags:
1 - instruction sets this flag to 1.
0 - instruction sets this flag to 0.
r - flag value depends on result of the instruction.
? - flag value is undefined (maybe 1 or 0).
Some instructions generate exactly the same machine code, so disassembler may have a problem decoding to your original code. This is especially important for Conditional Jump instructions (see "Program Flow Control" in Tutorials for more information).
Instructions in alphabetical order:
C Z S O P A popped JA label Short Jump if first operand is Above second operand (as set by CMP instruction). Unsigned.
Algorithm:
if (CF = 0) and (ZF = 0) then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 250 CMP AL, 5 JA label1 PRINT 'AL is not above 5' JMP exit label1: PRINT 'AL is above 5' exit: RET C Z S O P A unchanged JAE label Short Jump if first operand is Above or Equal to second operand (as set by CMP instruction). Unsigned.
Algorithm:
if CF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 5 CMP AL, 5 JAE label1 PRINT 'AL is not above or equal to 5' JMP exit label1: PRINT 'AL is above or equal to 5' exit: RET C Z S O P A unchanged JB label Short Jump if first operand is Below second operand (as set by CMP instruction). Unsigned.
Algorithm:
if CF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 1 CMP AL, 5 JB label1 PRINT 'AL is not below 5' JMP exit label1: PRINT 'AL is below 5' exit: RET C Z S O P A unchanged JBE label Short Jump if first operand is Below or Equal to second operand (as set by CMP instruction). Unsigned.
Algorithm:
if CF = 1 or ZF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 5 CMP AL, 5 JBE label1 PRINT 'AL is not below or equal to 5' JMP exit label1: PRINT 'AL is below or equal to 5' exit: RET C Z S O P A unchanged JC label Short Jump if Carry flag is set to 1.
Algorithm:
if CF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 255 ADD AL, 1 JC label1 PRINT 'no carry.' JMP exit label1: PRINT 'has carry.' exit: RET C Z S O P A unchanged JCXZ label Short Jump if CX register is 0.
Algorithm:
if CX = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV CX, 0 JCXZ label1 PRINT 'CX is not zero.' JMP exit label1: PRINT 'CX is zero.' exit: RET C Z S O P A unchanged JE label Short Jump if first operand is Equal to second operand (as set by CMP instruction). Signed/Unsigned.
Algorithm:
if ZF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 5 CMP AL, 5 JE label1 PRINT 'AL is not equal to 5.' JMP exit label1: PRINT 'AL is equal to 5.' exit: RET C Z S O P A unchanged JG label Short Jump if first operand is Greater then second operand (as set by CMP instruction). Signed.
Algorithm:
if (ZF = 0) and (SF = OF) then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 5 CMP AL, -5 JG label1 PRINT 'AL is not greater -5.' JMP exit label1: PRINT 'AL is greater -5.' exit: RET C Z S O P A unchanged JGE label Short Jump if first operand is Greater or Equal to second operand (as set by CMP instruction). Signed.
Algorithm:
if SF = OF then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, -5 JGE label1 PRINT 'AL < -5' JMP exit label1: PRINT 'AL >= -5' exit: RET C Z S O P A unchanged JL label Short Jump if first operand is Less then second operand (as set by CMP instruction). Signed.
Algorithm:
if SF <> OF then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, -2 CMP AL, 5 JL label1 PRINT 'AL >= 5.' JMP exit label1: PRINT 'AL < 5.' exit: RET C Z S O P A unchanged JLE label Short Jump if first operand is Less or Equal to second operand (as set by CMP instruction). Signed.
Algorithm:
if SF <> OF or ZF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, -2 CMP AL, 5 JLE label1 PRINT 'AL > 5.' JMP exit label1: PRINT 'AL <= 5.' exit: RET C Z S O P A unchanged JMP label
4-byte address
Unconditional Jump. Transfers control to another part of the program. 4-byte address may be entered in this form: 1234h:5678h, first value is a segment second value is an offset.
Algorithm:
always jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 5 JMP label1 ; jump over 2 lines! PRINT 'Not Jumped!' MOV AL, 0 label1: PRINT 'Got Here!' RET C Z S O P A unchanged JNA label Short Jump if first operand is Not Above second operand (as set by CMP instruction). Unsigned.
Algorithm:
if CF = 1 or ZF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, 5 JNA label1 PRINT 'AL is above 5.' JMP exit label1: PRINT 'AL is not above 5.' exit: RET C Z S O P A unchanged JNAE label Short Jump if first operand is Not Above and Not Equal to second operand (as set by CMP instruction). Unsigned.
Algorithm:
if CF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, 5 JNAE label1 PRINT 'AL >= 5.' JMP exit label1: PRINT 'AL < 5.' exit: RET C Z S O P A unchanged JNB label Short Jump if first operand is Not Below second operand (as set by CMP instruction). Unsigned.
Algorithm:
if CF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 7 CMP AL, 5 JNB label1 PRINT 'AL < 5.' JMP exit label1: PRINT 'AL >= 5.' exit: RET C Z S O P A unchanged JNBE label Short Jump if first operand is Not Below and Not Equal to second operand (as set by CMP instruction). Unsigned.
Algorithm:
if (CF = 0) and (ZF = 0) then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 7 CMP AL, 5 JNBE label1 PRINT 'AL <= 5.' JMP exit label1: PRINT 'AL > 5.' exit: RET C Z S O P A unchanged JNC label Short Jump if Carry flag is set to 0.
Algorithm:
if CF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 ADD AL, 3 JNC label1 PRINT 'has carry.' JMP exit label1: PRINT 'no carry.' exit: RET C Z S O P A unchanged JNE label Short Jump if first operand is Not Equal to second operand (as set by CMP instruction). Signed/Unsigned.
Algorithm:
if ZF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, 3 JNE label1 PRINT 'AL = 3.' JMP exit label1: PRINT 'Al <> 3.' exit: RET C Z S O P A unchanged JNG label Short Jump if first operand is Not Greater then second operand (as set by CMP instruction). Signed.
Algorithm:
if (ZF = 1) and (SF <> OF) then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, 3 JNG label1 PRINT 'AL > 3.' JMP exit label1: PRINT 'Al <= 3.' exit: RET C Z S O P A unchanged JNGE label Short Jump if first operand is Not Greater and Not Equal to second operand (as set by CMP instruction). Signed.
Algorithm:
if SF <> OF then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, 3 JNGE label1 PRINT 'AL >= 3.' JMP exit label1: PRINT 'Al < 3.' exit: RET C Z S O P A unchanged JNL label Short Jump if first operand is Not Less then second operand (as set by CMP instruction). Signed.
Algorithm:
if SF = OF then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, -3 JNL label1 PRINT 'AL < -3.' JMP exit label1: PRINT 'Al >= -3.' exit: RET C Z S O P A unchanged JNLE label Short Jump if first operand is Not Less and Not Equal to second operand (as set by CMP instruction). Signed.
Algorithm:
if (SF = OF) and (ZF = 0) then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 2 CMP AL, -3 JNLE label1 PRINT 'AL <= -3.' JMP exit label1: PRINT 'Al > -3.' exit: RET C Z S O P A unchanged JNO label Short Jump if Not Overflow.
Algorithm:
if OF = 0 then jump
Example: ; -5 - 2 = -7 (inside -128..127) ; the result of SUB is correct, ; so OF = 0: include 'emu8086.inc' ORG 100h MOV AL, -5 SUB AL, 2 ; AL = 0F9h (-7) JNO label1 PRINT 'overflow!' JMP exit label1: PRINT 'no overflow.' exit: RET C Z S O P A unchanged JNP label Short Jump if No Parity (odd). Only 8 low bits of result are checked. Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if PF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 00000111b ; AL = 7 OR AL, 0 ; just set flags. JNP label1 PRINT 'parity even.' JMP exit label1: PRINT 'parity odd.' exit: RET C Z S O P A unchanged JNS label Short Jump if Not Signed (if positive). Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if SF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 00000111b ; AL = 7 OR AL, 0 ; just set flags. JNS label1 PRINT 'signed.' JMP exit label1: PRINT 'not signed.' exit: RET C Z S O P A unchanged JNZ label Short Jump if Not Zero (not equal). Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if ZF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 00000111b ; AL = 7 OR AL, 0 ; just set flags. JNZ label1 PRINT 'zero.' JMP exit label1: PRINT 'not zero.' exit: RET C Z S O P A unchanged JO label Short Jump if Overflow.
Algorithm:
if OF = 1 then jump
Example: ; -5 - 127 = -132 (not in -128..127) ; the result of SUB is wrong (124), ; so OF = 1 is set: include 'emu8086.inc' org 100h MOV AL, -5 SUB AL, 127 ; AL = 7Ch (124) JO label1 PRINT 'no overflow.' JMP exit label1: PRINT 'overflow!' exit: RET C Z S O P A unchanged JP label Short Jump if Parity (even). Only 8 low bits of result are checked. Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if PF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 00000101b ; AL = 5 OR AL, 0 ; just set flags. JP label1 PRINT 'parity odd.' JMP exit label1: PRINT 'parity even.' exit: RET C Z S O P A unchanged JPE label Short Jump if Parity Even. Only 8 low bits of result are checked. Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if PF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 00000101b ; AL = 5 OR AL, 0 ; just set flags. JPE label1 PRINT 'parity odd.' JMP exit label1: PRINT 'parity even.' exit: RET C Z S O P A unchanged JPO label Short Jump if Parity Odd. Only 8 low bits of result are checked. Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if PF = 0 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 00000111b ; AL = 7 OR AL, 0 ; just set flags. JPO label1 PRINT 'parity even.' JMP exit label1: PRINT 'parity odd.' exit: RET C Z S O P A unchanged JS label Short Jump if Signed (if negative). Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if SF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 10000000b ; AL = -128 OR AL, 0 ; just set flags. JS label1 PRINT 'not signed.' JMP exit label1: PRINT 'signed.' exit: RET C Z S O P A unchanged JZ label Short Jump if Zero (equal). Set by CMP, SUB, ADD, TEST, AND, OR, XOR instructions.
Algorithm:
if ZF = 1 then jump
Example: include 'emu8086.inc' ORG 100h MOV AL, 5 CMP AL, 5 JZ label1 PRINT 'AL is not equal to 5.' JMP exit label1: PRINT 'AL is equal to 5.' exit: RET C Z S O P A unchanged LAHF No operands Load AH from 8 low bits of Flags register.
Algorithm:
AH = flags register
AH bit: 7 6 5 4 3 2 1 0 [SF] [ZF] [0] [AF] [0] [PF] [1] [CF] bits 1, 3, 5 are reserved.
C Z S O P A unchanged LDS REG, memory Load memory double word into word register and DS.
Algorithm:
Example: STC ; set carry (CF=1). MOV AL, 1Ch ; AL = 00011100b RCL AL, 1 ; AL = 00111001b, CF=0. RET C O r r OF=0 if first operand keeps original sign. RCR memory, immediate
REG, immediate
memory, CL
REG, CL Rotate operand1 right through Carry Flag. The number of rotates is set by operand2.
Algorithm:
shift all bits right, the bit that goes off is set to CF and previous value of CF is inserted to the left-most position.
Example: STC ; set carry (CF=1). MOV AL, 1Ch ; AL = 00011100b RCR AL, 1 ; AL = 10001110b, CF=0. RET C O r r OF=0 if first operand keeps original sign. REP chain instruction
Repeat following MOVSB, MOVSW, LODSB, LODSW, STOSB, STOSW instructions CX times.
Algorithm:
check_cx:
if CX <> 0 then
Example: MOV AL, 1Ch ; AL = 00011100b ROL AL, 1 ; AL = 00111000b, CF=0. RET C O r r OF=0 if first operand keeps original sign. ROR memory, immediate
REG, immediate
memory, CL
REG, CL Rotate operand1 right. The number of rotates is set by operand2.
Algorithm:
shift all bits right, the bit that goes off is set to CF and the same bit is inserted to the left-most position.
Example: MOV AL, 1Ch ; AL = 00011100b ROR AL, 1 ; AL = 00001110b, CF=0. RET C O r r OF=0 if first operand keeps original sign. SAHF No operands Store AH register into low 8 bits of Flags register.
Algorithm:
flags register = AH
AH bit: 7 6 5 4 3 2 1 0 [SF] [ZF] [0] [AF] [0] [PF] [1] [CF] bits 1, 3, 5 are reserved.
C Z S O P A r r r r r r SAL memory, immediate
REG, immediate
memory, CL
REG, CL Shift Arithmetic operand1 Left. The number of shifts is set by operand2.
Algorithm:
What are bit fields What is the use of bit fields in a Structure declaration?
Both C and C++ allow integer members to be stored into memory spaces smaller than the compiler would ordinarily allow. These space-saving structure members are called bit fields, and their width in bits can be explicitly declared. Gagandeep Singh Bitfields can only be declared inside a structure or a union, and allow you to specify some very small objects of a given number of bits in length. struct { /* field 4 bits wide */ unsigned field1 :4; /* * unnamed 3 bit field * unnamed fields allow for padding */ unsigned :3; /* * one-bit field * can only be 0 or -1 in two's complement! */ signed field2 :1; /* align next field on a storage unit */ unsigned :0; unsigned field3 :6; }full_of_fields; The main use of bitfields is either to allow tight packing of data or to be able to specify the fields within some externally produced data files.
Explain what is meant by the fetch-execute cycle and describe its action in RLT?
Explain what is meant by the fetch-execute cycle and describe its action in RLT?" Explain what is meant by the fetch-execute cycle and describe its action in RLT?"
What is name of component which holds the address of the next instruction to be executed?
program counter
Why are recovered flight data recorders kept in water?
They do this with all components that they wish to salvage out of drowned aircraft. The very instant that you remove submerged components from the water they start to corrode. It better to keep them in the water until they get to an inspection/repair facility where the can be transferred to a corrosion inhibiting media. After that they can be taken to the workbenches.
If it was recovered from under water, letting it dry out could damage the recording so that they couldn't read it at all.
There are ways to safely recover the recording without damaging it, but it has to be done in a controlled manner.
What is addressing mode of instruction?
Addersing mode of a microprocesso tells the programmer that in which mode the instruction works . There are 5 addressing mode in 8080 , viz. Direct , register, indirect , immidiate ,implict addressing modes.
What is the bit capacity of a memory that has 1024 addresses and can store 8 bits at each address?
1024 bytes is 8192 bits.
What is instruction prefetching?
Instruction pre-fetching is very important phenomena in 8086 microprocessor. There is a 16-bit register set located in the BIU (bus Interface Unit) known as QUEUE.
While EU (Execution Unit) is working on the instructions i.e decoding and executing them, queue fetches the next sixinstruction byte of the running program. It is to be noted that, unlike stack (which is last in first out), queue is first in first out. Instruction which is fetched first is retrieved first.
This is much faster than sending out the address and waiting for memory to send back the instruction byte or bytes.
Limitation of QUEUE:
This pre-fetching of instruction speeds up processing but sometimes during 1JMP and CALL statements, queue has to be dumped and reloaded again starting from the next address.
Fetching the instruction while the current instruction executes is called pipelining.
1. Like in c++ programming, when a function is called the control is transferred to the function and its instruction
What is the Role of s6 pin in 8086?
In the 8086, pin 35 (A19/S6) is used as the high order address bit during the beginning of each memory access cycle. Afterwards, it is a spare status pin and is unused.
Can motives be used to segment markets?
Yes, you can use motives to segment markets. Look for motives that interests you in order to capitalize on this type of segmentation.
Which pin of 8086 is not compatible with 8085 for memory interfacing?
Pin 28 on the 8086/8088 is M/IO-, in minimum mode. The equivalent pin on the 8085 is IO/M-, and has opposite polarity.
What is the Difference between overflow and carry binary addition?
You have an adder circuit that can hold a maximum value of 100. With the carry it can hold values up to 199, the carry distinguishes between 31 and 131. But if the sum is greater than 199, you have overflow, because the circuit has no way of telling you what the actual value is.
[edit]
you have an overflow when the size of the result doesn't fit to the capacity of the memory sign of the result is different from what is expected (for example, getting a negative result when adding 2 positive numbers) The carry out occur when the size of the result doesn't fit to the capacity of the memory, yet its sign is correct.
What is meaning of byte ptr in 8086?
byte ptr is an assembler directive that says the following operand is an address of a byte.
What is the meaning of postfixes of 8086?
It is mightily referring to Microprocessor 8086 . I think you saw "8086 microprocessor". The 8086 is nothing it indicates the number of microprocessor same as Digital or analog ic's . 8086 microprocessor has 20 Address buses and 8 data buses which has 1 Mb inbuilt memory for performing several type of airthmatical and logical operation.
What is the function of xchg and xlat in 8086?
xchg- Exchange contents of specified destination and source operands.
eg. XCHG AL, CL Exchange contents of Al with CL
XCHG BP, SI Exchange contents of BP with SI
xlat- It is a translate instruction used for code conversion using look up table technique
Give the segment registers and their corresponding offset registers?