Giáo trình hợp ngữ - Lập trình PIC 16F877A

104 1.6K 8
Giáo trình hợp ngữ - Lập trình PIC 16F877A

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình hợp ngữ - Lập trình PIC 16F877A

T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 1 CHƯƠNG 1: CẤU TRÚC VI ĐIỀU KHIỂN PIC 16F 1. Cấu trúc chung: Hình 1: Cấu trúc chung của vi điều khiển Cấu tạo của vi điều khiển có thể chia làm 2 phần cơ bản như sau: - Phần lõi: gồm bộ điều khiển trung tâm có chức năng chạy chương trình (gồm các câu lệnh) đã được nạp vào trong bộ nhớ chương trình (program memory) trước đó. - Phần ngoại vi: gồm có các timer, bộ biến đổi tương tự số ADC và các modun khác T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 2 Phần lõi của vi điều khiển chịu trách nhiệm chạy chương trình trong vi điều khiển và quản lý toàn bộ các hoạt động khác bao gồm hoạt động của ngoại vi. Vi điều khiển chạy chương trình gồm các lệnh trong bộ nhớ chương trình, địa chỉ của lệnh nằm trong thanh ghi bộ đếm chương trình PC, lúc khởi động PC=0, sau khi thực hiện một lệnh PC=PC+1 do đó vi điều khiển chạy lệnh kế tiếp trong chương trình. Lệnh vi điều khiển trong bộ nhớ thực ra đã được mã hóa mỗi lệnh thành 14 bit. Quá trình thực hiện một lệnh gồm các bước: - Lệnh trong bộ nhớ chương trình được đưa vào thanh ghi lệnh (địa chỉ của lệnh nằm trong thanh ghi PC). Sau đó lệnh đưa vào bộ giải mã và điều khiển để giải mã lệnh. Trên cơ sở đó, vi điều khiển biết lệnh đó là lệnh gì, thao tác với dữ liệu nào, phép thao tác v.v.v Trên cơ sở đó, nếu lệnh thao tác với dữ liệu chứa trong các thanh ghi trong RAM, bộ điều khiển điều khiển đọc dữ liệu trong RAM đưa vào bộ xử lý số học và logic ALU, các phép toán sẽ được thực hiện qua trung gian là thanh ghi làm việc W, quá trình sẽ kết thúc khi kết quả trả dữ liệu về cho chương trình, tiếp theo PC tăng lên 1 đơn vị, vi điều khiển nhảy đến lệnh kế tiếp, tiếp tục 1 chu kì thực hiện lệnh T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 3 CHƯƠNG 2: BỘ NHỚ VI ĐIỀU KHIỂN PIC 16F877A Bộ nhớ vi điều khiển PIC chia làm 3 phần: - Bộ nhớ chương trình-FLASH: chứa nội dung của chương trình chạy trong vi điều khiển. Bộ đếm chương trình PC (Program counter) sẽ thực hiện các lệnh chứa trong bộ nhớ chương trình này theo thứ tự từ trên xuống. - Bộ nhớ dữ liệu tạm thời- RAM : Gồm 2 phần: các thanh ghi đặc biệt-SFR (Special Function Register) - đây là các thanh ghi chức năng thể hiện hoặc trạng thái, điều khiển của các khối bên trong vi điều khiển PIC (các thanh ghi trạng thái các chân vi điều khiển như PORTA v.v, Các thanh ghi Status v.vv, TMR0 cho timer v.v ). Các thanh ghi mục đích chung GPR (general purpose register) là nơi lưu các giá trị tạm thời, nơi mà các biến chương trình nằm đây - Bộ nhớ dữ liệu không mất nội dung- EEPROM cho phép chứa các dữ liệu và dữ liệu này không mất nội dung khi mất điện (phần này xem như thiết bị ngoại vi) 2.1 Bộ nhớ chương trình: Bộ nhớ chương trình là nơi chứa các lệnh đã được mã hóa. Quá trình mã hóa đã được thực hiện trong khâu dịch chương trình trên máy tính ra file hex và nạp chương trình vào bộ nhớ chương trình. Mỗi một lệnh đã được mã hóa được chứa trong 1 thanh ghi 14 bit trong bộ nhớ chương trình Như vậy khi hình dung về bộ nhớ chương trình ta có hình ảnh sau: Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 4 - 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 Chương trình của vi điều khiển chạy theo thứ tự từ địa chỉ thấp đến địa chỉ cao, địa chỉ lệnh là nội dung của thanh ghi bộ đếm chương trình PC (Program Counter). Đối với pic16f877a, thanh ghi PC có độ dài 13 bit. Nếu dùng 2 bit địa chỉ ta phân biệt được 4 địa chỉ: 00,01,10,11 Nếu dùng 3 bit địa chỉ ta phân biệt được 8 địa chỉ: 000,001,010,011,100,101,110,111 Suy ra, PC dùng 13 bit địa chỉ ta phân biệt được 2^13= 2^3 x 2^10=8K địa chỉ Khi bật nguồn cho vi điều khiển (hay ấn nút reset chương trình), PC được xóa về 0 Sau khi thực hiện xong 1 lệnh nội dung của PC tăng lên 1 đơn vị: PC=PC+1 (trừ 1 số lệnh đặc biệt như gọi chương trình con, goto v.v.v) Do vi điều khiển sẽ thực hiện lệnh tại địa chỉ chứa trong thanh ghi PC nên theo phân tích trên có thể nói, vi điều khiển thực hiện lệnh tuần tự từ địa chỉ thấp đến địa chỉ cao 2.1.1 Mã hóa và giải mã lệnh: Như đã nói ở trên, khi chương trình đã nằm trong bộ nhớ (tức là đã được nạp vào), các lệnh đã được mã hóa thành số nhị phân 14 bit chứa trong các thanh ghi của bộ nhớ chương trình. Việc mã hóa này phải tuân theo qui luật của từng loại vi điều khiển mà cụ thể đối với PIC16F877a thì việc mã hóa phải tuân theo qui luật của nhà sản xuất microchip qui định để trong quá trình thực hiện 1 lệnh, bộ điều khiển bên trong của vi điều khiển PIC có thể giải mã (để hiểu) và thực thi lệnh đó được. Để tiện cho việc theo dõi, ta đưa ra bảng tổng hợp các lệnh vi điều khiển 16f877a như sau: T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 5 Bảng 1: Tập hợp tấc cả các lệnh Toàn bộ tập lệnh chia làm 3 dạng: - Lệnh thao tác theo từng byte (Byte-Oriented) - Lệnh thao tác theo từng bit (Bit-Oriented) - Lệnh thao tác với hằng số Trong vi điều khiển pic16f877a không có lệnh thực hiện tương tác giữa 2 thanh ghi, hay giữa thanh ghi và một số (chú ý ở đây, thanh ghi là thanh ghi nằm trong bộ nhớ RAM, ví dụ như PORTA hoặc thanh ghi có địa chỉ 0x21 ) Để giải quyết vấn đề trên, trong vi điều khiển pic 16f877a có thanh ghi đặc biệt làm chức năng trung gian cho các thao tác trên gọi là thanh ghi làm việc W (work register) Để dễ hiểu: T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 6 Giả sử ta có 2 biến a,b (tất nhiên là được khai báo và cấp phát trong bộ nhớ RAM) Ta muốn thực hiện phép toán: a=a+b Trong PIC không có lệnh thực hiện giữa 2 thanh ghi a và b. Để thực hiện lệnh này ta phải qua các bước: W=0 W= w+b (sau lệnh này w=b) a=w+a (sau lện này a=w+a=b+a) Các lệnh thực hiện chuỗi phép toán trên như sau: CLRW ADDWF b,0 ADDWF a,1 Phần cụ thể về lệnh sẽ được giới thiệu sau, ta trở lại vấn đề mã hóa lệnh Cấu trúc một lệnh: Cấu trúc một lệnh phụ thuộc vào 3 dạng thao tác theo byte, theo bit , thao tác với hằng số - Các lệnh thao tác theo byte Cấu trúc lệnh: o Mã lệnh thanhghi,d Đây là các tác động giữa thanh ghi trong RAM và thanh ghi làm việc W, d chỉ hướng kết quả được lưu trữ. d=0 kết quả chứa trong w, d=1 kết quả chứa trong thanh ghi Ví dụ: cộng thanh ghi a với w, kết quả chứa trong a ADDWF a,1 cộng thanh ghi a với w, kết quả chứa trong w ADDWF a,0 T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 7 Câu hỏi đặt ra là khi vi điều khiển đọc mã lệnh trong bộ nhớ gồm các con số nhị phân làm sao nó xác định được đâu là lệnh cộng (ADDWF) đâu là lệnh AND (ANDWF) ? Câu trả lời là trong lúc mã hóa lệnh một số bit đầu tiên của chuỗi 14 bit lệnh dành để phân biệt các lệnh với nhau hay còn gọi là mã toán tử hay theo tiếng anh là opcode Đối với lệnh theo tác theo byte, vi điều khiển dùng 6 bit để mã hóa opcode Để phân biệt khi nào kết quả chứa trong thanh ghi, khi nào thì chứa trong w, vi điều khiển dành 1 bít hướng d: d=0 kết quả chứa trong thanh ghi w, d=1 kết quả chứa trong thanh ghi. 7 bit còn lại trong để phân biệt lệnh tác động với thanh ghi nào trong bộ nhớ RAM 13 8 7 6 0 OPCODE (toán tử) d(hướng) FILE (địa chỉ thanh ghi) Ví dụ: ADDWF a, 0 Giải sử a địa chỉ là 0x30= 0b00110000 Mã lệnh sẽ là: OPCODE (toán tử) d(hướng) FILE (địa chỉ thanh ghi) 00 0111 0 0110000 - Các lệnh thao tác theo bit Cấu trúc lệnh gồm 3 phần: o Mã lệnh thanh ghi, bit Các lệnh bao gồm lệnh set 1 bit nào đó của một thanh ghi nào đó lên mức 1 hoặc xóa bít đó về 0, hoặc kiểm tra 1 bit nào đó của một thanh ghi nào đó bằng 0 hoặc bằng 1 v.v Từ đây, ta có thể thấy, cần một số bit trong 14 bit của 1 lệnh dành để phân biệt các lệnh với nhau, cụ thể ở đây là 4 bit, cần 3 bít để xác định vị trí bít nào trong thanh T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 8 ghi bị tác động (vì vị trí bít là 0-7), còn lại 7 bít để xác định thanh ghi nào trong các thanh ghi bộ nhớ RAM bị tác động 13 10 9 7 6 0 OPCODE (toán tử) Vị trí bít FILE (địa chỉ thanh ghi) Ví dụ: BCF a,3 Xóa bít 3=011 của thanh ghi a (giả sử a được khai báo trước và có địa chỉ 0x24=0b0010 0100 trong bộ nhớ RAM) 13 10 9 7 6 0 OPCODE (toán tử) Vị trí bít FILE (địa chỉ thanh ghi) 01 00 011 010 0100 - Các lệnh thao tác với hằng số và điều khiển rẽ nhánh chương trình: Cấu trúc lệnh: o Mã lệnh hằng số k Các lệnh thông thường: 13 8 7 0 OPCODE (toán tử) Hằng số k Trừ 2 lệnh Call k và goto k 13 11 10 0 OPCODE (toán tử) Hằng số k Ví dụ: ADDLW 233 Miêu tả: cộng 233 vào thanh ghi w 13 8 7 0 OPCODE (toán tử) Hằng số k 11 111 1110 1001 T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 9 Sau khi phân tích như trên, nhìn lại bảng 1: tập hợp tất cả các lệnh của vi điều khiển pic16f877a ta đưa ra nhận xét sau: - 2 bit đầu của 14 bit mã hóa lệnh xác định 3 dạng lệnh: thao tác theo byte (00), thao tác theo bit (01), thao tác với hằng số (11 hoặc 10 hoặc 00) - Có tấc cả 18 lệnh thao tác byte, như đã nêu ở trên, để mã hóa mã lệnh (opcode-toán tử) dùng hết 6 bít: 2 bít phân biệt dạng thao tác theo byte (00) vậy còn 4 bit để phân biệt 18 lệnh thao tác byte. Như ta biết với 4 bit chỉ phân biệt được 2^4 =16 lệnh, làm sao phân biệt được 18 lệnh. Thực ra vi điều khiển dùng 14 mã lệnh cho 14 lệnh, 2 mã lệnh còn lại, cụ thể là 00 0001 cùng cho 2 lệnh CLRF (xóa nội dung thanh ghi) CLRW (xóa nội dung thanh ghi W) và mã 00 0000 cùng cho 2 lệnh MOVWF (chuyển nội dung của thanh ghi w sang thanh ghi F (có địa chỉ cụ thể trong ram) ) và lệnh NOP (lệnh không thực hiện nhiệm vụ gì). Thế làm sao phân biệt được CLRF và CLRW? Đơn giản là khi gặp mã lệnh 00 0001 vi điều khiển kiểm tra tiếp bit hướng d: rõ ràng nếu d=0 (kết quả chứa trong w) thì đây là lệnh CLRW, nếu d=1 (kết quả chứa trong thanh ghi f) thì đây là lệnh CLRF Khi gặp mã 00 0000, vi điều khiển kiểm tra tiếp bit hướng d, d =1 thì đây là lệnh MOVWF, d=0 là lệnh NOP - Có 4 lệnh thao tác theo bit. 2 bit mã thao tác theo bit là 01, 2 bit còn lại trong OPCODE (xem bên trên) để mã hóa 4 lệnh - Có 13 lệnh thao tác với hằng số và điều khiển: một số lệnh có 2 bit mã thao tác là 11 hoặc 10 hoặc 00. Kiểm tra các bit còn lại ta thấy đều có cách để vi điều khiển thực hiện phân biệt được các lệnh với nhau 2.1.2 Cấu trúc bộ nhớ và stack: T T r r ầ ầ n n T T h h á á i i A A n n h h   u u – – K K h h o o a a Đ Đ i i ệ ệ n n – – Đ Đ ạ ạ i i h h ọ ọ c c B B á á c c h h K K h h o o a a - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 10 Hình 2: Tổ chức bộ nhớ chương trình và Stack 2.1.2.1 Thanh ghi bộ đếm chương trình: Tại mỗi thời điểm, vi điều khiển thực hiện 1 lệnh trong bộ nhớ chương trình có địa chỉ cho bởi thanh ghi bộ đếm chương trình PC (Program Counter) gồm 13 bit. Nhắc lại là với độ dài 13 bit, thanh ghi PC có thể phân biệt được tối đa 2^13=8K địa chỉ. Cấu trúc thanh ghi PC gồm 2 phần: phần thấp PCL (Program Counter Low) 8 bit 0-7, phần cao PCH (Program Counter High) 5 bit 8-12 12 11 10 9 8 7 6 5 4 3 2 1 0 PCH PCL [...]... mỗi bank có dung lượng 2 K từ nhớ: - Bank 0: 0000h-07FFh - Bank 1: 0800h-0FFFh - Bank 2: 1000h-17FFh - Bank 3: 1800h-1FFFh 2 bit cao PCLATCH< 4-3 > sẽ qui định vi điều khiển đang truy cập bank nhớ nào trong 4 bank nêu trên Khi bàn đến các lệnh CALL, GOTO, các lệnh trở về từ chương trình con, chương trình ngắt ta sẽ quay lại vấn đề này 2.1.2.2 Reset vector: Mỗi khi chương trình vi điều khiển bị reset lại... 2.1.2.3 Stack: Trong khi thực hiện chương trình, sẽ có những đoạn chương trình được thực hiện nhiều lần, người lập trình để đơn giản chương trình sẽ đưa đoạn chương trình đó thành chương trình con, mỗi lần cần thực hiện đoạn chương trình thì đơn giản là gọi chương trình con đó Ví dụ chương trình con hay dùng nhất là chương trình delay ví dụ như các chương trình con delay 100ms dưới đây ;*************... chương trình thì vi điều khiển sẽ dừng thực hiện chạy chương trình chính và nhảy vào địa chỉ 0004h, tại đó phần xử lý ngắt này do người lập trình viết chương trình thực hiện Và địa chỉ 0004h trong bộ nhớ chương trình được gọi là vector ngắt 2.2 Tập lệnh vi điều khiển PIC: 2.2.1 Thời gian thực hiện 1 lệnh: Chu kì thực hiện 1 lệnh gồm 4 bước, kí hiệu là Qi, i= 1-4 : - Q1: thời gian giải mã lệnh - Q2: thời... không được rơi vào một số trường hợp sau: - Bắt đầu bằng 2 kí tự gạch dưới (ví dụ: abc là sai) 25 Trần Thái Anh Âu – Khoa Điện – Đại học Bách Khoa - Đại học Đà Nẵng - Không được bắt đầu bằng các con số 0-9 , *, & , giữa các kí tự không có các kí tự đặc biệt - Không được giống các từ đặc biệt của chương trình như ORG, các lệnh v.v 3.6 Cấu trúc của một chương trình hợp ngữ: Cấu trúc cơ bản gồm các phần... Âu – Khoa Điện – Đại học Bách Khoa - Đại học Đà Nẵng chỉ 00h - 1Fh trong bank 0, phân bố rải rác từ 80F- 9Fh trong bank 1, từ 100h đến 11Fh trong bank 2, từ 180h-19Fh trong bank 3 - Các thanh ghi mục đích chung GPR (General Purpose Register) dùng để chứa dữ liệu (dùng để đặt biến) từ 20h-7Fh trong bank 0, từ A0h-EFh trong bank 1, từ 120h-16Fh trong bank 2, từ 1A0h-1F0h trong bank 3 Một số điểm chú... các chân này người lập trình phải gửi lệnh MOVLW B’00001111 MOVWF 0x05,1 Tuy nhiên, có rất nhiều thanh ghi đặc biệt trong vi điều khiển, người sử dụng không thể nhớ được địa chỉ của nó để mà viết lệnh Để tiện cho người lập trình, chương trình biên dịch MPLAB chuẩn bị sẵn file định nghĩa p16f877a.inc trong đó định nghĩa: PORTA equ h’00005 Và người lập trình chỉ việc đưa dòng: #include p16f877a.inc Toàn... tham số cài đặt cho config xem ở file header - Phần thứ ba, khai báo biến, sử dụng các phương pháp khai báo như đã giới thiệu ở các mục trước - Phần thứ tư, chương trình, kết thúc bởi nhãn END - Các chương trình con phải đặt trước END, kết thúc chương trình con có lệnh return - Trong chương trình có sử dụng các chỉ dẫn biên dịch ORG để phân bố bộ nhớ cho chương trình như đã đề cập trước đây 29 Trần Thái... Khoa - Đại học Đà Nẵng MOVLW MOVWF 0x30 FSR CLRF INDF; Vi điều khiển dựa vào bit IRP (là bít 7 của thanh ghi STATUS) và bít 7 của FSR để xác định bank nhớ nơi chứa thanh ghi 7 bít còn lại FSR< 6-0 > xác định chính xác vị trí của thanh ghi đó IRP FSR Bank 0 0 0 0 1 1 1 0 2 1 1 3 20 Trần Thái Anh Âu – Khoa Điện – Đại học Bách Khoa - Đại học Đà Nẵng CHƯƠNG 3: LẬP TRÌNH HỢP NGỮ 3.1 Dạng số trong chương trình. .. là: Khi truy cập các địa chỉ từ F0h-FFh trong bank 1, 170h-17Fh trong bank 2 và 1F0h-1FFh trong bank 3 tức là truy cập đến 70h-7Fh trong bank 0 Các vị trí màu xám không sử dụng Tại mỗi thời điểm, vi điều khiển làm việc trên một bank nhớ , việc lựa chọn làm việc bank nhớ phụ thuộc 2 bit RP1, RP0 của thanh ghi STATUS< 6-5 > Chú ý: Trong chương trình viết cho vi điều khiển PIC, nếu sau ki thực hiện lệnh đối... FSR Bank 0 0 0 0 1 1 1 0 2 1 1 3 20 Trần Thái Anh Âu – Khoa Điện – Đại học Bách Khoa - Đại học Đà Nẵng CHƯƠNG 3: LẬP TRÌNH HỢP NGỮ 3.1 Dạng số trong chương trình hợp ngữ: Các dạng số dùng trong chương trình hợp ngữ và cách viết trong hợp ngữ như sau: Dạng Cách viết Ví dụ DECIMAL D’Số’ D’100’ ‘Số’ HEXADECIMAL H ‘Số’ H’20’ 0xSố 0x20 OCTAL O ‘Số’ O’10’ BINARY B’Số’ B’00011000’ ASCII A’kí tự’ A’X’ ‘kí . nhớ, mỗi bank có dung lượng 2 K từ nhớ: - Bank 0: 0000h-07FFh - Bank 1: 0800h-0FFFh - Bank 2: 1000h-17FFh - Bank 3: 1800h-1FFFh 2 bit cao PCLATCH< 4-3 > sẽ qui định vi điều khiển đang truy. kì thực hiện 1 lệnh gồm 4 bước, kí hiệu là Qi, i= 1-4 : - Q1: thời gian giải mã lệnh - Q2: thời gian đọc lệnh - Q3: thời gian thực thi dữ liệu - Q4: thời gian viết lệnh Mỗi bước tương ứng với. - - Đ Đ ạ ạ i i h h ọ ọ c c Đ Đ à à N N ẵ ẵ n n g g 17 chỉ 00h - 1Fh trong bank 0, phân bố rải rác từ 80F- 9Fh trong bank 1, từ 100h đến 11Fh trong bank 2, từ 180h-19Fh

Ngày đăng: 24/04/2014, 15:28

Từ khóa liên quan

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

Tài liệu liên quan