Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
By Pragnan Chakravorty
Director, CARET
M.Tech (IIT Kharagpur), Member-IEEE(USA), ACM(USA) Member IEEE :Communication. Soc, Microwave Theory and Techniques Soc, Antenna & Wave Propagation. Soc
Instruction
6 5 4 3 2 1
ES CS SS DS IP
EU
AH BH CH DH SP BP SI DI
AL BL CL DL
ALU
Operands Flags
FFFFFH 7FFFFH
4489FH
ES
Extra Segment Base ES=7000H Top of Stack Segment 38AB4H
CS
IP=4214
348A0H Code Segment Base CS=348AH
SS
Stack Segment Base SS=5000H Top of Code Segment
BASE EA
CS
Code Segment Base CS=348AH Top of Data Segment 5FFFFH
3 4 8 A 0 + 4 2 1 4 3 8 A B 4
PHYSICAL ADDRESS
348A0H 2FFFFH
64K
DS
Bottom of Data Segment
SS
20000H
5FFE0H
Top of Stack
SP=FFE0
50000H Stack Segment Base SS=5000H
MEMORY SEGMENTATION
GENERATION OF PHYSICAL ADDRESS AS BASE + EFFECTIVE ADDRESS
BASE
5 0 0 0 0 EA + F F E 0 5 FF E 0
PHYSICAL ADDRESS
ENCODED IN INSTRUCTION
BX BP SI DI
EXPLICIT IN INTRUCTION
OR SINGLE INDEX OR
BX BP
DOUBLE INDEX
SI
OR
OR
DI
EU
OR
DISPLACEMENT
OR
CS SS DS ES
OR
OR
OR BIU OR
OR
PHYSICALADDRESS
[BX]+[SI]+ D16 [BX]+[DI]+ D16 [BP]+[SI]+ D16 [BP]+[DI]+ D16 [SI]+D16 [DI]+D16 [BP]+D16 [BX]+D16
AL CL DL BL AH CH DH BH
AX CX DX BX SP BP SI DI
H L We OD RAM
CE OE PROM
Cs Rd Wr MCS-80 PERI
T1 CLK
T2
T3
TWAIT
T4
T1
T2
T3
TWAIT
T4
B A S
ALE
I C
M/IO^
8 0 8
ADDR/STATUS
BHE^(A19-16)
S7S3
BHE^(A19-16
S7S3
BUS RESERVED
S
D15-D0 A15-A0 DATA OUT D15-D0
ADDR/DATA RD^
A15-A0
FOR DATA IN
Y S T E
READY
READY
READY
DT/R^
WAIT
WAIT
T I M
DEN^
I N
WR^
PROGRAM DEVOLOPMENT
YES
NO .EXE .MAP .BIN YES LOAD PROGRAM RUN & TEST PROGRAM ERRORS ?
LOCATE NO
EXTERNAL SYSTEM
STOP
3FFH 3FCH
TYPE 5 POINTER RESERVED TYPE 4 POINTER OVERFLOW TYPE 3POINTER BREAK-POINT TYPE 2 POINTER NONMASKABLE TYPE 1POINTER SINGLE-STEP TYPE 0 POINTER DIVIDE ERROR
INTERRUPTS
SOFTWARE INTERRUPTS
HARDWARE INTERRUPTS
ALL 0 THROUGH 255 POSSIBLE INTERRUPTS INTERNALLY ACTIVATED AND HAS HIGHER PRIORITY THAN HARDWARE INTERRUPTS
INTERRUPTS 0 THROGH 255 ARE POSSIBLE FOR HARDWARE INTERRUPTS BUT 32 TO 255 ARE INDEED USED.WORKS ONLY WHEN IF IS SET BY STI INSTRUCTION.ACTIVATED BY EXTERNAL HARDWARE DEVICE THROGH NMI & INTR PINS OF 8086.HAS LOWER PRIORITY THAN SOFTWARE INTERRUPTS
SOFTWARE INTERRUPT: STACK POINTER IS DECREMENTED BY 2 AND FLAG REGISTER PUSHED IN. 8086 INTR PIN IS DISABLED BY CLEARING THE IF FLAG IN THE FLAG REGISTER. TRAP FLAG TF IS RESET STACK POINTER IS DECREMENTED BY 2 AND CURRENT CS CONTENT IS PUSHED IN STACK POINTER IS AGAIN DECREMENTED BY 2 AND CONTENT OF CURRENT IP IS PUSHED IN AN INDIRECT FAR JUMP IS MADE TO THE STARTING ADDRESS OF THE INTERRUPT SERVICE PROCEDURE REQUESTED DESIRED INTERRUPT SERVICE PROCEDURE IS EXECUTED
HARDWARE INTERRUPT: AFTER IF IS SET BY AN STI INSTRUCTION, INTR IS ENABLED WHEN INTR RECEIVES A HIGH SIGNAL,8086 SENDS OUT TWO INTA^ PULSES TO 8259A.8259A THEN SENDS THE DESIRED INTERRUPT TYPE TO 8086 8086 MULTIPLIES THE INTERRUPT TYPE BY 4 TO PRODUCE THE REQUIRED ADDRESS OF THE INTERRUPT VECTOR TABLE. CONTENTS OF FLAG ARE PUSHED INTO THE STACK IF AND TF ARE CLEARED RETURN ADDRSS IS PUSHED INTO THE STACK STARTING ADDRESS OF ISR IS TAKEN FROM INTERRUPT VECTOR TABLE ISR IS EXECUTED
NMI
INTR
SINGLE-STEP
LOWEST PRIORITY
IF THAT IR INPUT IS UNMASKED ON THE MASTER AND IF IT HAS HIGHER PRIORITY THAN THE ONE BEING SERVICED IN THE MASTER,THEN THE MASTER SENDS INT SIGNAL TO INTR OF 8086.
IF THE INTR IS ENABLED 8086 WILL SEND TWO INTA^ PULSES TO BOTH THE MASTER AND THE SLAVE.
THE SLAVE IGNORES THE FIRST INTA^ BUT THE MASTER RECEIVES IT AND SENDS A SLAVE INDENTIFICATION NUMBER ON ITS CAS0,CAS1,CAS2 OUTPUT LINES.
SENDING A 3 BIT IDENTIFICATION NUMBER ENABLES THE DESIRED SLAVE AND ON RECEIVING THE SECOND INTA^ THE SLAVE WILL OUTPUT THE DESIRED INTERRUPT TYPE THROUGH THE LOWER 8 DATA BUS LINES.
THERE AFTER 8086 HANDLES AND SERVES THE INTERRUPT TYPE ACCORDINGLY
MAINLINE PROGRAM IR4 PROC STI STI IR2 PROC MAINLINE PROGRAM IR4 PROC
;INITITALIZATION OF 8259A PRIORITY INTERRUPT CONTROLLER MOV AL,00010011B MOV DX,0FF00H OUT DX,AL MOV AL,01000000B MOV DX,0FF02H OUT DX,AL MOV AL,00000001B OUT DX,AL MOV AL,11111010B OUT DX,AL ;EDGE TRIGGERED SINGLE,ICW4 ;POINT TO 8259A CONTROL ;SEND ICW1 ;TYPE 64 ;POINT AT ICW2 ADDRESS ;SEND ICW2 ;ICW4 8086 MODE ;SEND ICW4 ;OCW1 TO UNMASK IR0 AND IR2 ;SEND OCW1
START
D0
D1
D2
D3
D4
D5
D6
D7
STOP STOP
MODEM MICROCOMPUTER
MODEM MICROCOMPUTER
TXD RXD (3) RTS^ (5) CTS^ (4) CD^ (1) DTR^ (2) DSR^ DCE DTE DCE
TELEPHONE LINE
WORKING OF USART
1). AFTER THE TERMINAL IS TURNED ON IT RUNS SELF CHECKS IF ANY AND ASSERTS DATA-TERMINAL- READY(DTR^) 2). WHEN THE TERMINAL IS READY TO TRANSMIT OR RECEIVE, THE MODEM WILL ASSERT DATA SET READY (DSR^) TO THE TERMINAL. 3). WHEN THE TERMINAL HAS A CHARACTER READY TO SEND ,REQUEST TO SEND (RTS^) IS ASSERTED TO THE MODEM. 4). MODEM ASSERTS CARRIER DETECT (CD^) TO THE TERMINAL INDICATING IT HAS ESTABLISHED CONTACT WITH REQUIRED COMPUTER 5). WHEN THE MODEM IS FULLY READY TO TRANSMIT DATA IT ASSERTS CLEAR TO SEND (CTS^) SIGNAL BACK TO THE TERMINAL 6). WHEN THE TERMINAL HAS COMPLETED SENDING DATA IT NEEDS TO,IT MAKES ITS RTS^ SIGNAL HIGH AND THIS CAUSES THE MODEM TO UNASSERT CTS^
S2
S1
EP PEN L2
L1
B2
B1
BAUD RATE FACTOR
0 0
SYNC MODE
1 0
(1X)
0 1
(16X)
1 1
(64X)
CHARACTER LENGTH
0 0
EVEN PARITY 1=EVEN 0=ODD PARITY ENABLE 1=ENABLE 0=DISABLE
5 BITS
1 0
6 BITS
0 1
7 BITS
1 1
8 BITS
0 0
INV
1 0
1 BITS
0 1
1 1
2 BITS
D6
SYN DET
D5
FE
D4
OE
D3
PE
D2
TXE
D1
RXRDY
D0
TXRDY
SYNC DETECT,SET FOR INTERNAL SYNC DETECT,INDICATES SYNC HAS BEEN ACHIEVED FRAMING ERROR,SET WHEN VALID STOP BIT NOT DETECTED,RESET BY ER OVERRUN ERROR SET WHEN CPU DOESNT READ A CHARACTER BEFORE THE NEXT ONE IS AVAILABLE.RESET BY ER OF CW SET WHEN PARITY ERROR IS DETECTED IT IS RESET BY ER OF CW
RECEIVER READY INDICATES THAT THE 8251 HAS RECEIVED SERIAL I/P & IS READY TO GIVE THAT TO CPU
MOV DX,0FFF2H MOV AL,00H OUT DX,AL MOV CX,2 D0:LOOP D0 OUT DX,AL MOVCX,2 D1:LOOP D1 OUT DX,AL MOV CX,2 D2:LOOP D2 MOV AL,40H OUT DX,AL MOV CX,2 D3:LOOP D3 MOV AL,11001110B OUT DX,AL MOV CX,2 D4 LOOP: D4 MOV AL,00110111B OUT DX,AL
;POINT AT COMMAND REGISTER ADDRESS ;SEND ZEROS TO ENSURE DEVICE IS IN ;COMMAND INSTRUCTION ;FORMAT,BEFORE RESET IS ISSUED AND ;DELAY AFTER EACH COMMAND ;INSTRUCTION
;SENT INTERNAL RESET COMMAND TO ;RETURN DEVICE TO IDLE STATE LOAD DELAY ;CONSTANT AND DELAY
;INSTRUCTIONS FOR TRANSMITTING DATA USING POLLING METHOD MOV DX,0FFF2H ;POINT AT CONTROL REGISTER TEST1: ;ADDRESS IN AL,DX ;READ STATUS AND CHECK STATUS AND AL,10000001B ;OFDATA SET READY AND TRANSMIT CMP AL,10000001B ;READY? CONTINUE TO POLL IF NOT JNE TEST1 ;READY OTHERWISE POINT AT DATA MOV DX,0FFF0H ;ADDRESS LOAD DATA TO SEND MOV AL, DATA_TO_SEND ;AND SEND IT OUTDX,AL ;INSTRUCTIONS FOR RECEIVING DATA USING POLLING METHOD MOV DX,0FFF2H TEST2: IN AL,DX AND AL,00000010B CMP AL,00000010B JNZ TEST2 MOV DX,0FFF0H IN AL,DX ;POINT AT CONTROL REGISTER ;ADDRESS ;READ STATUS AND CHECK STATUS ; RXRDY AND CONTINUE TO POLL IF NOT ;READY OTHERWISE POINT AT DATA ;ADDRESS AND GET DATA
SIMPLE STROBE I/P O/P: HERE THE TRANSMITTING DEVICE SENDS A STROBE SIGNAL, RIGTH AFTER SENDING DATA,TO VALIDATE THE DATA TRANSMITTED STB^
DATA
SINGLEHANDSHAKE I/O: IN THIS METHOD THE STROBE SIGNAL RECEIVED FROM A TRANSMITTING DEVICE IS ANSWERED BY AN ACKNOWLEDGE SIGNAL FROM RECEIVING DEVICE ENSURING THE DATA HAS BEEN RECEIVED AND THE RECEIVING UNIT IS READY TO READ NEXT DATA STB^
ACK DOUBLE HANDSHAKE MODE: TRANSMITTING SIGNAL SEND STB^ TO RECEIVING END TO ASK WHETHER IT SHOULD SEND DATA,THE RECEIVING END IF READY WOULD SEND ACK TO SAY ITS READY THEN ANOTHER STB^ IS SENT FROM TRANSMITTER TO ASCERTAIN A VALID DATA TO RECEIVER.RECEIVERWOULD SEND ANOTHER ACK TO ANSWER THAT IT HAS RECEIVED DATA AND AWAITS ANY FURTHER REQUEST TO RECEIVE DATA STB^
ACK
MICRO COMPUTER
PORT DEVICE
PERIPHERAL
STB^ ACK
MODES OF OPERATION
MODE 0: THIS MODE OPERATES OF SIMPLE I/P O/P WITHOUT HANDSHAKE ALL THE THREE PORTS CAN BE SET IN THIS MODE. MODE 1: THIS OPERATE IN HANSHAKED I/P OR O/P OPERATION BOTH PORT A AND PORT B CAN BE SET IN THIS MODE .PC0, PCI,PC2 FUNCTION AS HANDSHAKE LINES FOR PORT B. PC3,PC4 AND PC5 ACT AS HANDSHAKE LINE FOR PORT A.PC6 AND PC7 LINES ARE AVAILABLE FOR I/P AND O/P MODE 2: ONLY PORT A CAN BE SET IN THIS MODE.HERE PORT A CAN BE USED FOR BIDIRECTIONAL DATA TRANSFER IN A HANDSHAKE MODE.THIS MEANS DATA CAN BE I/P OR O/P THROUGH THE SAME EIGHT LINES.PC3 THROUGH PC7 ARE HANDSHAKE LINES .PC0 TO PC2 ACT AS HANDSHAKE PINS IF PORT B IS IN MODE 0, OTHERWISE ARE USED FOR HANSHAKE OF PORT B.