This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
1. Gi i thi u chung v h vi x lýớ ệ ề ệ ử2. B vi x lý Intel 8088/8086ộ ử3. L p trình h p ng cho 8086ậ ợ ữ4. T ch c vào ra d li uổ ứ ữ ệ5. Ng t và x lý ng tắ ử ắ6. Truy c p b nh tr c ti p DMAậ ộ ớ ự ế7. Các b vi x lý trên th c tộ ử ự ế
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ S đ kh iơ ồ ố Các thanh ghi đa năng Các thanh ghi đo nạ Các thanh ghi con tr và ch sỏ ỉ ố Thanh ghi cờ Hàng đ i l nhợ ệ
• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ S đ kh iơ ồ ố Các thanh ghi đa năng Các thanh ghi đo nạ Các thanh ghi con tr và ch sỏ ỉ ố Thanh ghi cờ Hàng đ i l nhợ ệ
• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ S đ kh iơ ồ ố Các thanh ghi đa năng Các thanh ghi đo nạ Các thanh ghi con tr và ch sỏ ỉ ố Thanh ghi cờ Hàng đ i l nhợ ệ
• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Các thanh ghi đa năng c a 8088/8086ủCác thanh ghi đa năng c a 8088/8086ủ
• Thanh ghi ch a AX (accumulator): ch a k t qu c a các phép tính. ứ ứ ế ả ủK t qu 8 bit đ c ch a trong ALế ả ượ ứ
• Thanh ghi c s BX (base): ch a đ a ch c s , ví d c a b ng dùng ơ ở ứ ị ỉ ơ ở ụ ủ ảtrong l nh XLAT (Translate)ệ
• Thanh ghi đ m CX (count): dùng đ ch a s l n l p trong các l nh l p ế ể ứ ố ầ ặ ệ ặ(Loop). CL đ c dùng đ ch a s l n d ch ho c quay trong các l nh ượ ể ứ ố ầ ị ặ ệd ch và quay thanh ghiị
• Thanh ghi d li u DX (data): cùng AX ch a d li u trong các phép tính ữ ệ ứ ữ ệnhân chia s 16 bit. DX còn đ c dùng đ ch a đ a ch c ng trong các ố ượ ể ứ ị ỉ ổl nh vào ra d li u tr c ti p (IN/OUT)ệ ữ ệ ự ế
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ S đ kh iơ ồ ố Các thanh ghi đa năng Các thanh ghi đo nạ Các thanh ghi con tr và ch sỏ ỉ ố Thanh ghi cờ Hàng đ i l nhợ ệ
• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ S đ kh iơ ồ ố Các thanh ghi đa năng Các thanh ghi đo nạ Các thanh ghi con tr và ch sỏ ỉ ố Thanh ghi cờ Hàng đ i l nhợ ệ
• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ S đ kh iơ ồ ố Các thanh ghi đa năng Các thanh ghi đo nạ Các thanh ghi con tr và ch sỏ ỉ ố Thanh ghi cờ Hàng đ i l nhợ ệ
• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Thanh ghi c (Flag Register)ờThanh ghi c (Flag Register)ờ
• 9 bit đ c s d ng, 6 c tr ng thái:ượ ử ụ ờ ạ C hoăc CF (carry flag)): CF=1 khi có nh ho c m n t MSBớ ặ ượ ừ P ho c PF (parity flag): PF=1 (0) khi t ng s bít 1 trong k t ặ ổ ố ế
qu là ch n (l )ả ẵ ẻ A ho c AF (auxilary carry flag): c nh ph , AF=1 khi có nh ặ ờ ớ ụ ớ
ho c m n t m t s BCD th p sang BCD caoặ ượ ừ ộ ố ấ Z ho c ZF (zero flag): ZF=1 khi k t qu b ng 0ặ ế ả ằ S ho c SF (Sign flag): SF=1 khi k t qu âmặ ế ả O ho c OF (Overflow flag): c tràn OF=1 khi k t qu là m t ặ ờ ế ả ộ
s v t ra ngoài gi i h n bi u di n c a nó trong khi th c ố ượ ớ ạ ể ễ ủ ựhi n phép toán c ng tr s có d uệ ộ ừ ố ấ
Thanh ghi c (Flag Register)ờThanh ghi c (Flag Register)ờ
• Ví d : ụ
SF=0 vì msb trong k t qu =0ế ả PF=1 vì có 0 bít c a t ng b ng 1ủ ổ ằ ZF=1 vì k t q a thu đ c là 0ế ủ ượ CF=1 vì có nh t bít msb trong phép c ngớ ừ ộ OF=1 vì có tràn trong phép c ng 2 s âmộ ố
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ S đ kh iơ ồ ố Các thanh ghi đa năng Các thanh ghi đo nạ Các thanh ghi con tr và ch sỏ ỉ ố Thanh ghi cờ Hàng đ i l nhợ ệ
• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
• Khi b t ngu n ho c nh n Resetậ ồ ặ ấ CS=FFFFh và IP=0000 => đ a ch FFFF0 ch a ch th chuy n ị ỉ ứ ỉ ị ể
đi u khi n đ n đi m kh i đ u c a các ch ng trình BIOSề ể ế ể ớ ầ ủ ươ Các ch ng trình BIOS ki m tra h th ng và b nhươ ể ệ ố ộ ớ Các ch ng trình BIOS kh i t o b ng vector ng t và vùng ươ ở ạ ả ắ
d li u BIOSữ ệ BIOS n p ch ng trình kh i đ ng (boot program) t đĩa vào ạ ươ ở ộ ừ
b nhộ ớ Ch ng trình kh i đ ng n p h đi u hành t đĩa vào b nhươ ở ộ ạ ệ ề ừ ộ ớ H đi u hành n p các ch ng trình ng d ngệ ề ạ ươ ứ ụ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ
Ch đ đ a ch thanh ghiế ộ ị ỉ Ch đ đ a ch t c thìế ộ ị ỉ ứ Ch đ đ a ch tr c ti pế ộ ị ỉ ự ế Ch đ đ a ch gián ti p qua thanh ghiế ộ ị ỉ ế Ch đ đ a ch t ng đ i c sế ộ ị ỉ ươ ố ơ ở Ch đ đ a ch t ng đ i ch sế ộ ị ỉ ươ ố ỉ ố Ch đ đ a ch t ng đ i ch s c sế ộ ị ỉ ươ ố ỉ ố ơ ở
• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Ch đ đ a ch t c thìế ộ ị ỉ ứCh đ đ a ch t c thìế ộ ị ỉ ứ(Immediate Addressing Mode)(Immediate Addressing Mode)
• Toán h ng đích là thanh ghi ho c ô nhạ ặ ớ• Toán h ng ngu n là ạ ồ h ng sằ ố• Dùng đ n p h ng s vào thanh thi (tr thanh ghi ể ạ ằ ố ừ
đo n và thanh c ) ho c vào ô nh trong đo n d li u ạ ờ ặ ớ ạ ữ ệDS
• Ví d :ụ MOV BL, 44 ; Copy s th p phân 44 vào thanh ghi BLố ậ MOV AX, 44H ; Copy 0044H vào thanh ghi AX MOV AL, ‘A’ ; Copy mã ASCII c a A vào thanh ghi ALủ MOV DS, 0FF0H ; không h p l ợ ệ MOV AX, 0FF0H ; MOV DS, AX ;
MOV [BX], 10 ; copy s th p phân 10 vào ô nh DS:BXố ậ ớ
Ch đ đ a ch gián ti p qua thanh ghi ế ộ ị ỉ ếCh đ đ a ch gián ti p qua thanh ghi ế ộ ị ỉ ế(Register indirect Addressing Mode)(Register indirect Addressing Mode)
• M t toán h ng là thanh ghi ch a đ a ch c a 1 ô nh ộ ạ ứ ị ỉ ủ ớd li uữ ệ
• Toán h ng kia ch có th là thanh ghiạ ỉ ể
• Ví d :ụ MOV AL, [BX] ; Copy nội dung ô nhớ có địa chỉ DS:BX vào AL MOV [ SI ], CL ; Copy nội dung của CL vào ô nhớ có địa chỉ DS:SI MOV [ DI ], AX ; copy nội dung của AX vào 2 ô nhớ liên tiếp DS: DI và
Ch đ đ a ch t ng đ i ch s ế ộ ị ỉ ươ ố ỉ ốCh đ đ a ch t ng đ i ch s ế ộ ị ỉ ươ ố ỉ ố(Indexed relative Addressing Mode)(Indexed relative Addressing Mode)
• M t toán h ng là thanh ghi ch s SI, DI và các h ng ộ ạ ỉ ố ằs bi u di n giá tr d ch chuy nố ể ễ ị ị ể
• Toán h ng kia ch có th là thanh ghiạ ỉ ể
• Ví d :ụ MOV AX, [SI]+10 ; Copy nội dung 2 ô nhớ liên tiếp có địa chỉ DS:SI+10
và DS:SI+11 vào AX MOV AX, [SI+10] ; Cách viết khác của lệnh trên MOV AL, [DI]+5 ; copy nội dung của ô nhớ DS:DI+5 vào thanh ghi AL
Ch đ đ a ch t ng đ i ch s c sế ộ ị ỉ ươ ố ỉ ố ơ ởCh đ đ a ch t ng đ i ch s c sế ộ ị ỉ ươ ố ỉ ố ơ ở( ( Based Indexed relative Addressing ModeBased Indexed relative Addressing Mode))
• Ví d :ụ MOV AX, [BX] [SI]+8 ; Copy nội dung 2 ô nhớ liên tiếp có địa chỉ
DS:BX+SI+8 và DS:BX+SI+9 vào AX MOV AX, [BX+SI+8] ; Cách viết khác của lệnh trên MOV CL, [BP+DI+5] ; copy nội dung của ô nhớ SS:BP+DI+5 vào thanh
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Cách mã hoá l nh c a 8086ệ ủCách mã hoá l nh c a 8086ệ ủ
• Ví d : chuy n l nh MOV CL, [BX] sang mã máyụ ể ệ opcode MOV: 100010 D li u là 1 byte: W=0ữ ệ Chuy n t i thanh ghi: D=1ể ớ Không có d ch chuy n: MOD=00ị ể [BX] nên R/M=111 CL nên REG=001
1 01 0 0 0 1 0 0 0 0 0 1 1 1 1
MOV D WMOD CL [BX]
Ví d 2: chuy n l nh MOV [SI+F3H], CL sang mã máyụ ể ệ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ
Các l nh di chuy n d li uệ ể ữ ệ Các l nh s h c và logicệ ố ọ Các l nh đi u khi n ch ng trìnhệ ề ể ươ
• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ80286
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ
Các l nh di chuy n d li uệ ể ữ ệ Các l nh s h c và logicệ ố ọ Các l nh đi u khi n ch ng trìnhệ ề ể ươ
• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ80286
Các l nh di chuy n d li uệ ể ữ ệCác l nh di chuy n d li uệ ể ữ ệ
• L nh PUSHệ Dùng đ c t 1 t t thanh ghi ho c ô nh vào đ nh ngăn x p ể ấ ừ ừ ặ ớ ỉ ế Cú pháp: PUSH Ngu nồ Mô t : SP=SP-2, Ngu n => {SP}ả ồ Gi i h n: thanh ghi 16 bit ho c là 1 t nhớ ạ ặ ừ ớ L nh này không tác đ ng đ n cệ ộ ế ờ Ví d :ụ
PUSH BXPUSH PTR[BX]
• L nh PUSHFệ C t n i dung c a thanh ghi c vào ngăn x pấ ộ ủ ờ ế
Các l nh di chuy n d li uệ ể ữ ệCác l nh di chuy n d li uệ ể ữ ệ
• L nh POPệ Dùng đ l y l i 1 t vào thanh ghi ho c ô nh t đ nh ngăn x p ể ấ ạ ừ ặ ớ ừ ỉ ế Cú pháp: POP Đích Mô t : {SP} => Đích, SP=SP+2ả Gi i h n: thanh ghi 16 bit (tr CS) ho c là 1 t nhớ ạ ừ ặ ừ ớ L nh này không tác đ ng đ n cệ ộ ế ờ Ví d :ụ
POP BXPOP PTR[BX]
• L nh POPFệ L y 1 t t đ nh ngăn x p r i đ a vào thanh ghi cấ ừ ừ ỉ ế ồ ư ờ
Các l nh di chuy n d li uệ ể ữ ệCác l nh di chuy n d li uệ ể ữ ệ
• Các l nh di chuy n chu i MOVS, MOVSB, MOVSWệ ể ỗ Dùng đ chuy n m t ph n t c a chu i này sang m t chu i ể ể ộ ầ ử ủ ỗ ộ ỗ
khác Cú pháp: MOVS chu i đích, chu i ngu nỗ ỗ ồ
MOVSB MOVSW
Th c hi n: ự ệDS:SI là đ a ch c a ph n t trong chu i ngu nị ỉ ủ ầ ử ỗ ồES:DI là đ a ch c a ph n t trong chu i đíchị ỉ ủ ầ ử ỗSau m i l n chuy n SI=SI +/- 1, DI=DI +/- 1 ho c SI=SI +/- 2, ỗ ầ ể ặ
DI=DI +/- 2 tuỳ thu c vào c h ng DF là 0/1 ộ ờ ướ L nh này không tác đ ng đ n cệ ộ ế ờ Ví d :ụ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ
Các l nh di chuy n d li uệ ể ữ ệ Các l nh s h c và logicệ ố ọ Các l nh đi u khi n ch ng trìnhệ ề ể ươ
• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ80286
Các l nh s h c và logicệ ố ọCác l nh s h c và logicệ ố ọ
• ADD, ADC, SUB, MUL, IMUL, DIV, IDIV, INC, DEC• AND, OR, NOT, NEG, XOR• L nh quay và d ch: RCL, RCR, SAL, SAR, SHL, SHRệ ị• L nh so sánh: CMP, CMPSệ
• L nh ADDệ L nh c ng hai toán h ng ệ ộ ạ Cú pháp: ADD Đích, ngu nồ Th c hi n: Đích=Đích + ngu nự ệ ồ Gi i h n: toán h ng không đ c là 2 ô nh và thanh ghi đo nớ ạ ạ ượ ớ ạ L nh này thay đ i c : AF, CF, OF, PF, SF, ZFệ ổ ờ Ví d :ụ
Các l nh s h c và logicệ ố ọCác l nh s h c và logicệ ố ọ
• L nh ADCệ L nh c ng có nh hai toán h ng ệ ộ ớ ạ Cú pháp: ADC Đích, ngu nồ Th c hi n: Đích=Đích + ngu n+CFự ệ ồ Gi i h n: toán h ng không đ c là 2 ô nh và thanh ghi đo nớ ạ ạ ượ ớ ạ L nh này thay đ i c : AF, CF, OF, PF, SF, ZFệ ổ ờ Ví d :ụ
ADC AL, 30H
• L nh SUBệ L nh tr ệ ừ Cú pháp: SUB Đích, ngu nồ Th c hi n: Đích=Đích - ngu nự ệ ồ Gi i h n: toán h ng không đ c là 2 ô nh và thanh ghi đo nớ ạ ạ ượ ớ ạ L nh này thay đ i c : AF, CF, OF, PF, SF, ZFệ ổ ờ Ví d :ụ
Các l nh s h c và logicệ ố ọCác l nh s h c và logicệ ố ọ
• L nh INCệ L nh c ng 1 vào toán h ng là thanh ghi ho c ô nhệ ộ ạ ặ ớ Cú pháp: INC Đích Th c hi n: Đích=Đích + 1ự ệ L nh này thay đ i c : AF, OF, PF, SF, ZFệ ổ ờ Ví d :ụ
INC AX
• L nh DECệ L nh tr 1 t n i dung m t thanh ghi ho c ô nhệ ừ ừ ộ ộ ặ ớ Cú pháp: DEC Đích Th c hi n: Đích=Đích - 1ự ệ L nh này thay đ i c : AF, OF, PF, SF, ZFệ ổ ờ Ví d :ụ
Các l nh s h c và logicệ ố ọCác l nh s h c và logicệ ố ọ
• L nh ANDệ L nh AND logic 2 toán h ngệ ạ Cú pháp: AND Đích, ngu nồ Th c hi n: Đích=Đích And ngu nự ệ ồ Gi i h n: toán h ng không đ c là 2 ô nh ho c thanh ghi ớ ạ ạ ượ ớ ặ
đo nạ L nh này thay đ i c : PF, SF, ZF và xoá c CF, OFệ ổ ờ ờ Ví d :ụ
AND BL, 0FH
• L nh XOR, OR: t ng t nh l nh ANDệ ươ ự ư ệ
• L nh NOT: đ o t ng bit c a toán h ngệ ả ừ ủ ạ• L nh NEG: xác đ nh s bù 2 c a toán h ngệ ị ố ủ ạ
Các l nh s h c và logicệ ố ọCác l nh s h c và logicệ ố ọ
• L nh CMPệ L nh so sánh 2 byte ho c 2 tệ ặ ừ Cú pháp: CMP Đích, ngu nồ Th c hi n:ự ệ
Đích = ngu n : CF=0 ZF=1ồĐích> ngu n : CF=0 ZF=0ồĐích < ngu n : CF=1 ZF=0ồ
Gi i h n: toán h ng ph i cùng đ dài và không đ c là 2 ô nhớ ạ ạ ả ộ ượ ớ• L nh CMPSệ
Dùng đ so sánh t ng ph n t c a 2 chu i có các ph n t cùng lo iể ừ ầ ử ủ ỗ ầ ử ạ Cú pháp: CMPS chu i đích, chu i ngu nỗ ỗ ồ
CMPSB CMPSW
Th c hi n: ự ệDS:SI là đ a ch c a ph n t trong chu i ngu nị ỉ ủ ầ ử ỗ ồES:DI là đ a ch c a ph n t trong chu i đíchị ỉ ủ ầ ử ỗSau m i l n so sánh SI=SI +/- 1, DI=DI +/- 1 ho c SI=SI +/- 2, DI=DI +/- 2 ỗ ầ ặ
tuỳ thu c vào c h ng DF là 0/1ộ ờ ướ C p nh t c AF, CF, OF, PF, SF, ZFậ ậ ờ
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ
Các l nh di chuy n d li uệ ể ữ ệ Các l nh s h c và logicệ ố ọ Các l nh đi u khi n ch ng trìnhệ ề ể ươ
L nh nh y không đi u ki n: JMPệ ả ề ệL nh nh y có đi u ki n JE, JG, JGE, JL, JLE...ệ ả ề ệL nh l p LOOPệ ặL nh g i ch ng trình con CALLệ ọ ươL nh g i ch ng trình con ph c v ng t INT và IRETệ ọ ươ ụ ụ ắ
• Cách đánh đ a ch ch đ b o v các máy tính t 80286ị ỉ ở ế ộ ả ệ ở ừ
• Th c hi n INT:ự ệ C t thanh ghi c vào ngăn x pấ ờ ế IF=0 (c m các ng t khác tác đ ng), TF=0 (ch y su t)ấ ắ ộ ạ ố C t CS vào ngăn x pấ ế C t IP vào ngăn x pấ ế IP=[N*4], CS=[N*4+2]
• G p IRET:ặ L y IP t ngăn x pấ ừ ế L y CS t ngăn x pấ ừ ế L y thanh ghi c t ngăn x pấ ờ ừ ế
Ch ng 2: B vi x lý Intel 8088/8086ươ ộ ửCh ng 2: B vi x lý Intel 8088/8086ươ ộ ử
• C u trúc bên trongấ• S đ chânơ ồ• B n đ b nh c a máy tính IBM-PCả ồ ộ ớ ủ• Các ch đ đ a ch c a 8086ế ộ ị ỉ ủ• Cách mã hoá l nh c a 8086ệ ủ• Mô t t p l nh c a 8086ả ậ ệ ủ• Cách đánh đ a ch ch đ b o v các máy tính t ị ỉ ở ế ộ ả ệ ở ừ
Đánh đ a ch b nh ch đ b o vị ỉ ộ ớ ở ế ộ ả ệĐánh đ a ch b nh ch đ b o vị ỉ ộ ớ ở ế ộ ả ệ
01215
Index TI RPL
RPL: mức ưu tiên yêu cầu, 00 cao nhất, 11 thấp nhấtTI=0, sử dụng bảng toàn cục, TI=1 sử dụng bảng cục bộIndex: 13 bit chỉ số để chọn 1 trong 8K mô tả đoạn trong bảng mô tả đoạn
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Access rights Base(B23-B16)
Base(B15-B0)
Limit(L15-L0) 01
3
5
7
2
46 Base(B31-B24)
G D O A Limit V (L19-L16)
Access rights Base(B23-B16)
Base(B15-B0)
Limit(L15-L0) 01
3
5
7
2
46
mô t đo n c a 80286ả ạ ủ mô t đo n t 80386ả ạ ừ
Base: xác đ nh đ a ch b t đ u c a đo nị ị ỉ ắ ầ ủ ạLimit: gi i h n kích th c t i đa c a đo nớ ạ ướ ố ủ ạ
Đánh đ a ch b nh ch đ b o vị ỉ ộ ớ ở ế ộ ả ệĐánh đ a ch b nh ch đ b o vị ỉ ộ ớ ở ế ộ ả ệ
• 80286 Base 24 bit: 000000H đ n FFFFFFH (16 MB)ế Limit 16 bit: kích th c đo n: t 1 đ n 64 KBướ ạ ừ ế Đ a ch v t lý= Base + đ l chị ỉ ậ ộ ệ 1 ch ng trình có th s d ng t i đa: 2*8K*64 K= 1GB b ươ ế ử ụ ố ộ
nh => b nh o (virtual memory)ớ ộ ớ ả
• 80386/486/Pentium Base 32 bit: 00000000H đ n FFFFFFFFH (4 GB)ế Limit 20 bit:
G=0: kích th c đo n: t 1 đ n 1MBướ ạ ừ ế G=1: kích th c đo n t 4K đ n 4 GB ướ ạ ừ ế
Đ a ch v t lý= Base + đ l chị ỉ ậ ộ ệ 1 ch ng trình có th s d ng t i đa: 2*8K*4 GB= 64 ươ ế ử ụ ố