MP Lab Manual 2
MP Lab Manual 2
SEM
INTERFACING PROGRAMS
1 0 0 0 0 0 0 0
ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: LOAD THE COUNTER REGISTER.
STEP3: INITIALIZE PORT A AS O/P PORT.
STEP4: LOAD THE INPUT AS 01H OR 80H.
STEP5: ROTATE CLOCKWISE THE RING COUNTER.
STEP6: AFTER EACH COUNT INTRODUCE DELAY
STEP6: DECREMENT THE COUNTER.
STEP6: COUNTER WILL ROTATE UNTIL THE COUNTER BECOMES ZERO.
STEP7: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ;INITIALISE THE DATE SEGMENT
MOV DS,AX
MOV AL,80H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV SI,0010H ; INITIALISE COUNT VALUE
MOV DX,PA
MOV AL, 01H
AGAIN:OUT DX,AL
CALL DELAY
ROL AL,01H
DEC SI
JNZ AGAIN
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY
RESULT: RING COUNTER COUNTS 01H, 02H, 04H, 08H, 10H, 20H, 40H, 80H AND REPEATS THE COUNT FOR 2
TIMES.
1 0 0 0 0 0 0 0
CWR VALUE =80H
ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: FIX THE MAXIMUM BCD COUNT FOR 8-BIT.
STEP3: INITIALIZE PORT A AS O/P PORT.
STEP4: LOAD THE INPUT AS 00H.
STEP5: LOAD THE INPUT VALUE IN ACCUMULATOR REGISTER FOR 8-BIT.
STEP6: AFTER EACH COUNT INTRODUCE DELAY
STEP7: ADD 01 FOR EACH INCREMENT IN COUNT.
STEP8: USE BCD INSTRUCTION FOR EACH UP COUNT & DOWN COUNT.
STEP9: COMPARE THE ACCUMULATOR VALUE WITH THE FIXED MAXIMUM BCD COUNT.
STEP10: IF NOT EQUAL DO THE STEP6.
STEP11: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,80H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV AL,00H ;INITIALISE COUNT = 00H
MOV DX,PA
AGAIN:OUT DX,AL
CALL DELAY
ADD AL,01H ; COUNT = COUNT + 1
DAA
CMP AL,99H ; COMPARE COUNT WITH MAX COUNT
JNE AGAIN ; IF COUNT< MAX COUNT, REPEAT COUNT
AGAIN1:OUT DX,AL
CALL DELAY
SUB AL,01H ; COUNT = COUNT - 1
DAS
CMP AL,00H ; COMPARE COUNT WITH MIN COUNT
JNE AGAIN1 ; IF COUNT< MIN COUNT, REPEAT COUNT
OUT DX,AL
MOV AH,4CH
RESULT: THE COUNTER IS UP COUNT FROM 00 TO 99 & SIMIlLARLY DOWN COUNT FROM 99 TO 00.
(C )COMPLEMENT OF A NUMBER:
1 0 0 0 0 0 1 0
ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS I/P PORT AND PORT A AS O/P PORT.
STEP3: READ THE VALUE FROM THE PORT B
STEP4: COMPLEMENTINPUT VALUE AND SEND TO THEPORTA.
STEP5: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00H
PB EQU 0DE01H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS, AX
MOV AL,82H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV DX,PB ; GIVE 8 BIT INPUT IN PORT B
IN AL,DX
NOT AL ; COMPLEMENT 8 BIT INPUT
MOV DX,PA
OUT DX,AL ; OUTPUT IN PORT A
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY
END ; END OF CODE SEGMENT
RESULT:
(D).PARITY CHECKER:
ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS I/P PORT AND PORT A AS O/P PORT.
STEP3: READ THE VALUE FROM THE PORT B
STEP4: CHECK THE PARITY FLAG IS SET OR NOT.
STEP5: IF THE PARITY FLAG IS SET THE IN O/P, 0FFH WILL DISPLAY.
STEP6: IF THE PARITY FLAG IS NOT SET THEN IN O/P, 00H WILL DISPLAY.
STEP7: STOP THE EXECUTION.
RESULT:
THE STATUS OF THE PARITY FLAG WILL CHECK & DISPLAY THE CONDITIONS.
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS I/P PORT AND PORT A AS O/P PORT.
STEP3: READ THE VALUE FROM THE PORTT B
STEP4: MULTIPLY THE I/P VALUE AND SEND TO PORT B.
STEP5: APPLY DELAY BETWEEN LOWER & HIGHER PRODUCT.
STEP6: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00H
PB EQU 0DE01H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,82H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV SI,03H
MOV DX,PB ; GIVE 8 BIT INPUT IN PORT B
IN AL,DX
MOV BL,AL
MUL BL
MOV DX,PA
OUT DX,AL ; DISPLAY LOWER BYTE RESULT IN PORT A
AGAIN: CALL DELAY
DEC SI
JNZ AGAIN
MOV AL,AH
OUT DX,AL ; DISPLAY HIGHER BYTE RESULT IN PORT A
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY
DEC BX
JNZ BACK1
RET
DELAY ENDP; END OF DELAY PROCEDURE
END; END OF CODE SEGMENT
RESULT:
THE I/P VALUE IS MULTIPLIED & SQUARE OF A NUMBER IS DISPLAYED
PROGRAM2.
STEPPER MOTOR INTERFACE THROUGH 8255 PPI
FIG: INTERNAL SCHEMATIC OF FOUR WINDING STEPPER MOTOR AND COUNTING SEQUENCE
ALGORITHMS:
STEP1: INITIALIZE 8255 PPI CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT A AS O/P PORT.
STEP3: LOAD THEI/P VALUE AS ‘88H’ IN ACCUMULATOR.
STEP4: INITIALIZE THE COUNTER FOR ONLY CLOCKWISE OR ANTI-CLOCKWISE ROTATION.
STEP5: ROTATE THE STEPPER MOTOR FOR ONLY CLOCKWISE OR ANTI-CLOCKWISE UNTIL
.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H
RESULT:
THE MOTOR WILL ROTATE CLOCKWISE / ANTICLOCKWISE DIRECTION.
ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT A AS O/P PORT.
STEP3: LOAD THE I/P VALUE AS ‘88H’ IN ACCUMULATOR.
STEP4: INITIALIZE THE COUNTER FOR BOTH CLOCKWISE & ANTI-CLOCKWISE.
STEP5: ROTATE THE STEPPER MOTOR BOTH CLOCKWISE & ANTI-CLOCKWISE UNTIL
COUNTER VALUE BECOMES ZERO
STEP6: FOR EACH STEP ROTATION INTRODUCE SOME DELAY.
STEP7: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H
COUNT EQU 200
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,80H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV SI,05H
TOP: MOV CX,COUNT ; INITIALISE STEP COUNT FOR ROTATION
MOV DX,PA
MOV AL, 88H ; ENERGISE COIL FOR ROTATION
AGAIN:OUT DX,AL
CALL DELAY
ROL AL,01H ; ROTATES STEPPER MOTOR ANTICLOCK WISE
LOOP AGAIN
MOV CX,COUNT ; INITIALISE STEP COUNT FOR ROTATION
MOV DX,PA
MOV AL, 88H ; ENERGISE COIL FOR ROTATION
AGAIN1:OUT DX,AL
CALL DELAY
ROR AL,01H ; ROTATES STEPPER MOTOR CLOCK WISE
LOOP AGAIN1
DEC SI
JNZ TOP
MOV AH,4CH ; TERMINATE PROGRAM NORMALLY
INT 21H
RESULT:
PROGRAM3.
CW VALUE =80H
1 0 0 0 0 0 0 0
ALGORITHM: STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT & PORT C AS O/P PORT.
STEP3: INITIALIZE THE COUNTER.
STEP4: USING PORT C, GIVE THE CONTROL PULSE.
STEP5: USING PORT B LOADS THE DATA PARALLEL AND SHIFT DATA SERIALLY.
STEP6: INTRODUCE SOME DELAY AFTER EACH CHARACTER IS DISPLAYING.
HELP WILL DISPLAY.
STEP7: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00H; ; ADDRESS OF PORT A
DELAY PROC
PUSH BX
PUSH CX
MOV BX,0055H
BACK1: MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
POP CX
POP BX
RET
DELAY ENDP
END
ALGORITHM:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT & PORT C AS O/P PORT.
STEP3: INITIALIZE THE COUNTER.
STEP4: USING PORT C, GIVE THE CONTROL PULSE.
STEP5: USING PORT B LOADS THE DATA PARALLELLY AND SHIFT DATA SERIALLY.
STEP6: HELP WILL DISPLAY & THEN ROLL TILL THE COUNTER BECOMES ZERO.
STEP7: FOR EACH DISPLAY INTRODUCE SOME DELAY BY CALLING DELAY SUBROUTINE.
STEP8: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00H; ADDRESS OF PORT A
PB EQU 0DE01H; ADDRESS OF PORT B
PC EQU 0DE02H; ADDRESS OF PORT C
CW EQU 0DE03H; ADDRESS OF CWR
HELP DB 8EH,0F9H,88H,86H ; HEX CODE FOR HELP
.CODE
MOV AX,@DATA
MOV DS,AX ;INITIALIZE THE DATA SEGMENT REGISTER
MOV AL,80H
MOV DX,CW ;LOAD THE CONTROL WORD IN CONTROL WORD REGISTER
OUT DX,AL
MOV DI,04H
AGAIN2:LEA SI,HELP ;INITIALIZE THE SOURCE INDEX REGISTER WITH STARTING ADDRESS OF HELP
MOV CX,04H ; 4 DISPLAYS
AGAIN1:MOV BL,08H ;8 LEDS IN EACH DISPLAY
MOV AL,[SI] ; LETTER TO BE DISPLAYED IS LOADED IN AL REGISTER
AGAIN: ROL AL,01H
MOV DX,PB
OUT DX,AL ; SEND THE LETTER TO BE DISPLAYED TO PORT B
MOV BH,AL
MOV DX,PC
MOV AL,00H
OUT DX,AL
MOV AL,0FFH
OUT DX,AL ; CONTROL PULSE IS GIVEN TO SHIFT REGISTER THROUGH PORT C
MOV AL,BH
DEC BL
JNZ AGAIN ;
CALL DELAY
INC SI ; SOURCE INDEX REGISTER IS INCREMENTED TO POINT TO NEXT LETTER
LOOP AGAIN1
DEC DI
JNZ AGAIN2
MOV AH,4CH
INT 21H ; DOS ROUTINE TO TERMINATE
DELAY PROC
PUSH BX
PUSH CX
MOV BX,0055H
BACK1: MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
POP CX
POP BX
RET
DELAY ENDP
END
ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT & PORT C AS O/P PORT.
STEP3: USING PORT C, GIVE THE CONTROL PULSE.
STEP4: USING PORT B LOAD THE DATA PARALLEL AND SHIFT DATA SERIALLY.
STEP5: FOOL WILL DISPLAY & THEN FIRE WILL DISPLAY.
STEP6: FOR EACH DISPLAY CALL DISPLAY SUBROUTINE.
STEP7: STOP THE EXECUTION.
N DB 05H
.CODE
MOV AX,@DATA
MOV DS,AX ; INITIALIZE THE DATA SEGMENT REGISTER
MOV AL,80H
MOV DX,CW ; CONTROL WORD IS LOADED IN CONTROL WORD REGISTER
OUT DX,AL
START: LEA SI,FOOL ; SOURCE INDEX REGISTER IS LOADED WITH STARTING ADDRESS OF
FOOL
CALL DISPLAY ; CALL DISPLAY ROUTINE
CALL DELAY ; CALL THE DELAY ROUTINE
LEA SI FIRE ; SOURCE INDEX REGISTER IS LOADED WITH STARTING ADDRESS OF
FIRE
CALL DISPLAY ; CALL DISPLAY ROUTINE
CALL DELAY CALL THE DELAY ROUTINE
DEC N
JNZ START
MOV AH,4CH
INT 21H ; CALL DOS ROUTINE TO TERMINATE
DISPLAY PROC
MOV CX,04H ; 4 DISPLAYS
AGAIN1: MOV BL,08H ; 8 LEDS IN EACH DISPLAY
MOV AL,[SI] ; LETTER TO BE DISPLAYED IS MOVED TO AL REGISTER
AGAIN: ROL AL,01H
MOV DX,PB
OUT DX,AL ; SEND THE LETTER TO BE DISPLAYED TO PORT B
MOV BH,AL
MOV DX,PC
MOV AL,00H
OUT DX,AL
MOV AL,0FFH ; CONTROL PULSE IS GIVEN TO SHIFT REGISTER THROUGH PORT C
OUT DX,AL
MOV AL,BH
DEC BL
JNZ AGAIN
CALL DELAY
INC SI
LOOP AGAIN1
RET
DISPLAY ENDP
DELAY PROC
PUSH BX
PUSH CX
MOV BX,0055H
BACK1: MOV CX,0FFFFH
ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT AND PORT A AS I/P PORT.
STEP3: INITIALIZE ROW =0, COL=1, KEY=0
STEP4: INITIALIZE ROW COUNT =4& COLUMN COUNT=4 FOR 4X4 7-SEGMENT
DISPLAY.
. STEP5: IF ANY KEY IS PRESSED IN ROW=0, DIFFERENT COLUMNS, INCREMENT THE
COLUMN COUNT & CORRESPONDING ROW, COLUMN, KEY WILL DISPLAY.
STEP6: IF WE PRESSED THE KEY OTHER THAN ROW=0, ROW COUNT WILL INCREMENT
AND CORRESPONDING ROW, COLUMN, KEY COLUMN AND KEY WILL DISPLAY.
STEP7: STOP THE EXECUTION.
.MODEL SMALL
.DATA
PA EQU 0DE00 ; ADDRESS OF PORT A
PB EQU 0DE01H; ADDRESS OF PORTB
PC EQU 0DE02H; ADDRESS OF PORT C
CW EQU 0DE03H; ADDRESS OF CWR
MESSAGE1 DB 10,13, ‘PRESS ANY KEY FRROM KEYBOARD’,’$’
MESSAGE2 DB 10,13,’ENTERED KEY IS:’, ‘$’
MESSAGE3 DB 10,13,’ROW NUMBER:’, ‘$’
MESSAGE4 DB 10,13,’COLUMN NUMBER:’,’$’
ROW DB 1 DUP(0)
COL DB 1 DUP(0)
.CODE
MOV AX,@DATA
MOV DS,AX ; INITIALIZE THE DATA SEGMENT REGISTER
MOV AL,90H
MOV DX,CW
OUT DX,AL ; ;LOAD THE CONTROL WORD IN CWR
PRINTSTRING MESSAGE1
START:MOV AL,80H
MOV ROW,1 ;INITIALIZE ROW TO1
MOV COL,1 ; INITIALIZE COL TO1
MOV CH,0
MOV BL,4
NEXTROW: ROL AL,01H
MOV BH,AL
MOV DX,PB
OUT DX,AL ; ACTIVATE FIRST ROW
MOV CL,04H
MOV DX,PA
IN AL,DX ; INPUT THE DATA FROM KEYBOARD TO AL THROUGH PORT A
NEXTCOL: ROR AL,01H
JC DISPLAY ; IF KEY IS PRESSED CARRY=1
INC CH
INC COL
DEC CL
JNZ NEXTCOL ; IF KEY IS NOT PRESSED THEN GO TO NEXT COLUMN
MOV COL,1
INC ROW
MOV AL,BH
DEC BL
JNZ NEXTROW; IF NONE OF COLUMNS IN THE PRESENT ROW IS NOT PRESSED GO TO NEXT ROW
START1: JMP START
DISPLAY: PRINTSTRING MESSAGE2
MOV DL,CH
CMP DL,0AH ; CONVERSION OF KEY PRESSED TO ASCII CODE
JC DIGIT
ADD DL,07H
DIGIT: ADD DL,30H
CALL DISPCHAR
ADD ROW,30H
ADD COL,30H
PRINTSTRING MESSAGE3
MOV DL,ROW
CALL DISPCHAR
PRINTSTRING MESSAGE4
MOV DL,COL
CALL DISPCHAR
MOV AH,4CH
INT 21H ; DOS ROUTINE TO TERMINATE
RESULT:
DAC INTERFACE
.MODEL SMALL
. DATA
PA EQU 0DE00H
PB EQU 0DE03H
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AL,80H
MOV DX,CW
OUT DX,AL
MOV AL,00H
MOV DX,PA
OUT DX,AL
BACK2:XOR AL,0FFH
OUT DX,AL
CALL DELAY
JMP BACK2
MOV AH,4CH
INT 21H
DELAY PROC:
MOV BX,00FFH
BACK1:MOV CX,0FFFFH
DEC BX
JNZ BACK1
DELAY ENDP
END
.MODEL SMALL
. DATA
PA EQU 0DE00H
PB EQU 0DE03H
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AL,80H
MOV DX,CW
OUT DX,AL
MOV AL,00H
MOV DX,PA
INC AL
JMP BACK
MOV AH,4CH
INT 21H
END
DAC INTERFACE
.MODEL SMALL
. DATA
PA EQU 0DE00H
PB EQU 0DE03H
.CODE
MOV DS,AX
MOV AL,80H
MOV DX,CW
OUT DX,AL
MOV AL,00H
MOV DX,PA
OUT DX,AL
BACK2:XOR AL,0FFH
OUT DX,AL
CALL DELAY
JMP BACK2
MOV AH,4CH
INT 21H
DELAY PROC:
MOV BX,00FFH
BACK1:MOV CX,0FFFFH
DEC BX
JNZ BACK1
DELAY ENDP
END
.MODEL SMALL
. DATA
PA EQU 0DE00H
PB EQU 0DE03H
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AL,80H
MOV DX,CW
OUT DX,AL
DEPT OF ECE, DBIT Page 29
MICROPROCESSOR LAB [15ECL47] IV
SEM
MOV AL,00H
MOV DX,PA
INC AL
JMP BACK
MOV AH,4CH
INT 21H
END
DSEG SEGMENT
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
ST1:
MOV DX,CNTRL
MOV AL,81H
OUT DX,AL
MOV DX,CNTRL
OUT DX,AL
CHKLDR:
MOV DX,PORTC
IN AL,DX
AND AL,02H
DEPT OF ECE, DBIT Page 32
MICROPROCESSOR LAB [15ECL47] IV
SEM
JNZ BZRLYON
MOV DX,CNTRL
OUT DX,AL
JMP CHKLDR
BZRLYON:
MOV DX,CNTRL
OUT DX,AL
;DELAY
MOV CX,0FFFFH
JMP CHKLDR
CSEG ENDS
END ST1
END
1.What is Microprocessor?
Ans:-It is a Semiconductor programmable device, it consists of electrical & logical circuits manufactured by
large scale integration technique, which fetches, decode and executes instructions.
3. Define Compiler.
Ans:- A compiler is a computer program (or set of programs) that transforms source code written in a
programming language (the source language) into another computer language (the target language, often
having a binary form known as object code). The most common reason for wanting to transform source code
is to create an executable program.
4. Define Interpreter.
Ans:- An interpreter may be a program that either :-executes the source code directly; translates source code
into some efficient intermediate representation (code) and immediately executes this; explicitly executes
stored precompiled code made by a compiler which is part of the interpreter system.
5. Define Assembler.
Ans:- An assembler is a program that takes basic computer instructions and converts them into a pattern of
bits that the computer's processor can use to perform its basic operations.
8. What is a bus?
Ans:-Information is transferred between units of the microcomputer by collections of conductors called buses.
There will be one conductor for each bit of information to be passed, e.g., 16 lines for a 16 bit address bus.
There will be address, control, and data buses.
Ans:-The microprocessor is a digital integrated circuit device that can be programmed with a series of
instructions to perform specified functions on data. But micro controller is a computer on a chip which has
memory ,input, output on the chip itself. So ,micro processor can perform only few functions but micro
controller can perform so many functions.
Ans:- ADDRESS BUS:-An address bus is a computer bus (a series of lines connecting two or more devices)
that is used to specify a physical address. When a processor or DMA-enabled device needs to read or write to
a memory location, it specifies that memory location on the address bus (the value to be read or written is sent
on the data bus). The width of the address bus determines the amount of memory a
system can address.
DATA BUS:-The bus (connections between and within the CPU, memory, and peripherals) used to
carry data. Other connections are the address bus and control signals. The width and clock rate of the data bus
determine its data rate (the number of bytes per second it can carry), which is one of the main factors
determining the processing power of a computer.
CONTROL BUS:-The control bus (or command bus) transports orders and synchronization signals coming
from the control unit and travelling to all other hardware components. It is a bidirectional bus, as
it also transmits response signals from the hardware.
Ans:-NIBBLE:-In computing, a nibble is a four-bit aggregation or half an octet. As a nibble contains 4 bits.
BYTE:-
The byte (pronounced /ˈbaɪt/) is a unit of digital information in computing and telecommunications. The size
of a byte is typically hardware dependent, but the modern de facto standard is 8 bits, as this is a convenient
power of 2.
WORD:- The most common microprocessors used in personal computers (for instance, the Intel Pentiums and
AMD Athlons) are an example of this; their IA-32 architecture is an extension of the original Intel
8086 design which had a word size of 16 bits.
12.What is a register?
Ans:-In computer architecture, a processor register (or general purpose register) is a small amount of storage
available on the CPU whose contents can be accessed more quickly than storage available elsewhere.
Typically, this specialized storage is not considered part of the normal memory range for the machine.
Processor registers are at the top of the memory hierarchy, and provide the fastest way for a CPU to access
data
Ans:-Data bus is bi-directional because same bus is used for data transmission from microprocessor
to memory location or input/output device and vice versa. That’s why data bus is bi-directional.
Ans:-Flag Register:- * The flag indicates the condition of the microprocessor as well as controls its
operations. * A flag register is a flip-flop which indicates some conditions produced by the execution of an
instruction or controls certain operations of the EU. A 16-bit flag register in the EU contains nine active
flags. Two types of flags: Conditional or status flags: Six flags are conditional flags. They are set or reset by
the EU on the basis of the results of some arithmetic operation.
Ans:-8086 is a 16-bit microprocessor,» 16-bit data bus,» Up to 10 MHz,» 1 MB RAM,» 64K I/O ports,40-pin
DIP,56-pin QFP,44-pin PLCC.
Ans:-Effective address is the final address generated by offsetting and indexing which is sent to the virtual
translation logic. It is the address of the operand in the virtual address space of the process, but not
necessarily the address of the operand in the
physical address space of the computer.
Ans:-4 different types of segments in 8086 i.e.,CS(Code Segment)to hold code area SS(Stack Segment)to run
program DS(Data Segment)to hold data ES(Extra Segment)to hold
large data.
Ans:-The 8086 had eight (more or less general) 16-bit registers including the stack pointer, but excluding the
instruction pointer, flag register and segment registers. Four of them, AX, BX, CX, DX, could also be
accessed as twice as many 8-bit registers (see figure) while the
other four, BP, SI, DI, SP, were 16-bit only.
Ans:-An instruction is an order given to a computer processor by a computer program. At the lowest level,
each instruction is a sequence of 0s and 1s that describes a physical operation the computer is to perform
(such as "Add") and, depending on the particular instruction type, the specification of special storage areas
called registers that may contain data to be used in carrying out the instruction, or the location in
computer memory of data.
The Microsoft Macro Assembler (MASM) is an x86 assembler for MS-DOS and Microsoft Windows. It
supports a wide variety of macro facilities and structured programming idioms, including high-level functions
for looping and procedures.
Ans:-1. Immediate addressing.2. Register addressing.3. Direct addressing.4. Indirect addressing. 5. Relative
index addressing mode. 6. Based indexed addressing mode. 7. Relative based indexed Addressing mode. 8.
Stack addressing mode.
23. Give the different type of data related addressing modes and explain with examples.
Ans:-1}Immediate addressing
Load the immediate data into the register, R.
Example: MVI R, data
2)Register addressing
Data from source register is moved into destination register.
Example: MOV Rd, Rs
3)Direct addressing
Accepts data from external devices to be stored in the accumulator or sends the data from the accumulator to
the external device. Example: IN 00H or OUT 01H
24. What are the different types of branch related addressing modes?
Ans:-Packed BCD numbers are stored two digits to a byte in 4 bit groups referred as nibbles Ex:86
in unpacked BCD there is only one digit per byte Ex: 08, 06
Ans:-The CBW and CWDE mnemonics reference the same opcode. The CBW instruction is intended for use
when the operand-size attribute is 16 and the CWDE instruction for when the operand-size attribute is 32. The
CWDE instruction is different from the CWD (convert word to double) instruction. The CWD instruction uses
the DX:AX register pair as a destination operand; whereas, the CWDE instruction uses the EAX register as a
destination.
Ans:-MUL (multiply) instruction is used for unsigned multiplication. This instruction multiplies bytes or
words.
IMUL (Integer multiply) instruction is used for signed multiplication. This instruction multiply bytes or
words.
The DIV instruction is to divide unsigned data. We can divide a byte by byte, a word by byte, double word by
word.
The IDIV instruction is to divide signed data. We can divide a byte by byte, a word by byte, double word by
word and the operations are just like DIV instructions
Ans:-The LOOP instruction is a combination of a decrement of CX and a conditional jump. In the 8086,
LOOP decrements CX and if CX is not equal to zero, it jumps to the address indicated by the label. If CX
becomes a 0, the next sequential instruction executes.
Ans:-In a loop if there are different jump instructions with a condition or counter called conditional loop and
instructions in that loop are called unconditional branch instructions.
Ans:-In a loop if there are different jump instructions with no condition it is called unconditional loop and
instructions in that loop are called unconditional branch instructions.
Ans:-Flag manipulation instructions. STC, CLC, CMC. Set, clear, complement carry flag. STD, CLD. Set,
clear direction flag
addition of two packed BCDs. The CPU uses the following logic:
CF_old = CF
IF (al AND 0Fh > 9) or (the Auxilliary Flag is set)
al = al+6
CF = CF or CF_old
AF set
ENDIF
IF (al > 99h) or (Carry Flag is set)
al = al + 60h
CF set
ENDIF
Ans:-SHL(SHIFT LEFT):-shifting bit code by no.of bits to left{ex:-00001011 when shifted left by one bit it
becomes 00010110},SHR(SHIFT RIGHT):-shifting bit code by no.of bits to right{ex:-00001011 when shifted
left by one bit it becomes 00000101}
ROR(ROTATE RIGHT):-rotate bit code from right to left{ex:-00001011 when rotated right by one bit it
becomes as 00010110}ROL{ROTATE LEFT}:-rotate bit code from left to right{ex:-00001011 when rotated
left by one bit it becomes as 10000101}RCL{ROTATE CARRY TO LEFT};RCR{ROTATE CARRY TO
RIGHT}
Ans:-Assembler directives are instructions to the assembler concerning the program being assembled.
Ans:-A microprocessor executes a collection of machine instructions that tell the processor what to do is
known as assembly process.
Ans:-A two pass assembler does two passes over the source file ( the second pass can be over a file generated
in the first pass ). In the first pass all it does is looks for label definitions and introduces them in the symbol
table. In the second pass, after the symbol table is complete, it does the actual assembly by translating the
operations and so on.
Ans:-Modular programming can be used to break up a large program into manageable units, or to create code
that can be easily re-used. Reduce problem to smaller, simpler, humanly comprehensible problems
Ans:- A linker is a program used to join together several object files into one large object file. The linker
produces a link file which contains the binary codes for all the combined modules. It also produces a link map
which contains the address information about the link files. The linker does not assign absolute addresses but
only relative address starting from zero, so the programs are relocatable & can be put anywhere in memory to
be run.
Ans:-A stack is a last in, first out (LIFO) abstract data type and data structure. A stack can have any abstract
data type as an element, but is characterized by only two fundamental operations: push and pop.
Ans:-The generic use of stack is for, Return address return value ,parameters to called function, local variables
in the called function, processor registers that will be reused in the
called function.
Ans:-Procedures are a group of instructions stored as a separate program in memory and it is called from the
main program whenever required. The type of procedure depends on where the procedures are stored in
memory. If it is in the same code segment as that of the main program then it is a near procedure otherwise it
is a far procedure.
Ans:-CALL 16-bit memory address of a subroutine. It is a 3-byte instruction that transfers the program
sequence to a subroutine Saves the content of the PC (Program Counter-16-bit register) , the address of the
next instruction , on the stack. Decrements the stack pointer register by 2. Jumps unconditionally to the
memory location specified by the 2nd and 3rd bytes. This instruction is accompanied by a RETURN
instruction in the subroutine. The return instruction is used either to return a function value or to terminate the
execution of a function. The exit may be from anywhere within the function body, including loops or nested
blocks. If the function returns a value, the return instruction is required
Ans:-A recursive procedure is a procedure, which calls itself. Recursive procedures are used to work with
complex data structures called trees. If the procedure is called with N=3, then the N is decremented by 1 after
each procedure CALL and the procedure is called until N=0.
Ans:-An interrupt is a condition that causes the microprocessor to temporarily work on a different task, and
then later return to its previous task. Interrupts can be internal or external. Internal interrupts, or "software
interrupts," are triggered by a software instruction and operate similarly to a jump or branch instruction Turbo
Assembler (TASM) is an x86 assembler package developed by Borland. It is used with Borland's high-level
language compilers, such as Turbo Pascal, Turbo Basic and Turbo C.
WHENEVER THE PROCESSOR OR SYSTEM IS RESETTED , ALL THE INTERRUPTS EXCEPT TRAP ARE DISABLED.
FU ORDER TO ENABLE THE INTERRUPTS, EL INSTRUCTION HAS TO BE EXECUTED AFTER A RESET.
THE SOFTWARE INTERRUPTS ARE PROGRAM INSTRUCTIONS. THESE INSTRUCTIONS ARE INSERTED AT
DESIRED LOCATIONS IN A PROGRAM. WHILE RUNNING A PROGRAM, IF SOFTWARE INTERRUPT INSTRUCTION
IS ENCOUNTERED THEN THE PROCESSOR EXECUTES AN INTERRUPT SERVICE ROUTINE.
READY IS AN INPUT SIGNAL TO THE PROCESSOR, USED BY THE MEMORY OR I/O DEVICES TO GET EXTRA TIME
FOR DATA TRANSFER OR TO INTRODUCE WAIT STATES IN THE BUS CYCLES.
HOLD AND HOLD ACKNOWLEDGE SIGNALS ARE USED FOR THE DIRECT MEMORY ACCESS (DMA) TYPE OF
DATA TRANSFER. THE DMA CONTROLLER PLACE A HIGH ON HOLD PINS IN ORDER TO TAKE CONTROL OF THE
SYSTEM BUS. THE HOLD REQUEST IS ACKNOWLEDGED BY THE 8085 BY DRIVING ALL ITS TRISTATED PINS TO
HIGH IMPEDANCE STATE
AND ASSERTING HLDA SIGNAL HIGH.
56.WHAT IS POLLING?
THE POLLING CAN BE CLASSIFIED INTO SOFTWARE AND HARDWARE POLLING. IN SOFTWARE POLLING THE
ENTIRE POLLING PROCESS IS GOVERN BY A PROGRARN.1N HARDWARE POLLING, THE HARDWARE TAKES
CARE OF CHECKING THE STATUS OF INTERRUPTING DEVICES AND ALLOWING ONE BY ONE TO THE
PROCESSOR.
THE INTERRUPT CONTROLLER IS EMPLOYED TO EXPAND THE INTERRUPT INPUTS. IT CAN HANDLE THE
INTERRUPT REQUEST FROM VARIOUS DEVICES AND ALLOW ONE BY ONE TO THE PROCESSOR.
59. LIST SOME OF THE FEATURES OF INTEL 8259 (PROGRAMMABLE INTERRUPT CONTROLLER)
1. IT MANAGE EIGHT INTERRUPT REQUEST 2. THE INTERRUPT VECTOR ADDRESSES ARE PROGRAMMABLE.
3.THE PRIORITIES OF INTERRUPTS ARE PROGRAMMABLE. 4. THE INTERRUPT CAN BE MASKED OR UNMASKED
INDIVIDUALLY.
FOR SYNCHRONOUS DATA TRANSFER SCHEME, THE PROCESSOR DOES NOT CHECK THE READINESS OF THE
DEVICE AFTER A COMMAND HAVE BEEN ISSUED FOR READ/WRITE OPERATION. FU THIS SCHEME THE
PROCESSOR WILL REQUEST THE DEVICE TO GET READY AND THEN READ/W1.ITE TO THE DEVICE
IMMEDIATELY AFTER THE REQUEST. IN SOME SYNCHRONOUS SCHEMES A SMALL DELAY IS ALLOWED AFTER
THE REQUEST.
IN ASYNCHRONOUS DATA TRANSFER SCHEME, FIRST THE PROCESSOR SENDS A REQUEST TO THE DEVICE FOR
READ/WRITE OPERATION. THEN THE PROCESSOR KEEPS ON POLLING THE STATUS OF THE DEVICE. ONCE THE
DEVICE IS READY, THE PROCESSOR EXECUTE A DATA TRANSFER INSTRUCTION TO COMPLETE THE PROCESS.
IN HANDSHAKE OUTPUT OPERATION, THE PROCESSOR WILL LOAD A DATA TO PORT. WHEN THE PORT
RECEIVES THE DATA, IT WILL INFORM THE OUTPUT DEVICE TO COLLECT THE DATA. ONCE THE OUTPUT
DEVICE ACCEPTS THE DATA, THE PORT WILL INFORM THE PROCESSOR THAT IT IS EMPTY. NOW THE
PROCESSOR CAN LOAD ANOTHER DATA TO PORT AND THE ABOVE PROCESS IS REPEATED.
THE INTERNAL DEVICES OF 8255 ARE PORT-A, PORT-B AND PORT-C. THE PORTS CAN BE PROGRAMMED FOR
EITHER INPUT OR OUTPUT FUNCTION IN DIFFERENT OPERATING MODES.
THE BAUD RATE IS THE RATE AT WHICH THE SERIAL DATA ARE TRANSMITTED. BAUD RATE IS DEFINED AS L
/(THE TIME FOR A BIT CELL). IN SOME SYSTEMS ONE BIT CELL HAS ONE DATA BIT, THEN THE BAUD RATE AND
BITS/SEC ARE SAME.
67. WHAT ARE THE FUNCTIONS PERFORMED BY INTEL 8251A? THE INTEL 825LA IS USED FOR
CONVERTING PARALLEL DATA TO SERIAL OR VICE VERSA. THE DATA TRANSMISSION OR RECEPTION CAN BE
EITHER ASYNCHRONOUSLY OR SYNCHRONOUSLY. THE 8251A CAN BE USED TO INTERFACE MODEM AND
ESTABLISH SERIAL COMMUNICATION THROUGH MODEM OVER TELEPHONE LINES.
69. WHAT ARE THE CONTROL WORDS OF 8251A AND WHAT ARE ITS FUNCTIONS ?
THE CONTROL WORDS OF 8251A ARE MODE WORD AND COMMAND WORD. THE MODE WORD INFORMS 8251
ABOUT THE BAUD RATE, CHARACTER LENGTH, PARITY AND STOP BITS. THE COMMAND WORD CAN BE SEND
TO ENABLE THE DATA TRANSMISSION AND RECEPTION.
70. WHAT ARE THE INFORMATION THAT CAN BE OBTAINED FROM THE STATUS WORD OF 8251 ?
THE STATUS WORD CAN BE READ BY THE CPU TO CHECK THE READINESS OF THE TRANSMITTER OR RECEIVER
AND TO CHECK THE CHARACTER SYNCHRONIZATION IN SYNCHRONOUS RECEPTION. IT ALSO PROVIDES
INFORMATION REGARDING VARIOUS ERRORS IN THE DATA RECEIVED. THE VARIOUS ERROR CONDITIONS
THAT CAN BE CHECKED FROM THE STATUS WORD ARE PARITY ERROR, OVERRUN ERROR AND FRAMING
ERROR.
THE INPUT DEVICES USED IN THE MICROPROCESSOR-BASED SYSTEM ARE KEYBOARDS, DIP SWITCHES, ADC,
FLOPPY DISC, ETC.
THE TASK INVOLVED IN KEYBOARD INTERFACING ARE SENSING A KEY ACTUATION, DEBOUNCING THE KEY
AND GENERATING KEY CODES (DECODING THE KEY). THESE TASK ARE PERFORMED SOFTWARE IF THE
KEYBOARD IS INTERFACED THROUGH PORTS AND THEY ARE PERFORMED BY HARDWARE IF THE KEYBOARD
IS INTERFACED THROUGH 8279.
THE RETURN LINES, RLO TO RL7 OF 8279 ARE USED TO FORM THE COLUMNS OF KEYBOARD MATRIX. IN
DECODED SCAN THE SCAN LINES SLO TO SL3 OF 8279 ARE USED TO FORM THE ROWS OF KEYBOARD MATRIX.
IN ENCODED SCAN MODE, THE OUTPUT LINES OF EXTERNAL DECODER ARE USED AS ROWS OF KEYBOARD
MATRIX.
THE PROCESS OF SENDING A ZERO TO EACH ROW OF A KEYBOARD MATRIX AND READING THE COLUMNS FOR
KEY ACTUATION IS CALLED SCANNING. THE SCAN TIME IS THE TIME TAKEN BY THE PROCESSOR TO SCAN
ALL THE ROWS ONE BY ONE STARTING FROM FIRST ROW AND COMING BACK TO THE FIRST ROW AGAIN.
IN DISPLAY DEVICES, THE PROCESS OF SENDING DISPLAY CODES TO 7 -SEGMENT LEDS TO DISPLAY THE LEDS
ONE BY ONE IS CALLED SCANNING ( OR MULTIPLEXED DISPLAY). THE SCAN TIME IS THE TIME TAKEN TO
DISPLAY ALL THE 7-SEGMENT LEDS ONE BY ONE, STARTING FROM FIRST LED AND COMING BACK TO THE
FIRST LED AGAIN.