Professional Documents
Culture Documents
Ngnh in t-Vin thng i hc Bch khoa Nng ca H Vit Vit, Khoa CNTT-TVT
Ti liu tham kho [1] K thut vi x l, Vn Th Minh, NXB Gio dc, 1997 [2] K thut vi x l v Lp trnh Assembly cho h vi x l, Xun Tin, NXB Khoa hc & k thut, 2001
Chng 1
1.1 Cc h thng s
- H thp phn
1.2 Cc h thng m ho
- ASCII
- BCD
1.1 Cc h thng s
Dng mi k hiu: 1,2,3,4,5,6,7,8,9,0 V d:1.1: Ba nghn Chn trm By mi Tm 3978 = 3x103 + 9x102 + 7x101 + 8x100 = 3000 + 900 + 70 + 8
1.1 Cc h thng s
S nh phn
Mi k hiu 0 hoc 1 c gi l 1 Bit (Binary Digit- Ch s nh phn) Kch c ca mt s nh phn l s bit ca n MSB (Most Significant Bit): Bit st tri LSB (Least Significant Bit): Bit st phi
V d 1.1: 1010101010101010
MSB LSB
l mt s nh phn 16-bit
S nh phn khng du
Ch biu din c cc gi tr khng m (>= 0) Vi n-bit c th biu din cc gi tr t 0 n 2n 1 V d 1.3: Gi tr V ca s nh phn khng du 1101 c tnh:
V(1101) = 1x23 + 1x22 + 0x21 + 1x20 = 8 + 4 + 0 + 1 = 13
S nh phn khng du
Tng qut: Nu s nh phn N n-bit: N = b( n-1) b( n-2) . b1 b0 th gi tr V ca n l: V = b(n -1) x 2(n-1)+b (n-2) x2 (n-2)+ + b1 x 21 + b0 x 20
16 gi tr t 0 n 15
Nh phn khng du 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Gi tr thp phn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S nh phn khng du
Di gi tri ca cc s khng du 8-bit l [0,255] (unsigned char trong C) Di gi tri ca cc s khng du 16bit l [0,65535] (unsigned int trong C)
V d 1.4 Chuyn 25 sang nh phn khng du. Dng phng php chia 2 lin tip Chia 2 Thng s = = = = = 12 6 3 1 0 D s 1 0 0 1 1 LSB
MSB
Kt qu l: 11001
S nh phn c du
Biu din c c cc gi tr m Cn gi l S b hai Vi n-bit c th biu din cc gi tr t 2(n-1) n 2(n-1) 1 V d 1.3: Gi tr V ca s nh phn c du 1101 c tnh: V(1101) = 1x23 + 1x22 + 0x21 + 1x20
=8 + 4 + 0 +1 =3
S nh phn c du
Tng qut: Nu s nh phn N n-bit: N = b( n-1) b( n-2) . b1 b0 th gi tr V ca n l: V = b(n -1) x 2(n-1)+b (n-2) x2 (n-2)+ + b1 x 21 + b0 x 20
16 gi tr t - 8 n 7
Nh phn c du 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 Gi tr thp phn 0 1 2 3 4 5 6 7 -8 -7 -6
1011
1100 1101 1110 1111
-5
-4 -3 -2 -1
S nh phn c du
Di gi tri ca cc s c du 8-bit l [-128,+127] (char trong C) Di gi tri ca cc s c du 16-bit l [-32768,+32767] (int trong C)
Tm i s (Ly b 2)
V s dng:Ging nh chuyn thp phn sang nh phn khng du ri thm bit 0 vo st bn tri V d: Chuyn 25 sang nh phn c du: Kt qu: 011011 Vi s m: Chuyn i s sang nh phn c du ri ly b 2
Chuyn s thp phn sang nh phn c du V d 1.6 Chuyn 26 sang nh phn 1. chuyn i s: +26 = 11010 2. a 0 vo st tri: 011010 3. B 1: 100101 4. Cng 1: + 1 -------------26 = 100110
S thp lc phn
Quen gi l s Hexa (Hexadecimal) Cn gi l h m c s mi su S dng 16 k hiu biu din: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Mi k hiu tng ng vi 4-bit Mc ch: Biu din s nh phn dng ngn gn 11110000 = F0 10101010 01010101 Nh phn = = AA 55 Thp lc phn
V d 1.8 Chuyn s nh phn 1100101011111110 sang hexa - Trc ht theo hng t LSB v MSB chia s nh phn thnh cc nhm 4-bit - Sau thay th mi nhm 4-bit bng k hiu hexa tng ng vi n 1100 C 1010 A 1111 F = 1110 E CAFEh
Kt qu: 1100101011111110b
1.2 Cc h thng m ho
ASCII: American Standard Code for Information Interchange. Dng biu din cc k t (characters):
Gm k t hin th c v k t iu khin
M ASCII
Bng m ASCII
Bng m ASCII
M BCD
BCD (Binary Coded Decimal) Quen gi l s BCD Dng m ho cc s thp phn bng cc k hiu nh phn Mi ch s thp phn c biu din bng mt t hp 4-bit Cc t hp 4-bit khng s dng gi l cc t hp cm Nhiu linh kin in t s dng m ny (B gii m BCD-LED by on 7447)
Bng m BCD
Thp phn 0 1 2 3 4 5 6 7 BCD 0000 0001 0010 0011 0100 0101 0110 0111 Thp phn 8 9 BCD 1000 1001 1010 1011 1100 1101 1110 1111
M BCD
ng nhm m ho BCD vi vic chuyn i thp phn sang nh phn: V d 1.9: Cho s thp phn 15 M BCD ca n l: 00010101
Bit: Mt ch s nh phn 0 hoc 1 Nibble: 4-bit (na byte) Byte: 8-bit (Cn gi l Octet) Word (T): 16-bit Double Word (T kp): 32-bit K = 210 = 1024 Kb (kilbit) = 1024 bit = 128 byte KB (kilbyte) = 1024 byte Kbps (Kilobit per second): Kilbit trn giy M = 220 = 1024 K = 1048576 Mb (Mgabit) = 1024 Kb = 1048576 MB (Mgabyte) = 1024 KB = 1048576 G = 230 = 1024 M = 1048576 K Gb (Gigabit) = 1024 Mb = 1048576 GB (Gigabyte) = 1024 MB = 1048576 T=?
bit byte Kb KB
Phn chia linh lin s theo mt tch hp: SSI, MSI, LSI, VLSI
SSI (Small Scale Integration): Vi mch tch hp c nh MSI (Medium Scale Integration): Vi mch tch hp c trung LSI (Large Scale Integration): Vi mch tch hp c ln VLSI (Very Large Scale Integration):Vi mch tch hp c cc ln
SSI: Cc cng logic and, or, xor, not MSI: Cc b gii m, Cc cht, m LSI,VLSI: Cc b vi x l, vi iu khin, DSPs
B
Cng AND c th c nhiu hn 2 u vo Trn mt chip c th c nhiu cng AND
0 0
1 0
0 0
Cng logic OR
A 1 1 0 0 B 1 0 1 0 A OR B 1 1 1 0
A B
Cng OR c th c nhiu hn 2 u vo Trn mt chip c th c nhiu cng OR
A OR B
B
1 0 1 0
A XOR B
0 1 1 0
A B
A XOR B
0 1
m 3 trng thi
c 0 1
z HiZ x
c 1 0
z HiZ x
IC 74244
IC 74244
m 2 chiu 74245
m 2 chiu 74245
What is a microprocessor?
Intels first microprocessor, the 4004, was introduced in 1971. It contained 2300 transistors. Todays Pentium 4 processor, by contrast, contains 55 million transistors. One of the most common tasks microprocessors perform is to serve as the brains inside personal computers, but they deliver intelligence to countless other devices as well. For example, they may give your telephone speed-dial and re-dial options, automatically turn down your homes thermostat at night and make your car safer and more energy efficient.
1971
In 1971, Intels first microprocessor was the 4004. This breakthrough invention powered the Busicom calculator and paved the way for embedding intelligence in inanimate objects as well as the personal computer.
1978
In 1978, a pivotal sale to IBM's new personal computer division made the Intel 8088 the brains of IBM's new hit product-the IBM PC. The 8088's success launched Intel into the ranks of the Fortune 500 companies, and Fortune magazine named the company one of the "Business Triumphs of the Seventies."
1982
Then, in 1982, the 286, also known as the 80286, became the first Intel processor that could run all the software written for its predecessor. This software compatibility remains a cornerstone of Intel's family of microprocessors. Within 6 years of its release, there were an estimated 15 million 286-based PCs around the world.
1989
In 1989, the move to a 486 processor allowed the shift from a command-level computer to pointand-click computing. The Intel 486 processor was the first to offer a built-in math coprocessor, which speeds up computing because it offloads complex math functions from the central processor.
1993
In 1993, the jump to the Pentium processor allowed computers to more easily incorporate "real world" data such as speech, sound, handwriting and photographic images.
1997
In 1997, the 7.5 million-transistor Pentium II processor incorporated Intel MMX technology, which is designed specifically to process video, audio and graphics data efficiently.
edit and add text, music or between-scene transitions to home movies, and,
with a video phone, send video over standard phone lines and the Internet.
1998
In 1998, the Pentium II XeonTM processor was designed to meet the performance requirements of mid-range and higher servers and workstations. The Pentium II Xeon processors featured technical innovations specifically designed for workstations and servers that utilized demanding business applications such as Internet services, corporate data warehousing, digital content creation, and electronic and mechanical design automations.
1999
In 1999, the Intel Celeron processor was designed for the value PC market segment. It provided consumers great performance at an exceptional value, and it delivered excellent performance for uses such as gaming and educational software.
1999
Also in 1999, the Pentium III processor was released and featured 70 new instructions that dramatically enhanced the performance of advanced imaging, 3-D, streaming audio, and video and speech recognition applications. It was designed to significantly enhance Internet experiences, allowing users to do such things as browse through realistic online museums and stores and download high-quality video.
2000
In 2000, users of the newly released Pentium 4 processor could create professional-quality movies, deliver TV-like video via the Internet, communicate with real-time video and voice, render 3D graphics in real time, quickly encode music for MP3 players, and simultaneously run several multimedia applications while still connected to the Internet. As a comparison, Intel's first microprocessor, the 4004, ran at 108 kilohertz, compared to the Pentium 4 processor's initial speed of 1.5 gigahertz. If automobile speed had increased similarly over the same period, you could now drive from San Francisco to New York in about 13 seconds.
Speed (MHZ)
1000 800 600 400 400 200 200 0.74 0 1971 1974 1979 1982 1985 1989 1993 1995 1997 1998 1998 1999 1999 2000 2 8 12 33 100 200 233 333 400 550
Year
Bi ging K thut Vi x l
Ngnh in t-Vin thng i hc Bch khoa Nng ca H Vit Vit, Khoa CNTT-TVT
Ti liu tham kho [1] K thut vi x l, Vn Th Minh, NXB Gio dc, 1997 [2] K thut vi x l v Lp trnh Assembly cho h vi x l, Xun Tin, NXB Khoa hc & k thut, 2001
Chng 2
Vi x l v H thng vi x l
2.1 B vi x l
- B vi x l (Microprocessor) l g? - Cc thnh phn ca b vi x l
- ng dng ca b vi x l
2.2 Cc h vi x l
- H x86 ca Intel- Lut Moore
- H 68x ca Motorola
2.3 H thng vi x l
B nh Cc cng I/O Bus h thng: D-Bus, A-Bus, C-Bus Thit k h thng vi x l?
2.1 B vi x l
Mt b vi x l l mt mch tch hp cha hng ngn, thm ch hng triu transistor (LSI, VLSI) c kt ni vi nhau Cc transistor y cng nhau lm vic lu tr v x l d liu cho php b vi x l c th thc hin rt nhiu chc nng hu ch Chc nng c th ca mt b vi x l c xc nh bng phn mm (c th lp trnh c)
B vi x l
B vi x l u tin ca Intel,4004, c gii thiu vo nm 1971. 4004 cha 2300 transistor. B vi x l Pentium 4 hin nay cha 55 triu transistor. B vi x l thng c s dng trong cc my vi tnh (microcomputer) vi vai tr l CPU. Ngoi ra, chng cn c mt nhiu thit b khc.
Cc thnh phn ca b vi x l
Thanh ghi l ni m b vi x l c th lu tr c mt s nh phn (Kch c ca thanh ghi tnh bng bit) B vi x l dng cc thanh ghi lu tr d liu tm thi trong qu trnh thc hin chng trnh Cc thanh ghi c th c truy cp bng cc cu lnh ngn ng my thng c gi l cc thanh ghi ngi s dng c th nhn thy c (c th truy cp c) Cc thanh ghi iu khin v cc thanh ghi trng thi c CU dng iu khin vic thc hin chng trnh. a s cc thanh ghi ny ngi s dng khng th nhn thy c
2.2 Cc h vi x l
Hin nay, c rt nhiu nh sn xut ra cc chip vi x l:Intel, AMD, Motorola, Cyrix Thng thng, mt h vi x l l cc chip vi x l c sn xut bi mt nh sn xut no . Trong phm vi mt h vi x l, theo thi gian v theo cng ngh ch to c cc i (th h) vi x l khc nhau phn bit theo di T ca chng (bit) v tc (Hz). di T (Word Length) ca mt chip vi x l l kch c ti a ca cc ton hng nh phn m n c th thc hin cc php ton trn .
Tc ca h vi x l x86 ca Intel
The Continuing Evolution of Intel Microprocessors CIS105 December 2002
1600 1,400 1400 1200
Speed (MHZ)
1000 800 600 400 400 200 200 0.74 0 1971 1974 1979 1982 1985 1989 1993 1995 1997 1998 1998 1999 1999 2000 2 8 12 33 100 200 233 333 400 550
Year
H vi x l x86 ca Intel
Model 4004 8008 8080 8086 80286
80386 processor 80486 DX processor Pentium processor Pentium II processor Pentium III processor Pentium 4 processor
8008
4/1/72 200KHz 8 bits 3,500 (10 microns) 16 KBytes -Data/character manipulation
8080
4/1/74 2MHz 8 bits 6,000 (6 microns) 64 KBytes -10X the performance of the 8008
8086
6/8/78 5MHz, 8MHz, 10MHz 16 bits 29,000 (3 microns) 1 MB -10X the performance of the 8080
80286
Introduced Clock Speeds Bus Width Number of Transistors Addressable Memory Virtual Memory Brief Description 2/1/82 6MHz, 8MHz, 10MHz, 12.5MHz 16 bits 134,000 (1.5 microns) 16 megabytes 1 gigabyte 3-6X the performance of the 8086
Intel386TM SX Microprocessor
6/16/88 16MHz, 20MHz, 25MHz, 33MHz 16 bits 275,000 (1 micron) 16 megabytes 64 terabytes 16-bit address bus enabled low-cost 32-bit processing
Pentium Processor
3/22/93 60MHz,66MHz 64 bits 3.1 million (.8 micron) 4 gigabytes 64 terabytes Superscalar architecture brought 5X the performance of the 33-MHz Intel486TM DX processor
Pentium II Processor
5/07/97 200MHz, 233MHz, 266MHz, 300MHz 64 bits 7.5 million (0.35 micron) 64 gigabytes 64 terabytes Dual independent bus, dynamic execution, Intel MMXTM technology
2.3 H thng vi x l
Lut Moore
Dr. Gordon E. Moore, Chairman Emeritus of Intel Corporation, d on rng C mt nm ri th s lng transistor c tch hp trn chip vi x l tng gp i
2.3 H thng vi x l
Address Bus
MEMORY
I/O Ports
Microprocessor
Data Bus
H thng vi x l
Gm 3 khi chc nng: Vi x l, B nh, Cc cng I/O B nh c thc hin bng cc chip nh bn dn ROM hoc RWM, l ni lu tr chng trnh v d liu. i vi vi x l, b nh l mt tp hp cc nh phn bit theo a ch ca chng. Cc cng I/O c thc hin bng cc chip MSI hoc LSI, l phn mch giao tip gia vi x l vi cc thit b I/O. B vi x l cng phn bit cc cng I/O theo a ch ca chng.
H thng vi x l
3 khi chc nng: Vi x l, B nh, Cc cng I/O ca mt h thng vi x l trao i tn hiu vi nhau thng qua Bus h thng. Bus h thng l mt tp hp cc ng truyn dn dng chung, bao gm: Bus a ch (A-Bus), Bus d liu (D-Bus) v Bus iu khin (C-Bus) Cc tn hiu a ch di chuyn trn A-Bus theo hng t vi x l n B nh v cc cng I/O. S lng ng truyn dn ca A-Bus (gi l rng ca A-Bus) tnh bng bit, phn nh kh nng qun l b nh ca chip vi x l.
H thng vi x l
Cc tn hiu d liu di chuyn trn D-Bus theo c 2 hng t vi x l n B nh v cc cng I/O v ngc li (mi lc mt hng). S lng ng truyn dn ca DBus (gi l rng ca D-Bus) tnh bng bit, phn nh mt phn tc trao i d liu ca chip vi x l vI cc khi chc nng khc. a s cc tn hiu trn C-Bus l cc tn hiu iu khin ring l, c tn hiu xut pht t vi x l, c tn hiu i vo vi x l. Vi x l s dng cc tn hiu ny iu khin hot ng v nhn bit trng thi ca cc khi chc nng khc.
Thit k b nh cho h thng vi x l: Ghp ni cc chip nh bn dn sn c vi bus h thng sao cho khi b vi x l truy cp b nh th khng xy ra xung t gia cc chip nh vi nhau v khng xung t vi cc chip dng lm cng I/O Tng t, Thit k cc cng I/O cho h thng vi x l: Ghp ni cc chip MSI hoc LSI thng dng lm cng I/O vi bus h thng sao cho khi b vi x l truy cp cc thit b I/O th khng xy ra xung t gia cc chip vi nhau v khng xung t vi cc chip dng lm b nh
Vit chng trnh iu khin hot ng ca h thng phn cng theo chc nng mong mun (thng dng ngn ng Assembly ca chip vi x l dng trong h thng) Dch chng trnh vit sang ngn ng my s dng cc chng trnh dch thch hp Np chng trnh ngn ng my vo b nh ca h thng vi x l Kim tra hot ng ca h thng v thc hin cc hiu chnh nu cn thit C th nh s tr gip ca cc chng trnh m phng trn my tnh
Ti liu tham kho [1] K thut vi x l, Vn Th Minh, NXB Gio dc, 1997 [2] K thut vi x l v Lp trnh Assembly cho h vi x l, Xun Tin, NXB Khoa hc & k thut, 2001
Chng 3 Vi x l 8088-Intel 3.1 Kin trc v hot ng ca 8088 - Nguyn l hot ng - S khi chc nng 3.2 Cu trc thanh ghi ca 8088 3.3 Phng php qun l b nh 3.4 M t tp lnh Assembly
Nguyn l hot ng ca mt b vi x l
Gii m lnh
n v thc hin - EU
Bao gm CU v ALU CU : Gii m lnh to ra cc tn hiu iu khin nhm thc hin lnh c gii m ALU: thc hin cc thao tc khc nhau i vi cc ton hng ca lnh
T chc ca microprocessor
CPU Control registers
Status Registers
Mt th tc n gin gm 3 bc:
Ly lnh t b nh Gii m lnh Thc hin lnh
Ly cc ton hng t b nh (nu c) Lu tr kt qu
Fetch 1
Decode 1
Execute 1
Fetch 2
Decode 2
Execute 2
...
Microprocessor
Busy
Idle
Busy
Busy
Idle
Busy
...
Bus
C ch Pipelining
Pipelining
Fetch 1
Fetch 2
Fetch 3
Fetch 4
Store 1
Fetch 5 Idle
Fetch 6
Load 2
Fetch 7 Idle
...
Bus
Decode Decode 5 6
Decode 7
...
Instruction Unit
Exec. 1
Exec. 2
Exec. 3
Exec. 4
Idle Idle
Exec. 5
Exec. 6
Idle
Exec. 7
Execution Unit
Memory request
Memory request
Instr Pointer
EIP BL
Index Registers
IP
Stack Pointer
FLAG ESP
SP
Base
EBX
BH BX
Flags
EFLAG
Base Pointer
EBP
BP
Count
CH CX ECX
CL
Segment Registers
CS
Dest Index
EDI
DI
Data
DH DX EDX
DL DS
Source Index
ESI
SI
ES
SS FS GS
Extra Segment
Stack Segment
AH BH CH DH CS DS SS ES
15
AL BL CL DL
0
AX BX CX DX
IP SP BP SI DI
} }
AH BH CH DH
AL BL CL DL
AX BX CX DX
- Lu tr tm thi d liu truy cp nhanh hn v trnh khi phi truy cp b nh - C cng dng c bit i vi mt s cu lnh
CS DS SS ES
- Lu tr a ch segment ca mt nh cn truy cp
IP SP BP SI DI
- Lu tr a ch offset ca mt nh cn truy cp
Thanh ghi c
15 0
x OF DF IF TF SF ZF x AF x PF x CF
- Khng phi tt c cc bit u c s dng - Mi bit c s dng c gi l mt c - Cc c u c tn v c th c Lp/Xo ring l - Bao gm cc c trng thi v cc c iu khin
Flags register
AC (Alignment check) (VM) Virtual mode (RF) Resume
(NT) Nested task (IOPL) Input/output privilege level (O) Overflow (D) Direction (I) Interrupt (T) Trace (S) Sign (Z) Zero (A) Auxiliary Carry (P) Parity (C) Carry
80386, 80486DX
80286
80486SX
19 a ch vt l
15
15
0000
Ngun: c th l:
Mt s lu i vi MOV
- ch v Ngun phi c cng kch c - ch v Ngun khng th ng thi thuc b nh - Nu ch l mt thanh ghi segment ca VXL th Ngun khng th l mt gi tr c th (ni cch khc, khng th np gi tr trc tip cho mt thanh ghi segment bng lnh MOV)
T/h2: c th l:
Mt s lu i vi XCHG
- T/h1 v T/h2 phi c cng kch c - T/h1 v T/h2 khng th ng thi thuc b nh - T/h1 v T/h2 khng th l cc thanh ghi segment
Cc mode a ch
- Khi thc hin lnh, VXL s thc hin nhng thao tc nht nh trn s liu, cc s liu ny c gi chung l cc ton hng. - Cc ton hng trong mt cu lnh c th l mt phn ca cu lnh ( dng m my), c th nm mt thanh ghi ca VXL hoc B nh -Cch xc nh ton hng trong cc cu lnh c gi l cc mode (nh) a ch
Cc mode a ch
- Mode a ch thanh ghi: MOV AX,BX - Mode a ch tc th: MOV AL,55h - Cc mode a ch b nh: Cc cch thc xc nh a ch vt l ca ton hng nm trong b nh: Mode a ch trc tip Cc mode a ch gin tip
Mode a ch c s-ch s
BP
Cc v d
Instruction Comment Addressing Mode Register 89 D8 Memory Contents MOV AX, BX Move to AX the 16-bit value in BX
OP MODE
MOV AX, DI
Register
89 F8
OP
MODE
MOV AH, AL
Register
88 C4
OP
MODE
Immediate
B4 12
OP
DATA8
Immediate
B8 34
OP
DATA16
Immediate
B8 lsb msb
OP
DATA16
MOV AX, X
Immediate
B8 lsb msb
OP
DATA16
Direct
A1 34 12
OP
DISP16
Direct
A1 lsb msb
OP
DISP16
Cc v d
Instruction Comment Move to the memory location pointed to by DS:X the value in AX Move to AX the 16-bit value pointed to by DS:DI Move to address DS:DI the 16-bit value in AX Move to AX the 16-bit value pointed to by DS:BX Move to the memory address DS:BX the 16-bit value stored in AX Move to memory address SS:BP the 16-bit value in AX Move to AX the value in memory at DS:BX + TAB Move value in AX to memory address DS:BX + TAB Move to AX the value in memory at DS:BX + DI Addressing Mode Memory Contents
MOV [X], AX
Direct
A3 lsb msb
OP
DATA16
Indexed
8B 05
OP
MODE
MOV [DI], AX
Indexed Register Indirect Register Indirect Register Indirect Register Relative Register Relative Base Plus Index
89 05
OP
MODE
8B 07
OP
MODE
MOV [BX], AX
89 07
OP
MODE
MOV [BP], AX
89 46
OP
MODE
8B 87 lsb msb
OP
MODE
DISP16
MOV TAB[BX], AX
89 87 lsb msb
OP
MODE
DISP16
8B 01
OP
MODE
Cc v d
Instruction Comment Addressing Mode Memory Contents
89 01
OP
MODE
8B 81 34 12
OP
MODE
DISP16
C7 81 34 12 78 56
M my
Opcode (6 bit) xc nh php ton cn thc hin Bit D xc nh ton hng REG ca Byte 2 l ngun hay ch: 1: ch
0: Ngun
Bit W xc nh kch c ca ton hng l 8 bit hay 16 bit 0: 8 bit
1: 16 bit
Byte 2 gm:Mode field (MOD), Register field (REG) Register/memory field (R/M field)
Anatomy of an instruction
Opcode Mode Displacement Data/Immediate
D W
OPCODE
Opcode contains the type of instruction we execute plus two special bits, D and W The mode byte is used only in instructions that use register addressing modes and encodes the source and destination for instructions with two operands D stands for direction and defines the data flow of the instruction
D=0, data flows from REG to R/M D=1, data flows from R/M to REG
MOD
REG
R/M
Anatomy of an instruction
Opcode Mode Displacement Data/Immediate
D W
OPCODE
MOD field specifies the addressing mode 00 no displacement 01 8-bit displacement, sign extended 10 16-bit displacement 11 R/M is a register, register addressing mode If MOD is 00,01, or 10, the R/M field selects one of the memory addressing modes
MOD
REG
R/M
Example
Consider the instruction 8BECh 1000 1011 1110 1100 binary Opcode 100010 -> MOV D=1 data goes from R/M to REG W=1 data is word-sized MOD=11, register addressing REG=101 destination, R/M=100 source MOV BP, SP
Code 000 001 W=0 AL CL W=1 AX CX W=1 EAX ECX
010
011 100 101 110 111
DL
BL AH CH DH BH
DX
BX SP BP SI DI
EDX
EBX ESP EBP ESI EDI
Displacement addressing
If MOD is 00, 01, or 10 R/M has an entirely different meaning
MOD 00 01 10 11 No displacement 8-bit sign-extended displacement 16-bit displacement R/M is a register (register addressing mode) FUNCTION
Examples: If MOD=00 and R/M=101 mode is [DI] If MOD=01 and R/M=101 mode is [DI+33h] If MODE=10 and R/M=101 modes is [DI+2233h]
111
DS:BX
Example
Instruction 8A15h 1000 1010 0001 0101 Opcode 100010 -> MOV D=1, data flows from R/M to REG W=0, 8-bit argument MOD=00 (no displacement) REG=010 (DL) REG=101 ([DI] addressing mode) MOV DL, [DI]
W=0 AL CL
W=1 AX CX
010
011 100 101 110 111
DL
BL AH CH DH BH
DX
BX SP BP SI DI
EDX
EBX ESP EBP ESI EDI
R/M Code
000 001 010 011 100 101 110 111
Function
DS:BX+SI DS:BX+DI SS:BP+SI SS:BP+DI DS:SI DS:DI SS:BP DS:BX
Direct Addressing
Example: 8816 00 10 1000 1000 0001 0110 0000 0000 0001 0000 Opcode 100010 -> MOV W=0 (byte-sized data) D=0 data flows from REG MOD 00, REG=010 (DL), R/M=110 Low-order byte of displacement 00 High-order byte of displacement 10 MOV [1000h], DL
Code 000 001 010 011 100 101 111 AL CL DL BL AH CH BH
W=0
W=1 AX CX DX BX SP BP
110
DH
SI
DI
ESI
EDI
Opcode 10001100
MOD=11 (register addressing) REG=001 (CS) R/M=011 (BX) 8CCB
M my
REG xc nh thanh ghi cho ton hng th nht
M my
MOD v R/M cng nhau xc nh ton hng th hai
M my
MOD v R/M cng nhau xc nh ton hng th hai
V d
M ho lnh MOV
BL,AL
Opcode i vi MOV l 100010 Ta m ho AL sao cho AL l ton hng ngun: D = 0 (AL l ton hng ngun) W bit = 0 (8-bit) MOD = 11 (register mode) REG = 000 (m ca AL)
Nhm lnh S hc
Bn cnh tc dng, cn ch n nh hng ca lnh i vi cc c trng thi Cc lnh s hc th/thng: ADD, SUB, Cc lnh s hc khc: CMP. NEG, INC, DEC, nh hng n cc c trng thi
CF OF AF
Ph thuc vo qu trnh thc hin php ton
Ngun: c th l:
nh hng ca ADD
ZF = 1 nu Kt qu bng 0 SF = 1 nu MSB ca Kt qu = 1 PF = 1 nu byte thp ca kt qu c Parity chn
CF c lp nu trn khng du (c nh t MSB) OF c lp nu trn c du: - C nh t MSB, Khng c nh vo MSB - C nh vo MSB, Khng c nh t MSB AF c lp nu c nh t nibble thp vo nibble cao (t bit 3 vo bit 4)
Cc c iu khin
DF - Direction flag (C hng)
DF = 1: hung xung DF = 0: hng ln
TF - Trace flag
TF = 1: vi x l thc hin tng lnh mt
Cc c trng thi
Carry
carry or borrow at MSB in add or subtract last bit shifted out
Zero
result is 0
Sign
result is negative
Parity
low byte of result has even parity
Overflow
signed overflow occurred during add or subtract
Auxiliary
carry or borrow at bit 3
(Signed) Overflow
Can only occur when adding numbers of the same sign (subtracting with different signs) Detected when carry into MSB is not equal to carry out of MSB
Easily detected because this implies the result has a different sign than the sign of the operands
Unsigned Overflow
The carry flag is used to indicate if an unsigned operation overflowed The processor only adds or subtracts - it does not care if the data is signed or unsigned!
10010110 + 11110011 10001001
Carry out = 1 Unsigned overflow occurred CF = 1 (set)
Ngun: c th l:
nh hng ca SUB
ZF = 1 nu Kt qu bng 0 SF = 1 nu MSB ca Kt qu = 1 PF = 1 nu byte thp ca kt qu c Parity chn
CF c lp nu trn khng du (c mn vo MSB) OF c lp nu trn c du: - C mn t MSB, Khng c mn t MSB - C mn t MSB, Khng c mn vo MSB AF c lp nu c mn t nibble cao vo nibble thp (t bit 4 vo bit 3)
Ngun: c th l:
Mt s v d
AL 1100 1010 NOT AL AL 0011 0101 AL 0011 0101 BL 0110 1101 AND AL, BL AL 0010 0101 AL 0011 0101 BL 0000 1111 AND AL, BL AL 0000 0101 AL BL 0011 0101 0110 1101 OR AL, BL AL 0111 1101 AL BL 0011 0101 0000 1111 OR AL, BL AL 0011 1111 AL 0011 0101 BL 0110 1101 XOR AL, BL AL 0101 1000
Mt s ng dng
Bi ton Xo bit: Xo mt bit no ca mt ton hng m khng lm nh hng n cc bit cn li ca ton hng Bi ton Kim tra bit: Xc nh mt bit no ca mt ton hng l bng 0 hay 1 (thng qua gi tr ca mt c trng thi) Bi ton Lp bit: Lp mt bit no ca mt ton hng m khng lm nh hng n cc bit cn li ca ton hng
Register
CF
RCR
ROL
ROR
M my ca lnh nhy
1106:0100 EB2A JMP 012C 012C-0102=002A 1106:0102 EBFC JMP 0100 0100-0104=FFFC 1106:0104 E97F00 JMP 0186 0186-0106=0080 (too far for short!) 0186-0107=007F 1106:0107 E9F5FE JMP FFFF FFFF-010A=FEF5
Cc lnh nhy iu kin n: ph thuc vo gi tr ca 1 c. JNZ/JNE - Nhy nu c ZF = 0, ngha l kt qu ca php ton trc khc khng JC - Nhy nu CF = 1, ngha l cu lnh trc lp c carry JZ/JE JNC
T hp vi lnh nhy khng iu kin c th vt qua gii hn ny. Cc lnh nhy iu kin kp: ph thuc vo gi tr ca nhiu c JB/JNAE JNL/JGE
Cu trc iu kin
mov ax,n cmp ax,7 jz nhan1 lnh 1 jmp nhan2 nhan1:lnh 2 nhan2:lnh 3
Cu trc lp
mov ax,n
nhan1: cmp ax,0 jz nhan2 lnhi sub ax,2 jmp nhan1 nhan2: lnhk
Cu trc iu kin - OR
char n,k; unsigned int w; if (n<>k || w<=10) whatever();
;if(n<>k||w<=10) mov ah,n cmp ah,k jne then_ cmp w,10 ja end_if then_: call whatever end_if:
Lnh LOOP
LOOP nhan
Gim CX i 1 Nu (CX) <> 0 th JMP nhan. Nu khng th tip tc thc hin lnh theo trt t bnh thng mov cx,9 nhan: lnh 1 lnh 2 lnh 3 loop nhan
LOOPZ/E v LOOPNZ/E
Cc bin th ca LOOP Gi tr ca c ZF c th lm kt thc sm vng lp Loop while ZF/equal && CX!=0 Loop while (NZ/ not equal) && CX!=0 Lu : LOOP gim CX nhng khng nh hung n cc c LOOPZ == LOOPE LOOPNZ==LOOPNE Cc lnh trong vng lp c th tc ng n c ZF (CMP ?)
Stack ?
Cu trc d liu LIFO RWM
- PUSH : ghi d liu vo stack, - POP: c d liu t stack
(SS:SP) tr n nh ca stack (SS:BP) truy cp stack ngu nhin (khng theo LIFO)
Stack Initialization
The .stack directive hides an array allocation statement that looks like this
The_Stack DB Stack_Size dup (?)
On program load
SS is set to a segment address containing this array (usually The_Stack starts at offset 0) SP is set to the offset of The_Stack+Stack_Size which is one byte past the end of the stack array
This is the condition for an empty stack
SS:0340
SP:000C
SS:0340
SP:0008
PUSH
PUSH ngun
Push ngun vo stack
PUSHF
Push thanh ghi c vo stack
V d PUSH
Stack Size: 000C
3C 09 A4 40 2C FF A2 43 07 06 4C 2A 09 46
SS:0340
SP:0008
PUSH AX
AX: 0123
3C 09 A4 40 2C FF A2 23 01 06 4C 2A 09 46
SS:0340
SP:0006
POP
POP ch
Pop d liu t nh stack vo ch
POPF
Pop d liu t nh stack vo thanh ghi c
V d POP
3C 09 A4 40 2C FF A2 23 01 06 4C 2A 09 46
SS:0340
SP:0006
POP ES
3C 09 A4 40 2C FF A2 23 01 06 4C 2A 09 46
SS:0340
ES: 0123
SP:0008
Trn stack!
Stack Size: 000C
SS:0340
SP:FFFE
SS:0340
SP:000D
Th tc
Tn_Th_tc PROC kiu ;thn ca th tc RET ;quay v chung trnh gi Tn_Th_tc ENDP
Tr v t mt th tc (NEAR) RET
pop gi tr nh stack vo IP
Th tc Far
Gi th tc (FAR) CALL Tn_th_tc
ln lt push CS v IP vo stack copy a ch ca Tn_th_tc vo CS v IP
Tr v t th tc (FAR) RET
pop gi tr t nh stack ln lt vo IP v CS
Gi ngt
Gi ngt l mt li gi th tc c bit
FAR Thanh ghi c phi c bo ton
INT S ngt
Thanh ghi c c push, TF v IF b xo CS v rI IP c push a ch ca mt chng trnh con phc v ngt (Vector ngt) tng ng vi S ngt c copy vo CS v IP
Tr v t ngt
IRET Tc dng ca lnh:
Gi tr nh ca stack c pop vo IP Gi tr nh ca stack c pop vo CS Gi tr nh ca stack c pop vo thanh ghi c
Xut k t ra mn hnh PC
Ngt 21h
Ngt ny h tr rt nhiu dch v trn PC Nhn dng dch v bng s dch v (s hm). S dch v cn c np vo thanh ghi AH Tu theo tng dch v, c th cn thm mt s i s khc c np vo cc thanh ghi xc nh
AH = 2, DL = M ASCII ca k t cn xut
K t c hin th ti v tr hin thI ca con tr
Xut xu k t ra mn hnh PC
Dch v 09h ca ngt 21h
DX = a ch Offset ca xu (trong on d liu) DS = a ch segment ca xu Xu k t phi kt thc bng k t '$'
Nhp 1 k t t bn phm PC
Dch v 01h ca ngt 21h Khi NSD g mt k t t bn phm:
K t s hin trn mn hnh AL s cha m ASCII ca k t
AL=0 nu k t c nhp l k t iu khin
Cc c im
Ngun: (DS:SI), ch: (ES:DI)
DS, ES cha a ch Segment ca string SI, DI cha a ch Offset ca string
V d: Tnh tin cc nh
mov mov mov std rep
a
DI
V d
pattern
mov mov mov cld rep
SI
db "!@#*" db 96 dup (?) cx,96 si, offset pattern di, offset pattern+4
movsb
DI
! @ # * a
Lu tr string
STOSB, STOSW Copy AL hoc AX vo mt mng byte hoc word
ch (ES:DI)
V d:
arr dw 200 dup (?)
mov ax,50A0h mov di,offset arr mov cx,200 cld AX 50 A0 rep stosw
DI
A0 50 A0 50 arr
Np String
LODSB, LODSW
Byte hoc word ti (DS:SI) c copy vo AL hoc AX SI tng hoc gim 1 hoc 2 gi tr ph thuc DF
V d:
mov di, offset b mov si, offset a mov cx,30 cld lp: lodsb and al,0DFh stosb loop lp
Qut String
SCASB, SCASW So snh AL hoc AX vi byte hoc word tI (ES:DI) v t ng tng hoc gim DI Lnh ny nh hng n cc c trng thi
Tu theo kt qu so snh Dng trong mt vng lp REPs
REPZ, REPE, REPNZ, REPNE
V d
arr db 'abcdefghijklmnopqrstuvwxyz' mov di, offset arr mov cx,26 cld mov al,target repne scasb jne nomatch
So snh String
CMPSB, CMPSW So snh byte hoc word ti (DS:SI) vi byte hoc word tI (ES:DI), tc ng n cc c v tng hoc gim SI v DI Thng dng so snh hai mng vi nhau
V d
mov si, offset str1 mov di, offset str2 cld mov cx, 12 repe cmpsb jl str1smaller jg str2smaller ;the strings are equal - so far ;if sizes different, shorter string is less
Nhm lnh hn hp
- Cc lnh Lp/Xo trc tip cc c:
STC, CLC STD, CLD STI, CLI - Lnh NOP (No Operation): Khng lm g!!! - Lnh NOP thng c dng trong cc vng lp to tr (delay)bng phn mm - Cc lnh Nhp/Xut d liu i vi cc cng I/O IN OUT
Lnh IN
- Nu a ch ca cng Nh hn hoc bng FFh: IN Acc, a ch cng - Trong : Acc c th l AL hoc AX - Nhp d liu t cng vo Acc - Nu a ch ca cng Ln hn FFh: MOV DX, a ch cng IN Acc, DX - Trong : Acc c th l AL hoc AX - Nhp d liu t cng vo Acc
Lnh OUT
- Nu a ch ca cng Nh hn hoc bng FFh: OUT a ch cng, Acc - Trong : Acc c th l AL hoc AX - Xut d liu t Acc ra cng - Nu a ch ca cng Ln hn FFh: MOV DX, a ch cng OUT DX, Acc - Trong : Acc c th l AL hoc AX - Xut d liu t Acc ra cng
Tm tt chng
- Tnh tng thch v Cu trc thanh ghi ca cc vi x l h x86 - Tnh tng thch v Tp lnh ca cc vi x l h x86
K thut Vi x l
in t-Vin thng i hc Bch khoa Nng
Chng 4
4.1 4.2 4.3 4.4 4.5 Phn loi b nh bn dn Hot ng ca cc chip EPROM Hot ng ca cc chip SRAM Bus h thng ca h vi x l 8088 Bi ton thit k b nh
Mc
Ghp ni cc chip nh EPROM v SRAM vi Bus h thng sao cho khng xy ra xung t: Cc chip nh b cm khi vi x l truy cp cc cng I/O Ch c mt chip nh hot ng khi vi x l truy cp b nh Thc hin mt mch gii m a ch b nh dng cc chip gii m hoc cc cng logic hoc kt hp c hai
RAM
PROM
EPROM
SRAM
DRAM
m chn d liu
p chn a ch
EPROM
iu khin c
Chn chip Cc chn iu khin
OE PGM CE Vpp
Mt chip nh c xem nh mt mng gm n nh. Mi nh lu tr c m-bit d liu Dung lng ca chip thng c biu din: nxm V d: Mt chip c dung lng 2Kx8 ngha l chip c 2048 nh v mi nh c th lu tr c 1 byte d liu m chnh l s chn d liu ca chip log2(n) = p l s chn a ch ca chip
Vic ghi d liu vo EPROM c gi l lp trnh cho EPROM c thc hin bng thit b chuyn dng gi l B np EPROM Chn Vpp c cp in p tng ng vi tng loi chip gi l in p lp trnh D liu ti cc chn d liu s c ghi vo mt nh xc nh nh cc tn hiu a vo cc chn a ch v mt xung (thng gi l xung lp trnh) a vo chn PGM
p cc tn hiu a ch ca nh cn c vo cc
chn a ch Ap-1 A0 c: 0 ------ > OE Kt qu l m bit d liu cn c xut hin cc chn d liu Dm-1 D0
27512
Bng 4.1 H EPROM 27x
64Kx8
2716
2732
23
22 21 20 19 Vpp __
OE
3 4 5 6
A11
__
OE / Vpp
7
8 9 10 11 12
A1
A0 D0 D1 D2
CE/PGM 18
D7 D6 D5 D4
17 16 15 14 13
GND
D3
EPROM 2764
Cc chn a ch
iu khin c
EPROM 2764
Trc ht cn phi xo
Xo mt chip tc l lm cho tt c cc bit = 1
P chn a ch
m chn d liu
SRAM
OE CS
WE
SRAM 6264
Dung lng 8Kx8 8 chn d liu 13 chn a ch Hai chn chn chip Chn iu khin c Chn iu khin ghi
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 OE WE CS1 CS2 I/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7
6264
28 27 26 25 24 23 22
8
9
21
__ 20
10
11 12 13 14
D7
19
18 17 16 15
D0
D1 D2 GND 51256S
D6
D5 D4 D3
S khi 6264
Bus a ch 20-bit: gm cc ng a ch c k hiu t A19 n A0 Bus d liu 8-bit: gm cc ng d liu c k hiu t D7 n D0 Bus iu khin gm cc ng iu khin ring l phc v cho hot ng truy cp b nh v cc cng I/O, mi ng thng c k hiu bng tn ca tn hiu iu khin Bus h thng khng ni trc tip vi cc chn ca 8088: thng qua cc mch m, cht.
80x86 Microprocessors
Product Year Introduced Technology Clock Rate Number of Pins Number of transistors Number of instructions Physical Memory Virtual Memory 8008 1972 PMOS 0.50.8 18 3000 66 16K none 808 0 1974 NMO S 2-3 40 4500 111 64K none 808 5 1976 NMO S 3-8 40 6500 113 64K none 808 6 1978 NMO S 5-10 40 29K 133 1M none 808 8 1979 NMO S 5-8 40 29K 133 1M none 16M 1G 16M4GB 64T 4GB 64T 4GB 64T 64G 64T 130K 8028 6 1982 NMOS 1016? 80386 1985 CMOS 16-40 132 275K 80486 1989 CMOS 66 168 1.2M Pent. 1992 BICMO S 6066+ 273 3M Pent. Pro 1995 BICMO S 150 387 5.5M
8
8 8 8
8
8 16 8
8
8 16 8
16
16 20 8,16
16
8 20 8,16
16
16 24 8,16
32
16,32 24,32 8,16,32
32
32 32 8,16,3 2
64
64 32 8,16,3 2
32
64 36 8,16,3 2
8088/8086 Microprocessor
8088/8086 Microprocessor
Bus a ch
ALE = 1 S dng 74LS373 tch v cht a ch
u vo: AD0-AD7 (8088) hoc AD0-AD15 (8086) v ALE u ra: A0-A7 (8088) hoc A0-A15 (8086)
S chn ca 8088
Minimum/Maximum Mode
Maximum Mode
Mt s tn hiu iu khin c to ra t ngoi Mt s chn c thm chc nng mi Khi c dng b ng x l ton 8087
S chn ca 8088
MN / MX READY CLK RESET TEST HLDA A8 HOLD NM I A9 A10 A11 A12 A13 A14 A15 A16 / S3 A17 / S4 A18 / S5 A19 / S6 SSO DEN DT / R IO / M RD WR ALE INTR INTA AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7
8088
Cc chn a ch
8088
Cc chn AD7 n AD0 K thut Multiplexing: Tn hiu cc chn ny lc ny l tn hiu a ch, lc khc l tn hiu d liu ph thuc vo tn hiu iu khin ALE (Address Latch Enable): ALE = 1: AD7 n AD0 = A7 n A0 ALE = 0: AD7 n AD0 = D7 n D0
Cc chn a ch: A15 n A8 Tn hiu cc chn ny lun l tn hiu a ch Cc chn a ch/trng thi: A19/S6 n A16/S3: ALE = 1: A19 n A16 ALE = 0: S6 n S3
Processor Timing Diagram of 8088 (Minimum Mode) for Memory or I/O Read (with 74245)
T1 CLOCK
__
T2
T3
T4
DT/R ALE D7 - D0
from memory to 74LS245
D7 - D0 (from memory)
D7 - D0 from 74LS245
A7 - A0
garbage
A15 - A8
A19/S6 - A16/S3
A19 - A0
from 74LS373 to memory __
A19 - A16
S6 - S3
IO/M
____
RD
______
DEN
M t chn
BHE Bus High Enable Phn bit byte thp v byte cao ca mt t (ch vi 8086)
M t chn
M t chn
INTR Interrupt Request u vo ngt che c Ni vi chip iu khin ngt 8259 INTA: chp nhn ngt
M t chn
M t chn
M t chn
M t chn
M t chn
M t chn Max
M t chn Max
M t chn Max
LOCK Locks processor to system bus Gain the lock by using LOCK prefix on an assembly instruction Used with status signals to prevent DMA from gaining control of the buses
M t chn Max
RQ/GT0, RQ/GT1 Request/Grant Bi-directional Gain control of local bus RQ/GT0 normally permanently high (disabled) RQ/GT1 is connected to the 8087
M t chn Min
M t chn Min
ALE Address Latch Enable Tn hiu cc chn a ch/D liu v cc chn a ch/Trng thi lc ALE = 1 l cc tn hiu a ch
M t chn
AD0-AD7 Cc chn a ch/D liu Tn hiu cc chn ny l 8 bit a ch thp A0 n A7 khi ALE =1, l 8 bit d liu D0 n D7 khi ALE = 0
74LS373
D0 D1 D2 D3 D4 D5 D6 D7 OE LE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
74LS373
74LS373
M t chn Min
M t chn Min
DT/R iu khin hng ca tn hiu d liu: 1: Tn hiu d liu i ra t 8088 0: Tn hiu d liu i vo 8088
M t chn Min
M t chn Min
WR 0: Tn hiu trn bus d liu c ghi vo b nh hoc I/O Ghi b nh: ? Xut d liu ra cng: ?
M t chn Min
M t chn Min
HOLD Nhn tn hiu yu cu DMA t B iu khin DMA (DMAC) DMAC mun s dng bus h thng
M t chn Min
SSO 8088 Dng vi IO/M v DT/R xc nh trng thi ca chu k bus hin thi
Cc tn hiu iu khin
RD W R 0 1
1
0 1 0
0
1 0 0
0
1 1 X
MEMW
IOR IOW Never happens
74LS245
A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4
74LS245
B5 B6 B7
DIR
74LS245
Q7 - Q0
Bus d liu
Bus a ch
D7 - D0 OE LE
74LS373
Q7 - Q0
A15 - A8
D7 - D0 GND OE LE
8088
A19/S6 - A16/ S3
74LS373
Q7 - Q4 Q3 - Q0
MEMORY
D7 - D4 D3 - D0 GND OE LE
ALE RD IO / M WR
74LS373
RD
MEMR
WR
MEMW
A19 - A0
A19 - A0
MEMORY
MEMR
RD
MEMW
WR
220 nh (1MB)
D7 - D0
A19 - A0
A19 - A0
MEMORY
MEMR
RD
MEMW
WR
CS
Khng gian a ch b nh 1M
A19 n A0 (HEX) 00000 FFFFF AAAA 1111 9876 0000 1111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210
0000 1111
0000 1111
B nh y 1MB
AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX MEMR RD FFFFF FFFFE FFFFD A19 : A0 A19 : A0 : : 20023 20022 20021 20020 : : 10008 10007 10006 10005 10004 10003 10002 10001 10000 MEMW WR : : 00001 00000 36 25 19 : : 13 7D 12 29 : : 8A F4 07 88 42 39 27 98 45 : : 95 23
D7 : D0
D7 : D0
CS
AAAA 7654
AAAA 3210
0000 1111
0000 1111
512K tip theo ca khng gian a ch b nh (Cc a ch c bit cao nht A19 = 1)
AAAA 7654
AAAA 3210
0000 1111
0000 1111
B nh 512KB
AX BX CX DX CS SS DS ES BP SP SI DI IP
3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX CS
Lm g vi A19?
A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR 7FFFF 7FFFE 7FFFD : : 20023 20022 20021 20020 : : 00001 00000 36 25 19 : : 13 7D 12 29 : : 95 23
iu g xy ra nu 8088 c nh A0023h?
AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX A000 XXXX XXXX XXXX XXXX XXXX XXXX CS
A18 : A0 D7 : D0 RD WR
36 25 19 : : 13 7D 12 29 : : 95 23
iu g xy ra nu 8088 c nh A0023h?
AAAA 7654
AAAA 3210
0010
0011
A19 khng c ni n b nh nn nu 8088 pht logic 1 trn A19 th b nh cng khng nhn bit c.
iu g xy ra nu 8088 c nh 20023h?
AAAA 7654
AAAA 3210
0010
0011
C vn !!!
Vn l: Xung t Bus. Hai khi nh s cung cp d liu cng mt lc khi 8088 c b nh Gii php: Dng A19 lm ngi phn x gii quyt xung t trn bus. Nu A19 mc logic 1 th khi nh trn hot ng (khi nh di b cm) v ngc li
DI
IP
XXXX
XXXX
A18
: A0 D7
7FFFE
7FFFD : 20023 20022 20021 20020 : 00001 00000
98
2C : 33 45 92 A3 : D4 97
:
D0 RD WR CS
Khng gian a ch b nh 1M
A19 n A0 (HEX) 00000 7FFFF 80000 AAAA 1111 9876 0000 0111 1000 AAAA 1111 5432 0000 1111 0000 AAAA 1198 1000 0000 1111 0000 AAAA 7654 AAAA 3210
FFFFF
1111
1111
1111
1111
1111
WR CS
7FFFF A18 : A0 D7 : D0 RD WR CS 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000
12 98 2C : 33 45 92 A3 : D4 97
Thit k B nh cho H vi x l
AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A19 A18 : A0 D7 : D0 RD WR A18 : A0 D7 : D0 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 36 25 19 : 13 7D 12 29 : 95 23
Ghp ni cc chip nh: RD WR ring l vi Bus h 00001 CS 00000 thng sao cho khng xy ra xung t nh7FFFF A18 7FFFE mch gii m a ch : 7FFFD A0 : b nh
D7 : D0 RD WR CS 20023 20022 20021 20020 : 00001 00000
12 98 2C : 33 45 92 A3 : D4 97
Nu b i khi nh bn di?
AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 12 98 2C : 33 45 92 A3 : D4 97 A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 36 25 19 : 13 7D 12 29 : 95 23
Nu b i khi nh bn di th
AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 36 25 19 : 13 7D 12 29 : 95 23
Khi P xut ra mt da Khi P xut ra mt a ch t 00000h n ch t 80000h n 7FFFFh, Khng c FFFFFh, Chip nh chiphot ng ny nh no hot ng!
RD WR CS
Gii m y v khng y
Gii m y
AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS 7FFFF 7FFFE 7FFFD : 20023 20022 20021 20020 : 00001 00000 36 25 19 : 13 7D 12 29 : 95 23
Gii m y
A19 n A0 (HEX) 80000 FFFFF AAAA 1111 9876 1000 1111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210
0000 1111
0000 1111
Gii m y
A19 n A0 (HEX) 00000 7FFFF AAAA 1111 9876 0000 0111 AAAA 1111 5432 0000 1111 AAAA 1198 1000 0000 1111 AAAA 7654 AAAA 3210
0000 1111
0000 1111
Gii m khng y
AX BX CX DX CS SS DS ES BP SP SI DI IP 3F1C 0023 0000 FCA1 XXXX XXXX 2000 XXXX XXXX XXXX XXXX XXXX XXXX CS
A18 : A0 D7 : D0 RD WR
36 25 19 : : 13 7D 12 29 : : 95 23
Gii m khng y
A19 n A0 (HEX) 00000 7FFFF 80000 AAAA 1111 9876 0000 0111 1000 AAAA 1111 5432 0000 1111 0000 AAAA 1198 1000 0000 1111 0000 AAAA 7654 AAAA 3210
FFFFF
1111
1111
1111
1111
1111
Gii m khng y
A19 n A0 (HEX) 00000 7FFFF 80000 AAAA 1111 9876 0000 0111 1000 AAAA 1111 5432 0000 1111 0000 AAAA 1198 1000 0000 1111 0000 AAAA 7654 AAAA 3210
FFFFF
1111
1111
1111
1111
1111
a ch thc t
Gii m khng y
A19 n A0 (HEX) 00000 7FFFF 80000 AAAA 1111 9876 0000 0111 1000 AAAA 1111 5432 0000 1111 0000 AAAA 1198 1000 0000 1111 0000 AAAA 7654 AAAA 3210
FFFFF
1111
1111
1111
1111
1111
a ch thc t
B nh gm 2 chip 512Kx8
A19 A18 : A0 D7 : D0 MEMR MEMW A18 : A0 D7 : D0 RD WR CS
512KB #2
A18 : A0 D7 : D0 RD WR CS
512KB #1
512KB
512KB
512KB
A17
B nh gm 4 chip 256Kx8
A19 A18 A17
:
A0 D7
:
D0 RD WR CS A17
:
256KB #4
A0 D7
:
A0 D7
:
D0 MEMR MEMW
D0 RD WR CS A17
:
256KB #3
A0 D7
:
D0 RD WR CS A17
:
256KB #2
A0 D7
:
D0 RD WR CS
256KB #1
A17
B nh gm 4 chip 256Kx8
A19 A18 A17
:
A0 D7
:
D0 RD WR CS A17
:
256KB #4
A0 D7
:
A0 D7
:
D0 MEMR MEMW
D0 RD WR CS A17
:
256KB #3
A0 D7
:
D0 RD WR CS A17
:
256KB #2
A0 D7
:
D0 RD WR CS
256KB #1
Di a ch ca chip #1
A19 AAAA n 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210
----
----
----
----
----- ----
----
----
----
----
Di a ch ca chip #2
A19 AAAA n 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210
----
----
----
----
----- ----
----
----
----
----
Di a ch ca chip #3
A19 AAAA n 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210
----
----
----
----
----- ----
----
----
----
----
Di a ch ca chip #4
A19 AAAA n 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210
----
----
----
----
----- ----
----
----
----
----
A17
:
A0 D7
:
D0 RD WR CS A17
:
256KB #4
A0 D7
:
A0 D7
:
D0 MEMR MEMW
D0 RD WR CS A17
:
256KB #3
A0 D7
:
D0 RD WR CS A17
:
256KB #2
A0 D7
:
D0 RD WR CS
256KB #1
A17
:
A0 D7
:
D0 RD WR CS A17
:
256KB #4
A0 D7
:
A0 D7
:
D0 MEMR MEMW
D0 RD WR CS A17
:
256KB #3
A0 D7
:
D0 RD WR CS A17
:
256KB #2
A0 D7
:
D0 RD WR CS
256KB #1
A17
:
A0 D7
:
D0 RD WR I1 I0 O3 CS A17
:
256KB #4
A0 D7
:
A0 D7
:
D0 MEMR MEMW
D0 RD WR O2 CS A17
:
256KB #3
A0 D7
:
D0 RD WR O1 CS A17
:
256KB #2
A0 D7
:
D0 RD WR O0 CS
256KB #1
A12
A0 D7
:
D0 RD WR CS
8KB #?
A0 D7
:
D0 MEMR MEMW
: :
A12
:
A0 D7
:
D0 RD WR CS A12
:
8KB #2
A0 D7
:
D0 RD WR CS
8KB #1
A12
:
A0 D7
:
D0 RD WR CS
8KB #128
A0 D7
:
D0 MEMR MEMW
: :
A12
:
A0 D7
:
D0 RD WR CS A12
:
8KB #2
A0 D7
:
D0 RD WR CS
8KB #1
A12
:
A0 D7
:
D0 RD WR CS
8KB #128
A0 D7
:
D0 MEMR MEMW
: :
A12
:
A0 D7
:
D0 RD WR CS A12
:
8KB #2
A0 D7
:
D0 RD WR CS
8KB #1
Di a ch ca Chip #__
A19 AAAA n 1111 A0 9876 (HEX) ----- ---AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210
----
----
----
----
----- ----
----
----
----
----
A12
:
A0 D7
:
D0 RD WR CS
8KB #128
A0 D7
:
D0 MEMR MEMW
: :
A12
:
A0 D7
:
D0 RD WR CS A12
:
8KB #2
A0 D7
:
D0 RD WR CS
8KB #1
Thit k b nh cho h vi x l 8088 tho mn cc yu cu: ROM c dung lng 2Kx8 chim dng cc a ch t FFFFFh tr xung RWM c dung lng 2Kx8 chim dng cc a ch tip theo ngay sau ROM Ch c php s dng: EPROM 2716 2Kx8, SRAM 4016 2Kx8 Chip gii m 74LS138 v cc cng logic
Bc 1: V bn b nh cn thit k
FFFFFh
ROM
2K
RWM
2K
FF000h
Bc 2: Chuyn cc a ch bin t H sang B A19 n A0 (HEX) FF800 FFFFF AAAA 1111 9876 AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210
1111
1111
1111
1111
1000
1111
0000
1111
0000
1111
Bc 2: Chuyn cc a ch bin t H sang B A19 n A0 (HEX) FF000 AAAA 1111 9876 AAAA 1111 5432 AAAA 1198 1000 AAAA 7654 AAAA 3210
1111 1111
1111 1111
0000 0111
0000 1111
0000 1111
FF7FF
Nhn xt
Khi cc a ch dnh cho ROM c pht ln A-Bus: A19 A12 = 1 v A11 = 1 Khi cc a ch dnh cho RWM c pht ln A-Bus: A19 A12 = 1 v A11 = 0
Bc 3: V mch gii m a ch b nh
Ghp cc chn d liu ca cc chip nh vi D-Bus Ghp cc chn a ch v cc chn iu khin: Khi vi x l truy cp cc cng I/O th cc chip nh b cm (Khi IO/M = 1) Khi vi x l truy cp b nh (IO/M = 0) th ch c mt chip nh lm vic C th c nhiu li gii khc nhau
C B A
Y0 Y1 Y2 Y3 Y4 Y5
U1 74LS138 74LS138
A2 A1 A0 E3 E2 E1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
74LS138
G1 G2A G2B
Y6 Y7
B nh cn thit k
A11
:
A0 D7
:
D0 MEMR MEMW
C B A
74LS138
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A0 D7
:
2Kx8 4016
D0 OE WE CS
A11
:
A0 D7
:
2Kx8 2716
D0 OE CE
Bi ging K thut Vi x l
Ngnh in t-Vin thng i hc Bch khoa Nng ca H Vit Vit, Khoa TVT
Ti liu tham kho [1] K thut vi x l, Vn Th Minh, NXB Gio dc, 1997 [2] K thut vi x l v Lp trnh Assembly cho h vi x l, Xun Tin, NXB Khoa hc & k thut, 2001
74LS373 74LS374 74LS244 74LS245 Khi s lng cng t v c nh Cch mc mch s quyt nh cho chip l cng ra hay cng vo v a ch ca n
A18 : A0
D7 D6 D5 A0 A1 A2 B0 B1 B2
D4 D3 D2 D1 D0
A3 B3 A4 B4 74LS245 B5 A5 A6 B6 A7 B7
E DIR 5V
IOR IOW
: A0
D7 D6 D5 D4 D0 D1 D2 D3 D4 D5 D6 D7 LE IOR IOW Q0 Q1 Q2 Q3 Q4 Q6 Q7 OE
D3 D2 D1 D0
74LS373 Q5
: A0
D7 D6 D5 D4 A0 A1 A2 A3 A4 A5 A6 A7 E IOR IOW B0 B1 B2 B3 B4 B6 B7 DIR
D3 D2 D1 D0
74LS245 B5
Cng ra
Cng vo
8255 PPI
Cc mode lm vic
Mode 0 - PA, PB, PCH (CU) v PCL (CL) - C th l Input hoc Output - Vic Nhp hoc Xut d liu l c lp Mode 1 - PA, PB - C th l Input hoc Output - Vic Nhp hoc Xut d liu l ph thuc vo mt s bt ca PC (cc tn hiu handshaking) Mode 2 - PA - PA va l Input va l Output - Vic Nhp/Xut d liu vi PA l ph thuc vo mt s bt ca PC (cc tn hiu handshaking)
Nhm lm vic
Nhm A: PA v PCH Nhm B: PB v PCL nh cu hnh lm vic cho 1 chip 8255: Gi 1 T iu khin nh cu hnh n thanh ghi iu khin ca chip Lp/xo mt bit ca PC: Gi 1 T iu khin Lp/Xo bit n thanh ghi iu khin ca chip
The 8255 Programmable Peripheral Interface Intel has developed several peripheral controller chips designed to support the 80x86
processor family. The intent is to provide a complete I/O interface in one chip. 8255 PPI provides three 8 bit input ports in one 40 pin package making it more economical than 74LS373 and 74LS244 The chip interfaces directly to the data bus of the processor, allowing its functions to be programmed; that is in one application a port may appear as an output, but in another, by reprogramming it as an input. This is in contrast with the 74LS373 and 74LS244 which are hard wired and fixed. 8255 Pins PA0 - PA7: input, output, or bidirectional port PB0 - PB7: input or output PC0 - PC7: This 8 bit port can be all input or output. It can also be split into two parts, CU (PC4 - PC7) and CL (PC0 - PC3). Each can be used for input and output. RD or WR IOR and IOW of the system are connected to these two pins RESET A0, A1, and CS CS selects the entire chip whereas A0 and A1 select the specific port (A, B, or C) or Control Register.
Mode 0 - Simple input/output Simple I/O mode: any of the ports A, B, CL, and CU can be programmed as input or output. Example: Configure port A as input, B as output, and all the bits of port C as output assuming a base address of 50h Control word should be 1001 0000b = 90h
MOV AL, 90h OUT 53h,AL IN AL, 50h OUT 51h, AL OUT 52h, AL
Mode 1: I/O with Handshaking Capability Handshaking refers to the process of communicating back and forth between two intelligent devices Example. Process of communicating with a printer a byte of data is presented to the data bus of the printer the printer is informed of the presence of a byte of data to be printed by activating its strobe signal whenever the printer receives the data it informs the sender by activating an output signal called ACK the ACK signal initiates the process of providing another byte of data to the printer 8255 in mode 1 is equipped with resources to handle handshaking signals
Mode 1 Strobed Output Signals OBFa (output buffer full for port A) indicates that the CPU has written a byte of data into port A must be connected to the STROBE of the receiving equipment ACKa (acknowledge for port A) through ACK, 8255 knows that data at port A has been picked up by the receiving device 8255 then makes OBFa high to indicate that the data is old now. OBFa will not go low until the CPU writes a new byte of data to port A. INTRa (interrupt request for port A) it is the rising edge of ACK that activates INTRa by making it high. INTRa is used to get the attention of the microprocessor. it is important that INTRa is high only if INTEa, OBFa, ACKa are all high it is reset to zero when the CPU writes a byte to port A
Mode 1 Input Ports with Handshaking Signals STB When an external peripheral device provides a byte of data to an input port, it informs the 8255 through the STB pin. STB is of limited duration. IBF (Input Buffer Full) In response to STB, the 8255 latches into its internal register the data present at PA0-PA7 or PB0-PB7. Through IBF it indicates that it has latched the data but it has not been read by the CPU yet. To get the attention of the CPU, it IBF activates INTR INTR Falling edge of RD makes INTR low The RD signal from the CPU is of limited duration and when it goes high the 8255 in turn makes IBF inactive by setting it low. IBF in this way lets the peripheral know that the byte of data was latched by the 8255 and read into the CPU as well.
Li gii
Li gii
Bi ging K thut Vi x l
Ngnh in t-Vin thng i hc Bch khoa Nng ca H Vit Vit, Khoa TVT
Ti liu tham kho [1] K thut vi x l, Vn Th Minh, NXB Gio dc, 1997 [2] K thut vi x l v Lp trnh Assembly cho h vi x l, Xun Tin, NXB Khoa hc & k thut, 2001
Thm d
A19 A18 : A0 D7 D6 D5 D4 D3 A0 A1 A2 A3 A4 A5 A6 A7 E IOR IOW B0 B1 B2 B3 B4 B6 B7 DIR 5V
D2 D1 D0
74LS245 B5
A19 A18 :
5V
The Circuit
A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 74LS245 B5 A5 A6 A7 E B6 B7 DIR D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D574LS373 Q5 D6 Q6 D7 Q7 A A A A A A A A A A A A A A A A IOR 1111119876543210 543210 LE OE
A0
D7 D6 D5 D4 D3
D2 D1 D0
IOR IOW
Bi ton
Chng trnh to ra hiu ng LED chy: - Ban u LED chy t trn xung - Khi nhn phm thp nht th LED thay i hng chy - Khi nhn phm cao nht th chng trnh kt thc
Chng trnh
mov mov mov out mov dec jnz cmp jne rol cmp jne jmp ror cmp jne dx, ah, al, dx, cx, cx L2 ah, L3 al, al, L1 L4 al, al, L1 F000 00 01 al FFFF L4: mov bl, in al, cmp al, je L6 test al, jnz L5 xor ah, jmp L6 test al, jz L7 mov al, jmp L1 al dx FF 01 FF 80 bl
L1:
L2:
L3:
Khuyt im ca thm d
Tn nhiu thi gian NgI s dng c th nh phm trc khi lnh in al, dx c thc hin, do b vi xi x l s khng bit rng ngI s dng nhn phm Lm sao khc phc cc khuyt im ?
Khuyt im ca thm d
L1: L2: mov mov mov out mov dec jnz cmp jne rol cmp jne jmp ror cmp jne dx, ah, al, dx, cx, cx L2 ah, L3 al, al, L1 L4 al, al, L1 F000 00 01 al FFFF L4: mov bl, in al, cmp al, je L6 test al, jnz L5 xor ah, jmp L6 test al, jz L7 mov al, jmp L1 al dx FF 01 FF 80 bl
00
1 01 L5: L6: 1 80 L7:
L3:
Ngt l g?
Thm d
instruction
While studying, Ill check the bucket every 5 minutes to see if it is already full so that I can transfer the content of the bucket to the drum.
P THM D
Ngt
instruction
Ill just study. When the speaker starts playing music it means that the bucket is full. I can then transfer the content of the bucket to the drum.
Interrupt- Ngt
B vi x l khng cn phi kim tra tnh sn sng ca thit b I/O. Cc thit b I/O s bo cho vi x l bit khi chng sn sng B vi x l c th lm cng vic khc khi thit b I/O khng c nhu cu trao I d liu
Interrupt- Ngt
Mt s thut ng cn nh:
Yu cu ngt u vo ngt u ra chp nhn ngt Chng trnh con phc v ngt Vector ngt S ngt Bng cc vector ngt
Interrupt Service Routine (ISR) - Chng trnh con phc v ngt Interrupt vector - Vector ngt
L chng trnh c thc hin khi c mt yu cu ngt c chp nhn Kt thc bng lnh IRET a ch ca chng trnh con phc v ngt Bao gm 4 byte:
2 byte cho a ch Offset 2 byte cho a ch Segment
2. 3. 4. 5.
8.
D2 D1 D0
74LS373 Q5
D2 D1 D0
74LS245 B5
: A0
D7 D6 D5 D4 A7 A6 A5 A4 A3 A2 A1 A0 E IOR IOW INTR INTA INTR A A A A A A A A A A A A A A A A IOR 1111119876543210 543210 B7 B6 B5 B4 B3 B1 B0
D3 D2 D1 D0
74LS245 B2
DIR
A19 A18 :
5V
A0
D7 D6 D5 D4 D3 D2 A7 A6 A5 A4 A3 A1 A0 E IOR IOW INTR INTA 5V B0 B1 B2 B3 B4 B6 B7
74LS245 B5 A2
D1 D0
DIR
5V
set
INTR
clr 5V
A3 B3 74LS245 B2 A2 A1 B1 A0 E B0
DIR
5V 5V D set Q INTR
clr
INTA
A19 A18 : A0 D7 D6 D5 D4 D3 D2 D1 D0 A7 A6 A5 A4 B7 B6 B5 B4
5V
A3 B3 74LS245 B2 A2 A1 B1 A0 E B0
DIR
5V 5V D set Q INTR
clr
INTA
5V
INT 3
5V D7 D6 D5 D4 D3 D2 D1 D0 INTA DIR A7 A6 A5 A4 A3 A2 A1 A0 E B7 B6 B5 B4 B3 B1 B0
74LS245 B2
DIR
5V 5V D set Q INTR
clr
Q INTA RESET
A19 A18 :
5V
A0
D7 D6 D5 D4 D3
The Circuit
A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 74LS245 B5 A5 A6 A7 E B6 B7 DIR
D2 D1 D0
IOR IOW
D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D574LS373 Q5 D6 Q6 D7 Q7
A A A A A A A A A A A A A A A A IOR 1111119876543210 543210 LE OE
L2:
00 1
L3:
L4:
S1:
S2:
8259
ICW
ICW1, ICW2
ICW3, ICW4
OCW1 v OCW2
OCW3
8259 n
Interrupt Sources in PC
Sources of NMI
8259s ni tng
8259s ni tng
Interrupts (Summary)