 Viswanath Chauhan from Computer Science and Engineering Department, Valchan Institute of Technology, Solapur. Now I am here to explain the instructions of 8086 microphones. At the end of this session, these students will explain the working of 8086 instructions to this specific data transfer instructions. So we will see the data transfer instructions. There are total four types of data transfer instructions. The first one is general purpose byte or word transfer instruction. Second one, simple input output port transfer instructions. Third one, special address transfer instructions. Fourth one, flag transfer instruction. We will see one by one. First type, general purpose byte or word transfer instruction. Move, push, pop, exchange, excel 80. So for all data transfer, they are not going to affect any flags. So we will see more detail about move. Move, it works like this. Move a byte or word from specified source to specified destination. Here the source may be register or memory. The destination may be register, memory or immediate number. But at the same time, both source and destination should not be memory. So example for move, move x, bx. So it copies the content of bx register into ax. Move cx comma 0123h. So it put immediate number 0123 into cx. Move bl comma 437a. So it copies byte in ds at an offset 437a to bl. Move dl comma bx. It copy a byte from memory at bx to dl. Bx contains offset of byte in ds. So there are other string byte or string word instructions. Move s, move sb, move sw. Next push, copy specified word to top of stack. Here the source may be general purpose register or segment register or memory. Example push bx. So it decrements sp by 2 and copy bx to stack. Push ds. It decrements sp by 2, copy ds to stack. Push al. It is illegal. Push table into bracket bx. It decrements sp by 2. Copy word from memory in ds at effective address is equal to table plus bx to stack. Push f. Push flag register on the stack. So we will focus on pop. Copy word from top of stack to specified location. Here the destination is a general purpose register or segment register or it may be memory. Example pop dx. It copy a word from top of stack to dx and increment sp by 2. Pop ds. Copy a word from top of stack to ds. Increment sp by 2. Pop table into bracket bx. Copy a word from top of stack to memory in ds with effective address table plus bx. Pop f. Pop word from top of stack to flag register. Exchange. Exchange byte or words. Exchange destination comma source this is the syntax. Please note that both source and destination cannot be memory. Example xchg ax comma dx. So it exchanges word in ax with word in dx. Similarly xchg bl comma ch. Xchg al comma table into bx. Exchange byte in al with a byte in memory at effective address is equal to table into bracket bx in ds. XLATB translate a byte in al. This instruction replaces a byte in al register with a byte pointed to by bx in a lookup table in memory. So we will focus on second type of data transfer instruction which is simple input output port transfer instruction in and out. So in it copy a byte of word from specified port to accumulator. Out it copy a byte of word from accumulator to specified register. So there are two type of in. First one is fixed port second one is variable. The example for fixed port in al comma 0b0abh it input a byte from port 0abh to al. In ax comma 34h it input a word from port 34 to ax. Example for variable port move dx comma 0fff it initializes dx register to point to port. In al comma dx see it input a byte from 8 bit port which is 0fffh to al. In ax comma dx input a word from 16 bit port to ax. So these are two type of in instruction fixed and port variable. In case of variable this value is going to vary. So think about this question which is differentiate push and pop instruction and answer for this question pause this video. I hope you answer push sp in case of push sp is decremented by 2 and pushes a data on stack. So pop here sp is incremented by 2 and pops the data from stack. So we will focus on out it copy a word from accumulator to specified register. This is also having two types of port fixed and variable. Example for fix out 3b comma al it copy content of al to port 3b similarly out 2c comma ax copy contents of ax to port 2ch. Example for variable move dx comma 0ffff. So this value will be copied into dx and out dx comma ax it copy content of al to the specified port. So this value is going to vary depends on port that is what is called variable type. We will focus on third type of data transfer. So we will address transfer instruction lea lds leas so we will focus one by one lea load effective address of operand into specified register. The syntax is lea register comma source. Example lea bx comma price so it load bx with offset of price in ds. So this is another sample. Second lds it load ds register and other specified register from memory. So lds register comma memory address of first word. Example lds bx comma 4326 it copy content of memory at displacement 4326h in ds to bl contents of 4327 to bh it copy the content at displacement of 4328h and 4329h in ds to ds register. Third type leas load es register and other specified register from memory. Example leas bx comma 789ah copy content from content of memory at displacement 789a and 9b in ds copy to bx. Fourth type flag register lehf sahf push hf popf lehf copy lower byte of flag register to ah copy ah register to lower byte of flag register. Push f push flag register on stack pop word from top of stack to flag register. These are the references. Thank you.