1. Trang chủ
  2. » Công Nghệ Thông Tin

GIÁO TRÌNH kỷ THUẬT VI xử lý đh THÁI NGUYÊN

143 1,6K 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 143
Dung lượng 2,13 MB

Nội dung

ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN Nguyễn Trung Đồng Bùi Thị Mai Hoa GIÁO TRÌNH KỸ THUẬT VI XỬ LÝ Giáo trình Kỹ thuật Vi xử lý LỜI NÓI ĐẦU Công nghệ thông tin ứng dụng rộng rãi nhiều lĩnh vực khoa học công nghệ sống thường nhật Bên cạnh khối lượng phần mềm hệ thống ứng dụng đồ sộ, công nghệ phần cứng phát triển vô nhanh chóng Có thể nói hệ thống máy tính thiện khoảng thời gian ngắn, ngày nhanh hơn, mạnh đại Những kiến thức về phần cứng hệ thống máy tính luôn đòi hỏi cấp thiết người chọn công nghệ thông tin làm định hướng cho nghề nghiệp nghiệp khoa học tương lai Giáo trình Kỹ thuật Vi xử lý viết sở giảng theo sát đề cương môn học thực Khoa Công nghệ thông tin trực thuộc Trường đại học Thái Nguyên từ thành lập đến nay, luôn sửa chữa bổ sung để đáp ứng nhu cầu kiến thức sinh viên học tập Khoa Giáo trình chia thành chương: Chương I giới thiệu kiến thức tổng quan sử dụng kỹ thuật Vi xử lý hệ đếm cách thức biểu diễn thông tin hệ Vi xử lý máy tính, nhìn nhận qua lịch sử phát triển trung tâm Vi xử lý Chương II giới thiệu cấu trúc hoạt động đơn vị xử lý trung tâm từ µP8085 đến cấu trúc Vi xứ lý họ 80x86, cấu trúc RISC CISC Do ứng dụng thực tế rộng lớn đời sống, chương II có giới thiệu thêm cấu trúc chức chip Vi xử lý chuyên dụng µC8051 Chương III cung cấp kiến thức tổ chức nhớ cho hệ Vi xứ lý kỹ thuật bước xây dựng vi nhớ ROM, RAM cho hệ Vi xử lý Chương IV sâu khảo sát số mạch chức khả lập trình mạch điều khiển vào/ra liệu song song, mạch điều khiển vào/ra liệu nối tiếp, mạch định thời mạch điều khiển ngắt Chương V giới thiệu cấu trúc cách xây dựng phối ghép số thiết bị vào/ra cho hệ Vi xử lý bàn phím Hexa, hệ thống thị thanh, bàn phím máy tính hình Cuốn giáo trình chắn có nhiều thiếu sót, mong góp ý độc giả Mọi ý kiến đóng góp xin gia theo địa Bộ môn kỹ thuật máy tính Khoa Công nghệ Thông tin Đại học Thái Nguyên Thái Nguyên Hoặc theo địa Email dongnt@hn.vnn.vn Nhóm biên soạn Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý CHƯƠNG TỔNG QUAN VỀ CÁC HỆ VI XỬ LÝ I.1 Các hệ đếm Hệ đếm thông dụng đời sống hệ đếm số 10 (thập phân - Decimal), sử dụng 10 ký tự số từ đến Ngoài ra, sản xuất, kinh doanh có sử dựng hệ đếm số 12 (tá - dozen) Trong hệ thống máy tính, để xử lý, tính toán, ta sử dụng hệ đếm số (nhị phân - Binary), hệ số (bát phân - Octal), hệ số 16 (Hexa) Tuy nhiên, việc nhập liệu hay đưa kết xử lý ta lại dùng hệ đếm số 10 Một số N hệ đếm có n +1 chữ số, gồm n chữ số thuộc phần nguyên l chữ số thuộc phần thập phân, triển khai theo công thức tổng quát: R số hệ đếm ak trọng chữ số vị trí thứ k (O < ak < R) {ak}R = {0, 1, 2, 3, , R - 1} l, n số nguyên N = anan-1…a1a0,a-1a-2…a-1 Theo công thức trên, số biểu diễn hệ đếm khác sau: I.1.1 Hệ đếm thập phân (R = 10 - Decimal) {ak}D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 123,45D = x 102 + x 101 + x 100 + x 10-1 + x 10-2 I.1.2 Hệ đếm nhị phân (R = - Binary) {ak}B = {0, 1} 11011.01B = x 24 + x 23 + x 22 + x 21 + x 20 + x 2-1 + x 2-2 = = 16 + + + + + + 0,25 = 27,25D I.1.3 Hệ đếm bát phân (R = - Octal) {ak}O = {0, 1, 2, 3, 4, 5, 6, 7} 653,12O = x 82 + x 81 + x 80 + x 8-1 + x 8-2 = = 384 + 40 + + 0, 125 + 0,03125 = 427,1562D Lưu ý: Các chữ số hệ biểu diễn nhờ ký tự số ("0" "1") Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý hệ đếm nhị phân theo bảng sau: Oct Binar Oct Binar Oct Binar Oct Binar al y al y al y al y 0O 000B 2O 010B 4O 100B 6O 110B 1O 001B 3O 011B 5O 101B 7O 111B I.1.4 Hệ đếm 16 (R = 16 - Hexa) {ak}H = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} 3A7,C H = x 162 + 10 x 161 + x 160 + 12 x 16-1= = 768 + 160 + + 0,75 = 935,75D Lưu ý: Một giá trị ký tự số Hexa biểu diễn thông qua ký tự số hệ nhị phân theo bảng sau: Hex Binarr Hex Binarr Hex Binarr Hex Binarr a y y y y 0H 0000B 4H 0100B 8H 1000B CH 1100B 1H 0001B 5H 0101B 9H 1001B DH 1101B 2H 0010B 6H 0110B AH 1010B EH 1110B 3H 0011B 7H 0111B BH 1011B FH 1111B a a a Nhận xét: Trong hệ đếm vừa nêu, hệ đếm số có nhiều ưu điểm xử lý máy tính Thứ nhất, việc mô giá trị ký tự số đơn giản: cần phần tử có hai trạng thái khác biệt Sử dụng chất vật lý vật mang thông tin để biểu diễn hai trạng thái dễ thực Trên dây dẫn điện trường hợp có dòng điện (tương ứng với trọng số 1) dòng điện (tương ứng với trọng số 0) Việc chuyển đổi hai giá trị thực thông qua công tắc, thực tế phần tử logic điện tử thực chức khoá điện tử: đóng (dòng điện qua được) mở (dòng điện không qua) I.2 Chuyển đổi lẫn hệ đếm I.2.1 Hệ nhị phân hệ thập phân a) Từ nhị phân sang thập phân Sử dụng biểu thức triển khai tổng quát nêu, cộng tất số hạng theo giá trị số thập phân, tổng số dạng thập phân số nhị Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý phân cho Ví dụ 11011.11B= x 24 + x 23 + x 22 + x 21 + x 20 + x 2-1 + x 2-2 = 16 + + + + + 0.5 + 0.25 = 27.75D b) Từ thập phân sang nhị phân: Phần nguyên: Ta có đẳng thức sau (vế trái số thập phân, vế phải biểu diễn nhị phân số đó): = kn2n + kn-12n-l + kn-22n-2 + k121 + k020 + = SD = 2(kn2n-l + kn-l2n-2 + kn-22n-3 + + k1) + k0 Vì Ki = {0, 1}, đồng phân với số 0, số thập phân, nên ta viết: SD-K0 =kn2n-1 + kn-12n-2 + kn-22n-3 + … + k1 = 2(kn2n-2 + kn-12n-3 + … + k2) + k1 Thấy rằng: Ký tự số nhị phân k0, với số dư chia SD cho 2, ký tự tiếp theo, k1 số dư chia thương cho 2, v v nên ta tìm tất ký tự khác sau: Ví dụ: Đổi số l73D số nhị phân Vậy 173D = 10101101B Phần phân số: Đẳng thức quan hệ số thập phân số nhị phân (phần phân số) (vế trái số thập phân, vế phải số nhị phân) sau: SD = k-12-1 + k-22-2 + k-32-3 + … k-m+12-m+1 + k-m2-m 2SD = k-1 + (k-22-1 + k-32-2 + … k-m+12-m+2 + k-m2-m+1) Thấy k-1 trở thành phần nguyên vế phải, vậy: 2SD – k-1 = (k-22-1 + k-32-2 + … k-m+12-m+2 + k-m2-m+1) 2(2SD - k-1) = k-2 + (k-32-1 + … k-m+12-m+3 + k-m2-m+2) k-2 phần nguyên vế phải “0” “1” Tiếp tục tương tự, thu ký tự số phần tử lại Ví dụ: Chuyển đổi số 0.8128 thành số nhị phân Thực phép nhân liên tiếp với 2, phần nguyên tích giá Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý trị "0" "1", thu kết sau: 0.81281 x = 1.6256 = + 0.6256 0.6256 x2 = 1.2512 = + 0.2512 0.25121 x = 0.5024 = + 0.5024 0.50241 x = 1.0048 = + 0.0048 0.0048 Quá nhỏ bỏ qua x2 Lưu ý: Quá trình biến đổi kết thúc phần phân số tích số 0, nhiên, kéo dài, tuỳ theo yêu cầu độ xác liệu tính toán xử lý, bỏ qua I.2.2 Hệ nhị phân hệ Hexa Chuyển đổi liệu nhị phân sang hệ Hexa đơn giản, ý ta có = 16, có nghĩa số Hexa tương ứng với nhóm số số nhị phân (từ đến F) Vì vậy, chuyển đổi, cần thay nhóm chữ số số nhị phân chữ số tương ứng hệ Hexa sau Tổ hợp nhị phân Ký tự Ký Ký tự Ký Tổ hợp Tổ hợp nhị Tổ hợp nhị số tự số số tự số nhị phân phân phân Hex Hex Hex Hex a a a a 0000 0100 1000 11 0 C 0001 0101 1001 11 D 0010 11 1010 A 11 E 0 11 11 11 B 11 11 F Ví dụ: Lưu ý: Phần nguyên nhóm tính từ vị trí chữ số có trọng nhỏ nhất, phần phân số nhóm tính từ vị trí chữ số có trọng lớn Từ cách chuyển đổi trên, dễ dàng nhận phép chuyển đổi ngược từ số hệ Hexa sang số hệ nhị phân cách thay chữ số hệ Hexa nhóm chữ số hệ nhị phân Ví dụ: F5E7.8CH = 1111 01011110 0111.1000.1100B Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý I.3 Biểu diễn thông tin hệ Vi xử lý Các hệ Vi xử lý xử lý thông tin số chữ Các thông tin biểu diễn dạng mã định Bản chất vật lý việc biểu diễn thông tin điện áp ("0" ứng với điện áp, "1" ứng với điện áp mức quy chuẩn mạch điện tử) việc mã hoá thông tin số chữ tuân theo chuẩn quốc tế Một biến logic với hai giá trị "0" "1" gọi bit Hai trạng thái bit sử dụng để mã hoá cho tất ký tự (gồm số, chữ ký tự đặc biệt khác) Các bit ghép lại thành đơn vị mang thông tin đầy đủ cho ký tự biểu diễn số, ký tự chữ ký tự đặc biệt khác Bit (BInary digiT) đơn vị thông tin theo hệ đếm nhị phân Các mạch điện tử máy tính phát khác hai trạng thái (điện áp mức "1" điện áp mức "0") biểu diễn hai trạng thái dạng hai số nhị phân "1" "0" Nhóm bit ghép kề liền nhau, tạo thành đơn vị liệu sở hệ Vi xử lý gọi Byte Do lưu giữ tương đương với ký tự (số, chữ ký tự đặc biệt) nên Byte đơn vị sở để đo khả lưu giữ, xử lý hệ Vi xử lý Các thuật ngữ KiloByte, MegaByte hay GigaByte thường dùng làm bội số việc đếm Byte, dĩ nhiên theo hệ đêm nhị phân, nghĩa là: KiloByte = 1024 Bytes, MegaByte = 1024 KiloBytes, GigaByte = 1024 MegaBytes Các đơn vị viết tắt tương ứng KB, MB GB 1.3.1 Mã hoá thông tin không số Có hai loại mã phổ cập sử dụng mã ASCII EBCDIC - Mã ASCII (American Standard Code for Information lnterchange) dùng bits để mã hoá ký tự - Mã ABCDIC (Extended Binary Coded Decimal Interchange Code) dùng bits (1 Byte) để mã hoá thông tin - Loại mã dùng ngành bưu điện, máy teletype mã BAUDOT, sử dụng bits để mã hoá thông tin I.3.2 Mã hoá thông tin số Các số mã hoá theo loại mã sau: Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý - Mã nhị phân sử dụng số biểu diễn theo hệ đếm nhị phân nêu - Mã nhị thập phân (BCD Code - Binary Coded Decimal Code) sử dụng cách nhóm bits nhị phân để biểu diễn giá trị thập phân từ đến Các giá trị vượt giới hạn (> 9) không sử dụng I.3.3 Biểu diễn liệu số máy tính Biểu diễn liệu số nguyên có dấu: Giả sử dùng bytes (16 bits) để biểu diễn số nguyên có dấu, bit cao (MSB - Most Significant Bit) dùng để đánh dấu Số dương có bit dấu S = "0", số âm có bit dấu S = "1" D15 D14 D13 D12 D11 D10 D9 S x x x x x x D8 D7 D6 D5 D4 D3 D2 D1 D0 x x x x x x x x x - Biểu diễn liệu số thực có dấu: Về nguyên tắc, dấu số giá trị MSB quy ước Có hai dạng số có dấu phẩy sử dụng máy tính: Số dấu phẩy tĩnh (fixed point) số dấu phẩy động (foatting point) + Dấu phẩy tĩnh phân chia chuỗi chữ số thành phần nguyên phần phân số Ví dụ ta viết: ±0011101.01101101 Nhưng nói chung, máy chuyên dụng, thường phải tìm phương pháp thích hợp để biểu diễn số có dấu phẩy cố định mà dấu phẩy đặt sau ô dấu, nghĩa số dấu phẩy tĩnh có dạng: ±0.knkn-1kn-2…k1k0 + Dấu phẩy động dùng phổ biến, dạng chuẩn tắc sau: N = ±F x 2± đó: F phần định trị (Mantissa) E phần đặc tính (Exponent - số mũ) Theo nguyên tắc này, số thực biểu diễn máy 32 bit sau: Số biểu diễn có giá trị thực tính theo biểu thức: N = (-l)s x 2E-127 x F Với cách biểu diễn này, thấy độ lớn số sau: Số dương: +3.4 x 1038 < N < +3.4 x 10-38 số âm: - 3.4 x 1038 < N < - 3.4 x 10-38 Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý Lưu ý: Khi kết phép tính vượt giới hạn trên, số mũ (exponent) dương, coi - ∞ + ∞ Trong trường hợp số mũ âm vượt qua số mũ cực đại cho phép, kết coi Dạng số xác gấp đôi (Double precision) biểu diễn sau (64 bits): Và giá trị thực tính theo biểu thức: N = (-l)s x 2E-l023 x F Cũng cần lưu ý rằng, liệu số có dấu để thuận tiện cho xử lý tính toán, máy thường biểu diễn dạng mã thuận, mã ngược (complement) mã bù (two-complement) Giả sử ta có số A=+0.10010, mã biểu diễn nhau, với số B = -0.10010 biểu diễn sau: Bình thường A = -0.10010 Mã ngược A = 1.00110 (bù 1, tức đảo chữ số số đó) Mã bù A = 1.00111 (tương ứng với bù cộng thêm 1) I.3.4 Bản chất vật lý thông tin hệ Vi xừ lý Trong hệ Vi xử lý, thông tin giá trị "0" hay "1" biểu diễn thông qua mức điện áp so với mức chuẩn chung, thường đất (GND - GrDund) Độ lớn điện áp biểu diễn giá trị phụ thuộc vào công nghệ sử dụng để tạo nên phần tử mang thông tin Đối với mạch tổ hợp TTL (Transistor-Transistor-Logic), mức điện áp mô tả hình I.1 Hình 1.1 Phạm vi mức cao "1" thấp "0" Của mạch TTL Ta thường dùng ký hiệu VH để mức cao, VL để mức thấp Trong mạch TTL, ta dùng mức cao mức thấp để điện áp cao, điện áp thấp so với điện áp chuẩn chung Các mức cao, thấp giá trị cố định, mà vùng giới hạn cho phép Ngoài phạm vi nêu, vùng không thuộc hai mức vùng không chắn, không xác định Bộ môn Kỹ thuật máy tính Giáo trình Kỹ thuật Vi xử lý Vật mang thông tin giá trị "0" "1" mạch điện tử đặc biệt, mà đầu tương ứng với hai mức trên, gọi chung Flip-Flop Tuỳ theo yêu cầu sử dụng, Flip-Flop có khả thu nhận tín hiệu vào đưa tín hiệu theo quy luật định (Hình I.2) I.4 Vài nét thực phép tính hệ đếm nhị phân Phép cộng phép trừ hai số nhị phân bit thực theo quy tắc nêu bảng sau: A B Σ Carr (Nhớ) + = 0 + = 1 + = 1 + = A B Hiệu Carrow (Mượn) + = 0 + = 1 + = 1 + = 0 I.4.1 Phép cộng phép trừ a) Phép cộng đại số số hạng dấu phẩy cố đinh Đối với phép cộng đại số: Thực bình thường Trong trường hợp có toán hạng số âm ta sử dụng mã ngược mã bù nó, hiệu chỉnh kết theo quy tắc thông qua ví dụ minh hoạ sau: Bộ môn Kỹ thuật máy tính 10 Giáo trình Kỹ thuật Vi xử lý PHỤ LỤC PHỤ L ỤC A Bảng tóm tắt hệ lệnh Trung tâm Vi xử lý họ x86 Từ gợi nhớ Chức Từ gợi nhớ Chức Các lệnh họ 80x86 AAA chỉnh sau Phép cộng số dạng CMP ASCII so sánh toán hạng đích gốc AAD chỉnh hai số mã ASCII trước CMPS phép chia so sánh chuỗi Byte hay từ AAM chỉnh sau phép nhân sồ mã CMPSB ASCII so sánh xâu (byte) AAS Chỉnh sau Phép trừ sồ mã CMPSW ASCII so sánh xâu (từ) ADC Cộng có cờ nhớ CWD Biến đời từ thành từ kép ADD Cộng toán hạng DAA Hiệu chỉnh thập phân sau phép cộng AND Và bit tương ứng DAS toán hạng Hiệu chỉnh thập phân sau phép trừ CALL Gọi chương trình DEC Giảm toán hạng đích CBW chuyển byte thành từ DIV chia không dấu CLC xoá cờ nhớ ESC Thoát CLD xoá cờ hướng HLT Treo cư xoá cờ ngắt lDlV chia số nguyên CMC Lấy bù cờ nhớ IMUL Nhân số nguyên IN Đọc cổng vào JS Nhảy có cờ dấu INC Tăng toán hạng đích lên JZ Nhảy báng INT Gọi ngắt LAHF Nạp bit thắp cờ nhớ vào AH INTO Ngắt bị tràn LDS Nạp ô nhớ từ kép vào ghi đoạn liệu IRET Trở chỗ bị ngắt LF-A Nạp địa hiệu dụng JA Nhảy LES Nạp trỏ dùng ES JAE Nhảy LOCK Khoá bus Bộ môn Kỹ thuật máy tính 129 Giáo trình Kỹ thuật Vi xử lý JB Nhảy thấp LODS Nạp xâu JBE Nhảy thấp LODSB Nạp xâu (bytel) JC Nhảy có cờ nhớ LODSW Nạp xâu (từ) JCXZ Nhảy CX = LOOP vòng lặp JE Nhảy LOOPE Lặp lại JG Nhảy lớn LOOPNE Lặp lại không JGE Nhảy lớn LOOPNZ Lặp không JL Nhảy nhỏ LOOPZ Lặp JLE Nhảy nhỏ MOV chuyển nguồn tới đích JMP Nhảy không điều kiện MOVS chuyển xâu JNA Nhảy không MOVSB chuyển xâu (byte) JNAE Nhảy không MOVSW chuyển xâu (từ) JNB Nhảy không JNBE Nhảy không NEG Đảo dấu hay lấy bù JNC Nhảy cờ nhớ NOP Không hành động JNE Nhảy không NOT Đảo dấu (lấy bù 1) JNG Nhảy không lớn OR Hoặc bit tương ứng toán hạng JNGE Nhảy nêu không lớn OUT viết cổng vào/ra JNL Nhảy không nhỏ hồi phục nội dung (các ghi ) JNLE nhảy không nhỏ POPF Hồi phục nội dung cờ JNO Nhảy không tràn PUSH Đẩy nội dung (thanh ghi ) vào ngăn xếp JNP Nhảy không cớ cờ chẵn lẻ PUSHF Đấy nội dung cờ vào ngăn xếp JNS Nhảy cờ dấu RCL Quay trái qua cờ nhớ JNZ Nhảy khẳng RCR Quay phải qua cờ nhớ JO Nhảy có cờ tràn REP Lặp lại JP Nhảy cỏ có chẵn lẻ REPE Lặp lại Bộ môn Kỹ thuật máy tính MUL POP Phép nhân 130 Giáo trình Kỹ thuật Vi xử lý JPE Nhảy có cờ lẻ chẵn REPNE Lặp lại không JPO Nhảy lẻ lẻ REPNZ Lặp lại không REPZ Lặp lại STC Đặt cừ nhớ RET Trở STD Độ cờ hướng _ ROL Quay trái STI Đặt cờ ngắt ROI Quay Phải STOS Lưu trữ xâu SAHF Lưu trữ AH vào byte thấp cờ STOSB Lưu trữ xâu (byte) SAL Dịch trái số học STOSW Lưu trữ xâu (từ) SAR Dịch phải số học SUB Phép trừ SBB Trừ có mượn TEST Kiểm tra (nhân logic đích với gốc) SCAS Quét xâu WAIT Đợi SCASB Quét xâu (byte) XCHG Trao đổi SCANW Quét xâu (từ) XLAT chuyển đổi bảng SHL Dịch trái XOR Hoặc tuyệt đối tương ứng số SHR Dịch phải Các lệnh có 80286, 80386 80486 ARPL chỉnh trường RPL chọn LSL Nạp độ dài đoạn nhớ BOUND Kiểm tra biên trường LTR Nạp ghi nhiệm vụ CLTS xoá cờ chuyển nhiệm vụ OUTS xuất xâu công vào/ra ENTER Tạo khối thông số để vào POPA CTC Phục hồi tất ghi đa INS Nhập xâu từ cổng vào/ra PUSHA Đẩy vào ngăn xếp ghi đa LAR Nạp quyền thâm nhập SGDT Lưu trữ ghi bảng mô tả toàn cục LEAVE Ra khỏi CTC (chương trình con) SIDT Lưu trữ ghi bảng bô mô tả ngắt LGDT Nạp ghi bảng mô tả SLDT toàn cục Lưu trữ ghi bảng mô tả cục bô L\D Nạp bảng bọ mô tả SMSW nam Lưu trữ từ trạng thái máy LLDT Nạp bảng mô tả STR Lưu trữ ghi nhiệm vụ Bộ môn Kỹ thuật máy tính 131 Giáo trình Kỹ thuật Vi xử lý cục LMSW Nạp từ trạng thái máy VERR Kiểm tra chọn đoạn để đọc VERW Kiểm tra chọn đoạn để viết Các lệnh có 80386 80486 BSF Quét bit phía trước SETL Đặt byte nhỏ BSR Quét bit phía sau SETLE Đặt byte nhỏ BT Kiểm tra bit SETNA Đặt byte khônq cỷ BTC Kiảm tra đảo bit SETNAE Đặt byte không BTR Kiểm tra xoá bit SETNB Đặt byte không BTS Kiểm tra đặt bit SETNBE Đặt byte không CDQ Biến đổi từ kép thành từ kép SETNC EAX Đặt byte không nhớ CMPSD so sánh xâu (từ kép) Đặt byte nắu không CWDE Biến đổt từ thành từ kép trona SETNG EAX JECXZ Nhảv ECX bẳng SETNGE Đặt byte không lớn LFS Nạp trỏ dùng FS SETNL Đặt byte khônq nhỏ LGS Nạp trỏ dùng GS SETNLE Đặt byte khônq nhỏ hoãc bằna LSS Nạp trỏ dùng SS SETNO Đặt byte khônq tràn LODSD Nạp xâu (từ kép) SETNP Đặt byte chẵn lẻ MOVSD chuyển xâu (từ kép) SETNS Đặt byte không dấu MOVSX chuvẻn với Siqh-extend SETNZ Đặt byte không MOVZX chuyển với Zero-extend SETO Đặt byte tràn SCASD Quét xâu (từ kép) SETP Đặt byte có chẵn lẻ SETA Đặt byte SETPE Đặt byte chẵn lẻ chẵn SETAE đặt byte SETPO Đặt byte nắu có chẵn lẻ lẻ Bộ môn Kỹ thuật máy tính SETNE Đặt byte không lớn 132 Giáo trình Kỹ thuật Vi xử lý SETB Đặt byte SETS Đặt byte có dấu SETBE Đặt byte SETZ Đặt byte SETC Đặt byte có cờ nhớ SHLD Dịch trái (từ kép) SETE Đặt byte SHRD Dịch phải (từ kép) SETG Đặt byte lớn STOSD Lưu trữ xâu (từ kép) SETGE Đặt byte lớn hoăc Hoán chuyển byte INVLPG vô hiệu hoá TLB (cho chế độ trang) CMPXCHG so sánh vả tráo đổi WBINV Ghi trở lại nhớ vào nhớ ngầm INVD XADD Hoán chuyễn cộng Các lênh có 80486 BSWAP vô hiệu haá nhớ ngầm Bộ môn Kỹ thuật máy tính 133 Giáo trình Kỹ thuật Vi xử lý PHỤ LỤC B Bảng luỹ thừa 2n 2n n 16 32 64 128 256 512 1,024 2,048 4,096 8,192 16,384 32,768 65,536 131,072 262,144 524,288 1,048,576 2,097,152 4,194,304 8,388,608 16,777,216 33,554,432 67,108,864 134,217,728 268,435,456 536,807,912 1,073,741,824 2,147,483,648 4,294,967,296 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 2-n 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.00390625 0.001953125 0.000976563 0.0004882815 0.00024414125 0.000122070625 0.000061035156 0.000030517578 0.000015258789 0.000007629395 0.000003814697 0.000001907349 0.000000953674 0.000000476837 0.000000238419 0.000000119209 0.000000059605 0.000000029802 0.000000014901 0.000000007451 0.000000003725 0.000000001863 0.000000000931 0.000000000466 0.000000000233 Từ 2-14 giá trị làm tròn lấy 10 số sau dấu phẩy Bộ môn Kỹ thuật máy tính 134 Giáo trình Kỹ thuật Vi xử lý PHỤ L ỤC C Bảng mã ASCII ROW Dec 16 32 48 64 80 96 112 Bin 000 001 010 011 100 101 110 111 Hex 10 20 30 40 50 60 70 Dec Bin Hex 0000 NUL DLE SP @ P ‘ p 0001 SOH XON ! A Q a q 0010 STX DC2 “ B R b r 0011 ETX XOFF # C S c s 0100 EOT DC4 $ D T d t 0101 ENQ NAK % E U e u 0110 ACK SYN & F V f v 0111 BEL ETB ‘ G W g w 1000 BS CAN ( H X h x 1001 HT EM ) I Y i y 10 1010 A LF SUB * : J Z j z 11 1011 B VT ESC + ; K [ k { 12 1100 C FF FS ‘ < L \ l | 13 1101 D CR GS - = M ] m } 14 1110 E SO RS > N ^ n ~ 15 1111 F SI US / ? O _ o DEL Bộ môn Kỹ thuật máy tính 135 Giáo trình Kỹ thuật Vi xử lý PHỤ LỤC D CÁC NHÓM LỆNH CỦA µC8051 Tạo vòng lặp lệnh nhảy: a Tạo vòng lặp - Quá trình lặp lại chuỗi lệnh với số lần định gọi vòng lặp Vòng lặp 8051 thực lệnh "DJNZ ghi, nhãn" Để tổ chức vòng lặp lồng cần sử dụng ghi để lưu số đếm b Lệnh nhảy Lệnh nhảy có điều kiện Lệnh JZ JNZ DJNZ CJNE A,byte CJNE rẻ,#data JC JNC JB JNB JBC Lệnh nhảy không điều kiện: Ý nghĩa Nhảy nêu A=0 Nhảy A khác Giảm nhảy A khác Nhảy A khác byte Nhảy byte khác data Nhảy CY= Nhảy CY= Nhảy bit= nhảy bit= Nhảy bit= xoá Lệnh nhảy dài: Là lệnh byte Byte đầu mã lệnh, byte lại địa 16 bit đích Địa đích byte cho phép lệnh nhảy đến vị trí nhớ không gian nhớ 0000 đến FFFF Lệnh nhảy ngắn ? Lệnh nhảy ngắn lệnh byte Byte mã lệnh, byte thứ địa tương đối địa đích Địa đích tương đối có nghĩa so với giá trị đếm chương trình Lệnh gọi Call Lệnh cao dùng để gọi chương trình Lệnh gọi dài Lệnh (longcall): Đây lệnh byte Byte đầu mã lệnh, byte lại địa chương trình đích sau thực xong chương trình con, để 8051 biết chỗ quay trở địa lệnh đứng sau lệnh gọi Lcall tự đông cất vào ngăn xếp Bộ môn Kỹ thuật máy tính 136 Giáo trình Kỹ thuật Vi xử lý Lệnh gọi tuyệt đối A call: Lệnh Acall lệnh byte, địa đích chương trình phải nằm khoảng Kbyte địa chi có 11 bit byte dùng để xác định địa Thực tế số biến thể 8051 có Kbyte ROM chip Trong trường hợp đó, sử dụng lệnh Acall tiết kiệm số byte nhớ không gian ROM chương trình so với lệnh Lcall Nhóm lệnh 8051: Tập lệnh 8051 chia thành nhóm: - Số học - Luận lý - Chuyển liệu - Chuyển điều khiển - Rẽ nhánh Các chi tiết thiết lập lệnh: Rn Thanh ghi R0 đen R7 bank ghi chọn Data địa vùng liệu bên Nó vùng RAM liệu (0-127) ghi chức đặc biệt @Ri bit vùng RAM liệu (0-125) đánh giá địa gián tiếp qua ghi R0 Ri #data Hằng bit chức câu lệnh #data 16 Hằng 16 bit chứa câu lệnh Addr 16 16 địa đích dùng lệnh LCALL LJMP Addr 11 11 địa đích dùng lệnh LCALL AJMP Rel Byte offset bit có dấu dùng lệnh SJMP lệnh nhảy có điều kiện Bit Bit định địa trực tiếp RAM liệu nội ghi chức đặc biệt a Nhóm lệnh xử lý số học: Bộ môn Kỹ thuật máy tính 137 Giáo trình Kỹ thuật Vi xử lý ADD A, Rn ADD A,data ADD A@Ri (1 byte chu kỳ máy): cộng nội dung ghi Rn vào ghi A (21): Cộng trực tiếp byte vào ghi A (11): Cộng gián tiếp nội dung RAM chứa địa khai báo Ri vào ghi A ADD (21): Cộng liệu tức thời vào A ADD A,Rn (11): cộng ghi cờ nhớ vào A ADD A,data (21): Cộng trực tiếp byte liệu cờ nhớ vào A ADDC A~RI (l l): cộng gián tiếp nội dung RAM cờ nhớ vào A ADDC A,#data SUBB A,Rn (21): Cộng liệu tức thời cờ nhớ vào A (11): Trừ nội dung ghi A cho nội dung ghi Rn cờ nhớ SUBB A,data (2 1): Trừ trực tiếp A cho số cờ nhớ SUBB A,Ri (l l): Trừ gián tiếp A cho số cờ nhớ SUBB A #d INCt A (2 1): Trừ nội dung A cho sô tức thời cờ nhớ (11): Tăng nội dung ghi A lên INC Rn (11): Tăng nội dung ghi Rn lên INC data (2 1): Tăng liệu trực tiếp lên INC @Ri (11): Tăng gián tiếp nội dung vùng RAM lên DEC A (11): Giảm nội dưng ghi A xuống DEC Rn (11): Giảm nội dung ghi Rn xuống DEC data (21): Giảm liệu trực tiếp xuống DEC @Ri (II): Giảm gián tiếp nội dung vùng RAM xuống INC DPTR (12): Tăng nội ứng trỏ liệu lên MUL AB (14): Nhân nội dung ghi A với nội dung ghi DIV AB DA A B (l4): Chìa nội dung ghi A cho nội dung ghi B (ll): hiệu chỉnh thập phân ghi A b Nhóm lệnh luận lý: Bộ môn Kỹ thuật máy tính 138 Giáo trình Kỹ thuật Vi xử lý ANL A,Rn (11): AND nội dung ghi A với nội dung ghi Rn ANL A,data (21): AND nội dung ghi A với liệu trực tiếp ANL A,@RI (11): AND nội dung ghi A với liệu gián tiếp RAM ANL A,#data (21): AND nội dung ghi với liệu tức thời ANL data,A ANL data,#data ANL C,bit (21): AND liệu trực tiếp với A (32): AND liệu trực tiếp với A liệu tức thời (22): AND cờ nhớ với bit trực tiếp ANL C,/bit (22): AND cờ nhớ với bù bit trực tiếp ORL A,Rn (11): OR ghi A với ghi Rn ORL A,data (21): OR ghi A với liệu trực tiếp ORL A,@Ri (11): OR ghi A với liệu gián tiếp ORL A,#data (21): OR ghi A với liệu tức thời ORL data,A (21): OR liệu trực tiếp với ghi A ORL data,#data ORL C,bit (31): OR liệu trực tiếp với liệu tức thời (22): OR cờ nhớ với bit trực tiếp ORL C,bit (22): OR cờ nhớ với bù bit trực tiếp XRL A,Rn (11): XOR ghi A với ghi Rn XRL A,data (21): XOR ghi A với mộ liệu trực tiếp XRL A,@Ri (l l): XOR ghi A với liệu gián tiếp XRL A,#mua (21): XOR ghi A với mộ liệu tức thời XRL data,A (21): XOR liệu trực tiếp với ghi A XRL data,#data SETB C (3 l): XOR liệu trực tiếp với liệu tức thời (11): Đặt cờ nhớ SETB bit (21): Đặt bit trực tiếp CLR A (11): xóa ghi A CLR (11): xóa cờ nhớ CPL A (11): Bù nội dung ghi A Bộ môn Kỹ thuật máy tính 139 Giáo trình Kỹ thuật Vi xử lý CPL (l l): Bù cờ nhớ CPL bit (21): Bù bit trực tiếp RL A (11): Quay trái nội dung ghi A RLC A (11): Quay trái nội dung ghi A qua cờ nhớ RR A (11): Quay phải nội dung ghi A RRC A (11): Quay phải nội dung ghi A qua cờ nhớ SWAP (11): Quay trái nội dung ghi A nibble (1 /2byte) c Nhóm lệnh chuyển liệu: MOV A,Rn (l l): Chuyển nội dung ghi Rn vào ghi A MOV A,data (21): Chuyển liệu trực tiếp vào ghi A MOV A,@Ri (l l): chuyển liệu gián tiếp vào ghi A MOV A,#data (21): Chuyển liệu tức thời vào ghi A MOV Rn,data (22): Chuyển liệu trực tiếp vào ghi Rn MOV Rn,#data (21): Chuyển liệu tức thời vào ghi Rn MOV mua,A MOV data,Rn (21): Chuyển nội dung ghi A vào liệu trực tiếp (22): Chuyển nội dung ghi Rn vào liệu trực tiếp MOV data,data (32): Chuyển liệu trực tiếp vào liệu trực tiếp MOV data,@Ri (22): Chuyển liệu gián tiếp vào liệu gián tiếp MOV data,#data (32): Chuyển liệu tức thời vào liệu trực tiếp MOV @Ri,A (11): chuyển nội dung ghi A vào liệu gián tiếp MOV @Ri,data (22): Chuyển liệu trực tiếp vào liệu gián tiếp MOV @Ri,#data (21): Chuyển liệu tức thời vào liệu gián tiếp MOV DPTR,#data Bộ môn Kỹ thuật máy tính (32): Chuyển 16 bit vào ghi trỏ liệu 140 Giáo trình Kỹ thuật Vi xử lý MOV C,bit (21): Chuyển bit trực tiếp vào cờ nhớ MOV bit,C (22): Chuyển cờ nhớ vào bit trực tiếp MOV A,@A+DPTR (12): Chuyển byte nhớ chương trình có địa là@a+DPRT vào ghi A MOVC A,@A+PC (12): Chuyển byte nhớ chương trình có địa @A+PC vào ghi A MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH data POP data (12): Chuyển liệu (8 bit địa chỉ) vào ghi A (12): Chuyển liệu (16 bit địa chỉ) vào ghi A (12): Chuyển nội dung A liệu (8 bit địa chỉ) (12): Chuyển nội dung A liệu bên (16 bit địa chỉ) (22): Chuyển liệu trực tiếp vào ngăn xếp tăng SP(22): Chuyển liệu trực tiếp vào ngăn xếp giảm SP XCH A,Rn (II): Trao đổi liệu ghi Rn v2 ghi A XCH A,data (21): Trao đổi ghi A liệu trực tiếp XCH A,@Ri (l l): Trao đổi ghi A liệu gián tiếp XCHD A,@R (l l): Trao đổi nibble thấp (LSN) ghi A LSN liệu gián tiếp d Nhóm lệnh chuyền điều khiển: ACALL addrl (22): Gọi chương trình dùng địa tuyệt đối LCALL addr 16 (32): Gọi chương trình dùng địa dài RET (12): Trở từ lệnh gọi chương trình Bộ môn Kỹ thuật máy tính 141 Giáo trình Kỹ thuật Vi xử lý RETI (12): Trở từ lệnh gọi ngắt AJMP addr 11 (22): Nhảy tuyệt đối LJMP addr 16 (3 2): Nhảy dài SJMP rel (22):Nhảy ngắn JMP @A+DPTR (12): Nhảy gián tiếp từ trỏ liệu JZ rel (22): Nhảy A=0 JNZ rel (22): Nhảy A không JC rel (22): Nhảy cờ nhớ đặt JNC rel (22): Nhảy cờ nhớ không đặt JB bit,rel (32): Nhảy tương đối bit trực tiếp đặt JNB bit,rel (32):Nhảy tương đối bit trực tiếp không đặt JBC bit,rel (32): Nhảy tương đối bit trực tiếp đặt, xóa bit CJNE A,data,rel (32): So sánh liệu trực tiếp với A nhảy không CJNE A,#data,rel (32): So sánh liệu tức thời với A nhảy không CJNE Rn,#data,rel (32): So sánh liệu tức thời với nội dung ghi Rn nhảy không CJNE (32): So sánh liệu tức thời với liệu gián tiếp nhảy @Ri,#data,rel không DJNZ Rn,rel (22): Giảm ghi Rn nhảy không băng DJNZ data Bộ môn Kỹ thuật máy tính (32): Giảm liệu trực tiếp nhảy không 142 Giáo trình Kỹ thuật Vi xử lý TÀI LIỆU THAM KHẢO [1] Nguyễn Tăng Cường, Phan Quốc Khánh: Cấu trúc lập trình họ Vi điều khiển 8051 NXB KH&KT Hà Nội-2004 [2] Vũ Chấn Hưng: Giáo trình Kiến trúc máy tính NXB Giao thông vận tải - Hà Nội 2002 [3] Văn Thế Minh: Kỹ thuật Vi xử lý - NXB Thống kê - Hà Nội 1983 [4] Phòng Kỹ thuật số - Viện Khoa học Tính toán Điều khiển: Kỹ thuật Vi xử lý - Nhà Xuất Thống kê - Hà Nội 1983 [5] Alan Clements: Principles ofcomputer Hardware - PWS-KENT Publishing Company - Boston 1992 [6] Intel Corporation: Component Data Catalog 1982 [7] David Hergert, Nancy Thibeault: PC Architecturefrom Assembly Language To C Prentice-Hall, Inc 1997 [8] Christopher L Morgan and Mitchell Waite: 8086/8088 16-bit Micno-processor Primer - McGraw-Hill, Inc 1982 [9] V.M Rooney: Microprocessors andMicrocomputers - McMilan Publishing Company - New York 1983 [10] James L., Turley: Advanced 80386programming techniques - Osbome Me Graw-Hill 1988 Bộ môn Kỹ thuật máy tính 143

Ngày đăng: 15/08/2016, 17:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Tăng Cường, Phan Quốc Khánh: Cấu trúc và lập trình họ Vi điều khiển 8051. NXB KH&amp;KT Hà Nội-2004 Sách, tạp chí
Tiêu đề: Cấu trúc và lập trình họ Vi điều khiển 8051
Nhà XB: NXB KH&KT Hà Nội-2004
[2] Vũ Chấn Hưng: Giáo trình Kiến trúc máy tính NXB Giao thông vận tải - Hà Nội 2002 Sách, tạp chí
Tiêu đề: Giáo trình Kiến trúc máy tính
Nhà XB: NXB Giao thông vận tải - Hà Nội 2002
[3] Văn Thế Minh: Kỹ thuật Vi xử lý - NXB Thống kê - Hà Nội 1983 [4] Phòng Kỹ thuật số - Viện Khoa học Tính toán và Điều khiển: Kỹ thuật Vi xử lý - Nhà Xuất bản Thống kê - Hà Nội 1983 Sách, tạp chí
Tiêu đề: Kỹ thuật Vi xử lý - "NXB Thống kê - Hà Nội 1983 [4] Phòng Kỹ thuật số - Viện Khoa học Tính toán và Điều khiển: "Kỹ thuật Vi xử lý
Nhà XB: NXB Thống kê - Hà Nội 1983 [4] Phòng Kỹ thuật số - Viện Khoa học Tính toán và Điều khiển: "Kỹ thuật Vi xử lý "- Nhà Xuất bản Thống kê - Hà Nội 1983
[5] Alan Clements: Principles ofcomputer Hardware - PWS-KENT Publishing Company - Boston 1992 Sách, tạp chí
Tiêu đề: Principles ofcomputer Hardware
[9] V.M. Rooney: Microprocessors andMicrocomputers - McMilan Publishing Company - New York 1983 Sách, tạp chí
Tiêu đề: Microprocessors andMicrocomputers
[10] James L., Turley: Advanced 80386programming techniques - Osbome Me Graw-Hill 1988 Sách, tạp chí
Tiêu đề: Advanced 80386programming techniques
[6] Intel Corporation: Component Data Catalog 1982 Khác
[7] David Hergert, Nancy Thibeault: PC Architecturefrom Assembly Language To C. Prentice-Hall, Inc. 1997 Khác
[8] Christopher L. Morgan and Mitchell Waite: 8086/8088 16-bit Micno-processor Primer - McGraw-Hill, Inc. 1982 Khác

TỪ KHÓA LIÊN QUAN

w