Unit I 1. Explain the architecture of 8086. 2. Explain with examples the addressing modes available in 8086. 3. Given the segment and offset addresses, how the physical address is calculated in 8086? 4. Explain with an example pin diagram of 8086 5. String manipulation instruction of a. SCAS b. LODS 6. Programming model of 8086 through Pentium 7. Explain about Program memory addressing 8. Stack memory addressing 9. Assembler directives 10. Define addressing modes. explain data addressing modes with example 11. Protected mode memory addressing in detail 12. Explain all program control instructions with example 13. Explain PUBLIC, EXTRNdirectives 14. Explain Macros and local variable in macros 15. Explain different data movement instructions with an example 16. Determine the memory location accessed by the following instructions ( MOV AL, [0100] (ii) MOV CL, [BX+O200]. Assume CS :2300H, BX = 1000H 17. Explain the string manipulafion and processor control instructions of 8086 microprocessor with six instructions for each. 18. Explain data transfer and logical instructions of 8086 19. Interface unit and Execution unit in 8086.

UNIT-II 1. Explain Stack addressing modes with an example? 2. What is stack? What is the use of stack memory? Explain the execution of push and pop instructions. 3. Explain Procedure call with Register Operands? 4. Explain Procedure call with Indirect Memory Addresses? 5. Explain ASSUME, EQU assembler directives in detail? 6. Define XCHG LAHF and SAHF instruction with an example? 7. Explain subtraction with borrow as an example? 8. Define CMP and CMPXCHG in detail? 9. Explain jumps with register operands? 10. Explain indirect jumps using an index? 11. Define Addressing Modes and Explain different types of Data Addressing Modes In detail? 12. Explain Program Memory addressing modes in details? 13. Explain Data Movement instruction with an Example? MOV, MOVSX, MOVZX, PUSH, POP, BSWAP, XCHG, XLAT? 14. Explain arithmetic instructions with examples.Explain String data transfer instructions: LODS, STOS, MOVS, INS, and OUT in detail. 15. Explain miscellaneous data transfer instructions XCHG, LAHF, SAHF, XLAT, IN, OUT in Detail. 16. Explain assembler directives with an example in detail. 17. Define Interrupt?Explain Interrupt Vector and Instructions In detail? 18. Explain shift and rotate Instruction In detail? UNIT III Using With /C++ For 16-Bit DOS Applications And 32-Bit Applications 1. Does the inline assembler support assembly language macro sequences? 2. Can a byte be defined in the inline assembler by using the DB directive? Ans:No, byte must be defined. 3. How are labels defined in the inline assembler? Ans:Labels are defined in the inline assembler exactly as they are in the assembler. 4. Which registers can be used in assembly language (either inline or linked modules) without saving? Ans:EAX, EBX, ECX, EDX, ES 5. What register is used to return integer data from assembly language to the C++ language caller? Ans:EAX 6. What register is used to return floating-point data from assembler language to the C++ language caller? 7. Is it possible to use the .if statement in the inline assembler? 8. In the following Example that displays showing one word per line, explain how the mov dl,strings[si] instruction accesses strings data. 9. // Example that displays showing one word per line void main(void) { char strings[] = “This is my first test application using _asm. \n”; int sc = -1; while (strings[sc++] != 0) { _asm { push si mov si,sc ;get pointer mov dl,strings[si] ;get character cmp dl,‘ ’ ;if not space jne next mov ah,2 ;display new line mov dl,10 int 21h mov dl,13 next: mov ah,2 ;display character int 21h pop si } } } In this example why was the SI register pushed and popped? Ans:The program uses SI and SI is not saved by the inline assembler so it must be saved and restored using a PUSH and POP. 10. Notice in Example that no C++ libraries (#include) are used. Do you think that compiled code for this program is smaller than a program to accomplish the same task in C++ language? Why? Example: // Program illustrating an assembly language procedure that // displays the contents of a C data structure. // A simple data structure typedef struct records { char first_name[16]; char last_name[16]; int age; int salary; } RECORD; // Fill some records RECORD record[4] = { {“Bill” ,”Boyd” , 56, 23000}, {“Page”, “Turner”, 32, 34000}, {“Bull”, “Dozer”, 39. 22000}, {“Hy”, “Society”, 48, 62000} }; // Program void main(void) { int pnt = -1; while (pnt++ < 3) { Str(record[pnt].last_name); Str(record[pnt].first_name); Numb(record[pnt].age); Numb(record[pnt].salary); Crlf(); } } Str (char *string_adr[]) { _asm { mov bx,string_adr mov ah,2 top: mov dl,[bx] inc bx cmp al,0 je bot int 21h jmp top bot: mov al,20h int 21h } } Crlf() { _asm { mov ah,2 mov dl,13 int 21h mov dl,10 int 21h } } Numb (int temp) { _asm { mov ax,temp mov bx,10 push bx L1: mov dx,0 div bx push dx cmp ax,0 jne L1 L2: pop dx cmp dl,bl je L3 mov ah,2 add dl,30h int 21h jmp L2 L3: mov dl,20h int 21h } } Ans: without the header file, it would be much smaller 11. What is the main difference between the 16-bit and 32-bit versions of C/C++ when using the inline assembler? 12. Can the INT 21H instruction, used to access DOS functions, be used in a program using the 32-bit version of the C/C++ ? Explain your answer. 13. What is the #include C/C++ library used for in a program? 14. Write a short C/C++ program that uses the _getche() function to read a key and the _putch()function to display the key. The program must end if an ‘@’ is typed. Ans: int _tmain( int argc, _TCHAR* argv[]) { char a=0; while (a!=?@?) { a=_getche(); _putch(a); } return 0; } 15. Would an embedded application that is not written for the PC ever use the conio.h library? 16. In Example 7–7, what is the purpose of the sequence of instructions _punch(10); followed by _punch(13);? 17. In Example 7–7, explain how a number is displayed in any number base. Ans: The disp procedure divides by the number base and saves the remainders to generate a number in any number base 18. Which is more flexible in its application, the inline assembler or assembly language modules that are linked to C++? Ans: separate assembly modules are the most flexible 19. What is the purpose of a PUBLIC statement in an assembly code module? Ans: The PUBLIC statement identifies a label as being available outside of the module. 20. How is an assembly code module prepared for use with C++ language? Ans: MODEL FLAT, C and the functions must be defined public. 21. In a C++ language program, the extern void GetIt(int); statement indicates what about function GetIt? 22. How is a 16-bit word of data defined in C++? Ans: A 16-bit word is defined with the short directive 23. What is a control in a C++ Visual program and where is it obtained? Ans: A control is usually some visible object that is obtained from the tool box in most cases. UNIT IV 1. What are the basic modes of operation of 8255? 2. Write the features of mode 0 in 8255? 3. What are the features used mode 1 in 8255? 4. What are the signals used in input control signal & output control signal? 5. What are the features used mode 2 in 8255? 6. Explain in detail, the programming and operating modes of 8255 PPI in detail. 7. What is DMA? Explain the DMA based data transfer using 8237 DMA controller 8. What are the modes of operation of 8237? 9. Write the BSR control word of 8255 to set bit 0 of port C. 10. Specify the bit of a control word for the 8255.Which differentiates between I/O mode and BSR mode? 11. Draw and explain Intel Pentium architecture. 12. What are the operating modes of 8255? 13. Explain the architecture diagram to Pentium pro processor 14. Explain the introduction to Pentium processor

UNIT V 1. Explain the Architecture of 8051.What are the blocks in Microcontroller. 2. Explain the Pin Diagram of 8051. 3. Explain the Instruction set with examples. 4. Explain the block diagram of 8051 Microcontroller. 5. 5.Explain the bit addresses for I/O of 8051. 6. Explain TMOD and TCON registers. 7. Explain bit addresses for RAM. 8. Explain the steps to program the timer 1 in mode 2. 9. Explain in detail about the programming of 8051 timers. 10. Explain the various modes of timer operation with diagram. 11. Explain the baud rates of serial communication in 8051. 12. Explain the interrupts of 8051. 13. Explain about the serial port programming. 14. 14.Draw the diagram to interface a stepper motor with 8051 microcontroller and explain. Write an 8051-assembly language program to run the stepper motor in both forward and reverse direction with delay. 15. Draw the pin diagram of 8051 and explain in detail, the function of each pin. 16. Draw the bit pattern of Program Status Word of 8051 and explain the significance of each bit with examples. (8) 17. List out the special function registers of 8051 microcontrollersand explain their functions 18. Explain the memory organization of 8051 microcontrollers. 19. Explain the architecture of 8051 microcontrollers with neat diagram 20. Write an assembly language program for 8051 to create a square wave of 66 % duty cycle on bit 3 of port 1. 21. How are the timers of 8051 used to produce time delay in timer mode? 22. Explain the interrupt structure of 8051 microcontrollers. 23. Explain the different modes of operation of timers/counters in 8051 with its associated register. 24. Write a program in 8051 to transfer letter ‘A’ serially at 4800 baud rate, 8 bit data and 1 stop bit continuously. 25. Write a program in 8051 to transfer message ‘YES’ serially at 9600 baud rate, 8 bit data and 1 stop bit continuously. 26. Explain the logical instructions in 8051 with an example. 27. Explain the rotate and swap instruction with an example for each 28. Explain in detail, the different addressing modes of 8051. 29. Explain the following instructions of 8051 with examples a) CJNE destination, source, label b) MUL AB c) RRL A d) SWAP A e) SETB P2.0 30. Explain the operating modes for serial port of 8051 microcontrollers.