tài liệu vi xử lý vi điều khiển

10 235 0
tài liệu vi xử lý vi điều khiển

Đang tải... (xem toàn văn)

Thông tin tài liệu

I-Vi xử lý 8086/8088: 1. Sơ đồ khối và chức năng các khối: - Khối giao tiếp BIU: +Ch.năng:điều khiển bus hệ thống: đưa ra địa chỉ đọc mã lệnh đọc ghi dữ liệu từ M/I/C +Các t.phần: Bộ cộng tổng( ∑ ): tổng địa chỉ vật lý 4 thanh ghi đoạn 16 bít Bộ đếm chương trình(PC)-còn gọi là con trỏ lệnh IP IQ:hàng đợi lệnh (IR) 8086 6 byte; 8088 4 byte; - Khối thực hiện lệnh EU + Chức năng: Nhận lệnh và dữ liệu từ BIU để xử lý Kết quả >BIU để lưu trữ +Thành phần: ALU (khối số học&logic): dùng để thực hiện các thao tác # với các toán hạng của lệnh CU(khối điều khiển): chức năng dùng để giải mã lệnh 8 thanh ghi 16 bít: 4thanh ghi chung: AX, BX, CX, DX 4 thanh ghi con trỏ chỉ số: SP, BP, SI, DI thanh ghi cờ: chứa trạng thái kết quả mà ALU thực hiện - Bus trong(internal bus) + ghép nối các bộ phận trong CPU + 8086 ALU-Bus 16 bit + 8088 A-Bus 16bit 2. Chu trình sử lý lệnh: 3. Các chế độ địa chỉ: - Chế độ địa chỉ là cách để CPU tìm thấy toán hạng cho các lệnh của nó khi thực hiện - Có 7 chế độ địa chỉ: (1) Chế độ địa chỉ thanh ghi: +Đặc điểm Các toán hạng của lệnh đều là thanh ghi MOV đích,gốc.Chuyển DL từ đích vào gốc VD: Mov ax,bx ; ax< bx Mov al,ah ; al< ah Mov al,bx; Sai(ko tương thích về kích thước/cỡ) (2) Chế độ địa chỉ tức thì: +Đặc điểm: Toán hạng gốc là 1 hằng Toán hạng còn lại có thể là thanh ghi hoặc ô nhớ VD: Mov al , 200; al< 200 (t.g) (hằng) Mov al ,1000; Sai(chỉ chứa đc hằng <255) (3) Chế độ địa chỉ trực tiếp: +Đặc điểm: Sử dụng 1 hằng để biểu diễn địa chỉ 1 ô nhớ là 1 toán hạng Toán hạng còn lại có thể là thanh ghi hoặc 1 hằng(ko đc là 1 ô nhớ) VD: Mov al , [1000] ; al < [1000] (t.g)(ô nhớ có địa chỉ 1000) Mov [2000], bl ; [2000] < bl Mov ax , [3000]; al< [3000] al1< [3000+1] Mov 1500 , bx; [1500] < bl; [1500+1]< bl1 (4) Chế độ địa chỉ gián tiếp qua thanh ghi: +Đặc điểm: SD 1 thanh ghi(BX,BP,SI,DI)để chứa địa chỉ ô nhớ là 1 toán hạng Toán hạng còn lại có thể là thanh ghi hoặc hằng(nhưng ko là ô nhớ) VD: Mov al , [Bx]; al< [Bx] (t.g) (ô nhớ có địa chỉ chứa trog Bx) Mov [bx], 200; [bx]< 200 Mov ax , [bx]; al< [bx] ah< [bx+1] Mov ax , bx ; ax < bx (5) Chế độ địa chỉ tương đối cơ sở: +Đặc điểm: . 1 toán hạng là địa chỉ ô nhớ,đc biểu diễn bởi 2 t.p:1 thanh ghi cơ sở (BX,BP)&1 hằng . Toán hạng còn lại là thanh ghi hoặc hằng(ko đc là ô nhớ) Nếu thanh ghi là Bx thì ô nhớ sẽ thuộc đoạn DS Nếu thanh ghi là Bp thì ô nhớ sẽ thuộc đoạn SS VD: Mov al , [bx]+100; al< ds: [Bx+100] Mov ah,[bp]+1000; ah< ss: [bp+1000] Mov [bx] +200,150 ; ds: [bx+200]< 150 (6) Chế độ địa chỉ chỉ số: +Đặc điểm: . 1 toán hạng là 1 địa chỉ ô nhớ.gồm 2 phần: t.g chỉ số (SI, DI) Hằng . toán hạng còn lại là thanh ghi hoặc hằng(ko là ô nhớ) VD: Mov al , [Si]+200; al< [Si] +200 Mov [di]+300, al ; [di]+300< al (7) Chế độ địa chỉ chỉ số cơ sở: +Đặc điểm: 1 toán hạng là địa chỉ ô nhớ gồm 3 phần : -thanh ghi cơ sở(BX,BP) -thanh ghi chỉ số(SI,DI) -Hằng Toán hạng còn lại là thanh ghi hoặc hằng (ko là ô nhớ) VD: Mov al ,[Bx]+[Si]+100 ; al< ds: [Bx+Si+100] Mov [Bp+di+300] , al ; ss: [Bp+di+300]< al 4. Dạng lệnh và mã hóa lệnh: * Dạng lệnh: MOV đích, gốc - Dùng để chuyển dữ liệu giữa 2 thanh ghi hoặc giữa ô nhớ và thanh ghi. * Mã hóa lệnh: - Để mã hóa lệnh mov phải cần ít nhất là 2 byte, trong đó 6 bit của byte đầu tiên dùng để chứa mã lệnh. - Để chuyển kiểu DL: thanh ghi  thanh ghi (trừ thanh ghi đoạn) Hoặc bộ nhớ  thanh ghi (trừ thanh ghi đoạn) thì 6 bit đầu tiên luôn là 100010 - Bít W: W=0  1 byte đc chuyển W=1  1 từ đc chuyển - Bít D chỉ hướng DL: D=0  DL đi từ thanh ghi D=1  DL đi đến thanh ghi - 2 bít MOD và 3 bít M/R tạo ra 5 bít để chỉ ra chế độ địa chỉ cho các toán hạng của lệnh. - Một số bảng cần dùng: 5. Tập lệnh: * Phân loại: có 2 tập lệnh: Tập lệnh phức hợp CISC Tập lệnh giảm thiểu RISC CISC RISC - Tập lệnh nhiều lệnh, phong phú - Nhiều chế độ địa chỉ - Kích thước lệnh khác nhau - Piple hiệu quả ko cao - Mã chương trình nguồn ngắn chiếm ít Mem - Khó tối ưu cho chương trình dịch - Thường sử dụng cho máy tính để bàn - Tập lệnh giảm thiểu (ít lệnh) - Ít chế độ địa chỉ - Kích thước lệnh tương đương nhau - Piple hiệu quả cao - Mã chương trình nguồn dài chiếm nhiều Mem - Dễ tối ưu hóa - Thường sử dụng cho máy chủ * Một số lệnh của VXL CISC (tập lệnh 8086/8088) (1) Các lệnh vận chuyển DL: ko ảnh hưởng đến các cờ. - MOV: Dạng MOV đích, gốc; Đích  gốc VD: mov ax, bx; ax  bx Mov ax, 1000; ax  1000 Mov [bx], al; [bx]  al - IN: Dạng IN al, dx; al  [dx] đ/c vào - OUT: Dạng OUT dx, al; [dx]  al đ/c ra (2) Các lệnh số học: - ADD: Cộng 2 toán hạng. ADD đích, gốc; đích  đích, gốc Có ảnh hưởng đến các cờ: S, C, A, Z, P, O VD: ADD ax, bx; ax  ax+bx ADD cx, 100; cx  cx+100 - SUB: Trừ 2 toán hạng: SUB đích gốc; đích  đích-gốc Có ảnh hưởng đến các cờ: A, C, O, P, S, Z VD: SUB ax, bx; ax  ax-bx - MUL nhân: Dạng MUL gốc: + gốc là tham số 8 bit: al * gốc  ax + 16 bit: ax * gốc  dx * ax  gốc phải là thanh ghi hoặc ô nhớ Ảnh hưởng đến cờ: C, O VD1: 30 * 20  mov al, 30 Mov bl, 20 MUL bl; ax=al*bl=30*20=600 VD2: 300*10  mov al, 300 Mov bl, 10 MUL bl  sai (vì 300 ko đủ chứa trong al) - DIV: Chia. Dạng DIV gốc Gốc 8 bít; ax: gốc: al: thương ah: dư 16 bít; dx ax gốc: ax: thương dx: dư Ảnh hưởng đến các cờ: A, C, O, P, S, Z VD1: 30:20  mov ax, 30; Mov bl, 20; DIV bl; al=1, ah=10 VD2: 1000:3  mov ax, 1000; Mov bl, 3; DIV bl; al=333; ah=1 Tràn Mov ax, 1000; Mov bx, 3; DIV bx; ax=333; dx=1 (3) Các phép tính số học logic: NOT: đảo AND: và bit OR: hoặc XOR: loại trừ x y NOT x x AND y x OR y x XOR y 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 - AND: Dạng AND đích, gốc; đích  đích ^ gốc Có ảnh hưởng đến các cờ P, S, Z VD: AND al, bl; al  al^bl theo từng bít AND bl, OFH; Che 4 bít cao của BL - NOT: Dạng NOT đích; đích  đích Ko ảnh hưởng đến các cờ VD: NOT ah; ah  ah - OR: Dạng OR đích, gốc; đích  đích v gốc Có ảnh hưởng đến các cờ P, S, Z VD: OR al, bl; al  al v bl theo từng bít - XOR: Dạng: XOR đích, gốc; đích ⊕ gốc Có ảnh hưởng đến các cờ P, S, Z VD: XOR al, bl; al  al ⊕ bl theo từng bit 1 XOR bh, bh; xóa bh, xó CF và OF (4) Các lệnh dịch, quay: - SHL: dịch trái. Dạng: SHL đích, CL (Nếu số bít cần dịch =1 ghi luôn - SHR: dịch phải. Dạng: SHL đích, CL Nếu số bít cần dịch>1 ghi vào CL) Có tác động đến các cờ: S, Z, P - ROL: quay trái. Dạng: ROL đích, CL Có ảnh hưởng đến các cờ C và O  Chức năng: xử lý bít và truyền thong (5) Các lệnh điều khiển: ko ảnh hưởng đến các cờ * Các lệnh nhảy: - Nhảy ko điều kiện: JMP: short Near Dạng JMP NHÀN Fat - Nhảy có điều kiện: + JE: nhảy nếu bằng nhau + JZ: Nhảy nếu kết quả bằng nhau * Lệnh LOOP: Lặp. Dạng LOOP nhàn Ko ảnh hưởng đến các cờ (6) Các lệnh xử lý bit: ko ảnh hưởng đến các cờ - Xóa cờ: CLC: xóa cờ nhớ CF=0 CLD: xóa cờ hướng DF=0 CLI: xóa cờ ngắt IF=0 - Đặt cờ: STC: đặt cờ nhớ CF=1 STD: đặt cờ hướng DF=1 STI: đặt cờ ngắt IF=1 (7) Lệnh điều kiện hệ thống: ko ảnh hưởng đến các cờ - HLT: dừng chương trình - NOP: CPU ko làm việc (8) Các lệnh khác: - INC: lệnh tăng 1: INC (đích); đích  đích+1 Có ảnh hưởng đến các cờ: A, O, P, S, Z - DEC: Lệnh giảm 1: DEC (đích); đích-1 Có ảnh hưởng đến các cờ: A, O, P, S, Z - CMP: Lệnh so sánh: CMP đích, gốc; cờ  đích Có ảnh hưởng đến các cờ A, C, O, P, S, Z - Lệnh thao tác và ngăn xếp: ko ảnh hưởng đến các cờ Push gốc: đẩy DL vào ngăn xếp  SP  SP+2 [SP]  gốc Pop đích: Lấy DL ra khỏi ngăn xếp  đích  {SP} SP  SP-2 V. Vi điều khiển: 1. Định nghĩa: Vi điều khiển là 1 hệ thống vi xử lý đầy đủ tích hợp trong 1 chíp vi mạch, thường gọi là vi điều khiển đơn chip 2. Chức năng: Có đầy đủ các chức năng như 1 vi xử lý - Thực hiện các chức năng điều khiển (chính) - Lập trình - Thực hiện các phép tính số học, logic và các phép toán khác - Kết nối, trao đổi DL với các thiết bị bên ngoài thông qua cổng I/O - Xử lý DL (gồm tính toán và vận chuyển DL) 3. So sánh vi điều khiển với vi xử lý: 1. Gồm 2. Cấu tạo 3.Công suất 4.Tập lệnh 5.Mục đích sd -Tính toán, điều khiển -Là 1 phần của hệ VXL -Lớn -Lớn -Nhiều mục đích: máy tính cá nhân, máy chủ, điều khiển -Tính toán, điều khiển, Mem và I/O -Là 1 VXL hoàn chỉnh trong 1 chíp -Nhỏ -Hạn chế -Sd dưới dạng nhúng và các thiết bị khác: tivi, máy giặt, tủ lạnh III. Các phương pháp vào ra DL: 1. Phương pháp thăm dò: * Đặc điểm: - Các thiết bị I/O sẽ liên tục cập nhật trạng thái sẵn sàng làm việc của mình lên byte trong byte trạng thái tương ứng. - CPU quét byte trạng thái  Nếu bít vào đó =1 => thiết bị tương ứng sẵn sàng làm việc -> 2 bên sẽ trao đổi DL Ưu điểm: Phương pháp đơn giản, dễ thực hiện, có thể thực hiện bằng phần mềm. Nhược điểm: tốn time CPU để quét sạch trạng thái, ko còn time thực hiện công việc khác. * Có 2 phương pháp thăm dò: - Chức năng: thăm dò đc dung khi: + khởi động (chuột, bàn phím, ổ đĩa) + Chạy (ổ mềm, CD, máy in) 2. Phương pháp DMA: - Là qua trình thiết bị I/O trao đổi trực tiếp với Mem ko qua CPU - Chu trình hoạt động: B1: Thiết bị I/O gửi yêu cầu DRQ DMAC . DRQ_DMA Request . HRQ_Hold Request . Hold_ nhận tín hiệu CPU tiếp nhận yêu cầu DMA . HLDA_ nhận tín hiệu trả lời yêu cầu DMA . HACK_ Hold Acknow ledge . DACK_DMA Acknow ledge B2: DMAC chuyển yêu cầu đến chân tín hiệu HOLD của CPU B3: CPU: + Hoàn tất lệnh đang thực hiện + Gửi tín hiệu trả lời (đồng ý) HACK thông qua HLDA + CPU tự treo (tách ra khỏi hệ thống bus toàn bộ bus A và D 1 phần bus C) B4: DMAC nhận đc HACK  Cho thiết bị I/O đc DACKnắm quyền điều khiển bus cho CPU - Các kiểu trao đổi DL bằng DMA: + Treo CPU để trao đổi 1 byte DL + Treo CPU để trao đổi mảng DL + Tận dụng thời gian bus rỗi để trao đổi DL - Chức năng: sử dụng DMA khi các thiết bị có nhu cầu: DL nhiều Tốc độ cao 3. Ngắt, xử lý ngắt: * Định nghĩa: ngắt là sự kiện CPU tạm dừng thực hiện chương trình để chuyển sang thực hiện chương trình khác theo yêu cầu bên ngoài. * Các loại ngắt: - Ngắt cứng là cách ngắt khởi tạo từ thiết bị phần cứng và đc gửi đến 1 trong 2 chân của CPU: NMI INTR - Ngắt mềm: là các ngắt kích hoạt từ chương trình thông qua các lệnh gọi ngắt INT (n-số hiệu ngắt) - Ngoại lệ: là các ngắt xảy ra do các lỗi trong quá trình thực hiện chương trình (VD: Chia cho 0, do tràn) * Ưu tiên xử lý ngắt: - Khi có nhiều yêu cầu ngắt gửi đến CPU nó sẽ phân cấp từ caothấp + Ngắt nội bộ: INT N, INT 0 (phép chia cho 0)… + Ngắt ko cho đc NMI + Ngắt cho đc INTR + Ngắt để chạy từng lệnh INT 1 * Chu trình xử lý ngắt: - CPU đang thực hiện chương trình con thì có yêu cầu ngắt gửi đếnchấp nhận ngắtlưu các thanh ghi: F, CS, IP - Xóa cờ ngắt (IF=0): xóa cờ (TF=0). Sau đó lấy địa chỉ của chương trình con phục vụ ngắt (căn cứ vào số hiệu ngắt n) nạp vào CS và IP - CPU thực hiện chương trình con phục vụ ngắtkết thúc (gặp IRET) CPU nạp lại (khôi phục các giá trị của IP, CS, F) và tiếp tục thực hiện chương trình chính. * Chương trình vào ra bằng ngắt: gồm 5 bước B1: thiết bị I/O có yêu cầu ngắt. Yêu cầu ngắt đc chuyển đến CPU INTR B2: CPU thực hiện các việc: + Hoàn tất các lệnh đang thực hiện + Lưu các thanh ghi IP, CS, F + Gửi tín hiệu chấp nhận ngắt đến thiết bị I/O thông qua INTA + Xóa cờ ngắt (cấm ngắt), xóa cờ bẫy (IF=0) + Yêu cầu thiết bị I/O cung cấp số hiệu ngắt B3: Thiết bị I/O nhận đc tín hiệu chấp nhận ngắt, gửi số hiệu ngắt đến CPU B4: CPU nhận số hiệu ngắt n. Qua đó xác định đc phục vụ ngắt (CS, IP). Đồng thời thực hiện chương trình con phục vụ ngắt trao đổi DL với thiết bị I/O B5: Kết thúc chương trình con phục vụ ngắt, CPU sẽ khôi phục các thanh ghi IP, CS, F. Đặt IF=1 và tiếp tục thực hiện chương trình con. 4. So sánh 3 phương pháp: thăm dò, DMA và ngắt Đặc điểm Thăm dò Ngắt DMA 1. Ai chủ động 2. Tính đơn giản 3. Tốc độ 4. Hiệu năng - CPU - Đơn giản - Chậm - Thấp - I/O - Tương đối phức tạp - Chậm - Trung bình - I/O - Rất phức tạp - Nhanh - Cao IV. Các tín hiệu 8086/8088: 1. Các nhóm tín hiệu: - Các tín hiệu địa chỉ: 20 tín hiệu: + A/D 0 – A/D 7 + A 8 – A 15 + A 16 /S 3 – A 19 /S 6  Quản lý tối đa 2 26 < 1MB  Chiều đi ra (CPU phát ra tín hiệu địa chỉ) - Các tín hiệu DL: 8088 (8 bít DL): A/D 0 – A/D 7 8086 (16 bít DL): A/D 0 – A/D 15 + Chế độ địa chỉ ALE: =1 A/D 0 – A/D 7 thực hiện địa chỉ =0  A/D 0 – A/D 7 thực hiện DL - Các tín hiệu điều khiển hệ thống: + IO/M: Chọn Mem chức năng tín hiệu PO để làm việc: . =1  làm việc với thiết bị I/O . =0  làm việc với thiết bị Mem + DT/R: Xác định hướng vận chuyển DL: =0 nhận DL =1 gửi DL + RD: Xung cho phép đọc + WR: Xung cho phép ghi + DEN: Cho phép DL - Tín hiệu điều khiển bus: + HOLD: Nhận yêu cầu DMA + HLDA: Gửi tín hiệu chấp nhận DMA + INTA: Trả lời yêu cầu ngắt + ALE: Chốt địa chỉ - Điều khiển CPU: + NIMI: Ngắt ko cho đọc + IMTR: Nhận yêu cầu ngắt + MN/MX (Min/Max): Xác định chế độ làm việc Min (MN/MX nối đất)  CPU cung cấp các trạng thái cho bộ phận phụ trợ Max (MN/MX nối VCO) CPU cung cấp các trạng thái cho bộ phận phụ trợ điều khiển (Bus, ngắt và các bộ phận khác) - Các tín hiệu đồng hồ và Nguồn: + CLK (clock): nhận xung nhịp + V CO (Nguồn): 3,0 – 3,3V + GND: nối đất - Một số thiết bị điều khiển khác: S 3 , S 4 , S 5 , S 6 2. Chế độ Min và Max: a. Chế độ Min: Chân MN/MX cần đc nối thẳng vào +5V, ko qua R - CPU trực tiếp tạo tín hiệu điều khiển: Mem; I/O - Các tín hiệu: dùng để xác định các chu kỳ của Bus. + IO/M: phân biệt thời điểm đã định phần tử nào trong I/O hoặc Mem đc chọn làm việc với CPU + WR: Xung cho phép ghi: WR=0 DL ổn định và đc ghi vào Mem WR=1 đột biến + INTA: Báo cho các mạch bên ngoài biết CPU chấp nhận yêu cầu ngắt INTA. Khi INTA=0 Chờ mạch ngoài đưa vào số hiệu ngắt/bus DL + ALE: Xung cho phép chốt địa chỉ. Khi ALE=1 trên bus dồn kênh AD có các địa chỉ của I/O hoặc Mem. Khi ALE=0 CPU bị treo + DT/R: Tín hiệu điều khiển các đệm 2 chiều của bus DL để chọn chiều chuyển vận DL trên bus D. + DEN: Tín hiệu báo cho bên ngoài biết trên bus dồn kênh AD có DL ổn định + HOLD: Tín hiệu yêu cầu treo CPU để mạch ngoài thực hiện việc trao đổi DL với Mem bằng cách thâm nhập trực tiếp. + SSO: Tín hiệu trạng thái. b. Chế độ Max: Chân MN/MX nối đất - Các tín hiệu: + S 1 , S 2 , SO: là 3 tín hiệu trạng thái để ghép nối mạch 8088 + RQ/GTO và RQ/GT1: Các tín hiệu yêu cầu dùng bus của các bộ xử lý khác hoặc thông báo chấp nhận treo CPU để các bộ xử lý dùng bus. + Lock: Tín hiệu do CPU đưa ra để cấm các bộ xử lý khác trong hệ thống dùng bus trong khi nó đang thi hành 1 lệnh nào đó đặt sau tiếp đầu LOCK. + QSO và QS1: Tín hiệu thông báo các trạng thái khác nhau của đệm lệnh. KH Tên NOTE CS DS SS ES TG chọn mã TG dữ liệu TG ngăn xếp TG dữ liệu phụ AX BX CX DX Phanh chứa TG cơ sở Bộ đếm TG liệu  Chứa kết quả của các thao tác Chứa đ/c cơ sở của 1 bảng dùng trong lệnh XLAT Chứa số lần lặp khi lệnh LOOP lặp Chứa đ/c của các cổng trong lệnh I/O DL trực tiếp IP BP SP SI DI Con trỏ lệnh Con trỏ cơ sở Con trỏ ngăn xếp Chỉ số gốc or nguồn Chỉ số đích Luôn trỏ vào lệnh tiếp theo sẽ t/hiện nằm trong đoạn mã CS Luôn trỏ vào 1 DL nằm trong đoạn ngăn xếp CS Luôn trỏ vào đích của ngăn xếp nằm trong SS Chỉ vào DL trong đoạn DL DS Chỉ vào DL trong đoạn DL DS C-CF P-PF A-AF Z-ZF S-SF O-OF Cờ nhớ Cờ parity Cờ nhớ phụ Cò rỗng Cờ dấu Cờ tràn CF=1cờ nhớ chức năng mượn từ SHB p.án tính chẵn lẻ của tổng bít 1k.quả:=1khi chẵn =0khi lẻ AF=1nhớ hoặc mượn từ 1 số BCD thấp sang 1 số BCD cao ZF=1  kết quả =0 SF=1  kết quả âm OF=0 k.quả là 1 số bít 2 một ra ngoài g.hạn biểu diễn của nó TF,JF,DF (8086) cờ điều khiển Cờ bẫy, cờ cho phép ngắt, cờ hướng . Vi điều khiển: 1. Định nghĩa: Vi điều khiển là 1 hệ thống vi xử lý đầy đủ tích hợp trong 1 chíp vi mạch, thường gọi là vi điều khiển đơn chip 2. Chức năng: Có đầy đủ các chức năng như 1 vi xử. thông qua cổng I/O - Xử lý DL (gồm tính toán và vận chuyển DL) 3. So sánh vi điều khiển với vi xử lý: 1. Gồm 2. Cấu tạo 3.Công suất 4.Tập lệnh 5.Mục đích sd -Tính toán, điều khiển -Là 1 phần của.  Chức năng: xử lý bít và truyền thong (5) Các lệnh điều khiển: ko ảnh hưởng đến các cờ * Các lệnh nhảy: - Nhảy ko điều kiện: JMP: short Near Dạng JMP NHÀN Fat - Nhảy có điều kiện: + JE:

Ngày đăng: 18/12/2014, 19:41

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan