1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ

115 26 0

Đ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

Tiêu đề Giáo trình Lập trình vi xử lý
Trường học Trường Cao đẳng nghề Kỹ thuật Công nghệ
Chuyên ngành Điện tử công nghiệp
Thể loại giáo trình
Năm xuất bản 2019
Thành phố Hà Nội
Định dạng
Số trang 115
Dung lượng 3,81 MB

Cấu trúc

  • 1. Các hệ đếm (9)
    • 1.1 Hệ thập phân (Decimal Number System) (9)
    • 1.2. Hệ nhị phân (Binary Number System) (10)
    • 1.3. Hệ thập lục phân (Hexadecimal Number System) (12)
    • 1.4. Mã BCD (Binary Coded Decimal) (13)
    • 1.5. Mã hiển thị Led 7 thanh (7-segment display) (13)
  • 2. Chuyển đổi lẫn nhau giữa các hệ đếm (14)
    • 2.1. Hệ nhị phân và hệ thập phân (14)
    • 2.2. Hệ nhi phân và hệ hexa (15)
  • 3. Biểu diễn thông tin trong các hệ vi xử lý (0)
    • 3.1. Mã hõa các thông tin không số (15)
      • 3.1.1. Mã hóa chữ và dữ liệu kiểu văn bản (15)
      • 3.1.2. Các dữ liệu logic (16)
      • 3.1.4. Âm thanh (17)
    • 3.2. Mã hóa các thông tin số (18)
      • 3.2.1. Mã ASCII (19)
      • 3.2.2. Quan hệ giữa mã ASCII và số BCD (21)
    • 3.3. Biểu diễn dữ liệu số trong máy tính (21)
    • 3.4. Bản chất vật lý của thông tin trong các hệ vi xử lý (22)
  • 4. Các phép tính trong hệ đếm nhị phân (22)
    • 4.1. Phép cộng và phép trừ (22)
      • 4.1.1. Phép cộng (22)
      • 4.1.2. Phép trừ (23)
    • 4.2. Phép nhân và phép chia (24)
      • 4.2.1. Phép nhân (24)
      • 4.2.2. Phép chia (25)
    • 4.3. Sơ lược các phép toán logic (25)
      • 4.3.1 Sơ lược các cổng đệm (buffer) và các cổng logic (logic gate) (25)
      • 4.3.2. Thiết bị logic lập trình được (26)
  • 1. Trung tâm vi xử lý họ 80x86 (0)
    • 1.1. Mô tả chân của P 8086 và các tín hiệu (32)
    • 1.2. Cấu trúc trung tâm vi xử lý họ 80x86 (35)
    • 1.3. Hệ thống thanh ghi trong các P 8086 (37)
      • 1.3.1. Các thanh ghi đa năng (37)
      • 1.3.2. Các thanh ghi đoạn (37)
      • 1.3.3. Thanh ghi cờ (39)
      • 1.3.4. Thanh ghi con trỏ lệnh IP (41)
      • 1.3.5. Các thanh ghi dữ 1iệu (41)
      • 1.3.6. Các thanh ghi con trỏ và chỉ số (41)
    • 1.4. Các chế độ làm việc MIN/MAX (42)
    • 1.5. Phương thức quản lý bộ nhớ, các mode địa chỉ (42)
      • 1.5.1. Phương thức quản lý bộ nhớ (42)
      • 1.5.2. Các mode đánh địa chỉ (44)
    • 1.6. Phương thức đánh địa chỉ thiết bị ngoại vi (47)
    • 1.7. Chương trình và tập lệnh của P 8086 (47)
      • 1.7.1. Sơ lược về lập trình hợp ngữ (47)
      • 1.7.2. Các bước khi lập trình (48)
      • 1.7.3 Cấu trúc chung của chương trình hợp ngữ (50)
      • 1.7.4 Các cấu trúc điều khiển cơ bản (61)
      • 1.7.5. Ngắt trong Assembly (65)
  • 2. Cấu trúc và tính năng của một số chíp vi xử lý hiện đại (0)
    • 2.1. Cấu trục chip vi xử lý Pentium (67)
    • 2.2. Quản lý bộ nhớ (70)
    • 2.3. Bộ nhớ cache (71)
  • 1. Bộ nhớ trong hệ vi xử lý (0)
    • 1.1. Phần tử nhớ, vi mạch nhớ, từ nhớ và dung lượng bộ nhớ (74)
    • 1.2. Vài nét về bộ nhớ trong của hệ vi xử lý và máy tính (76)
    • 1.3. Phân loại các chip nhớ ROM, RAM (79)
  • 2. Tổ chức bộ nhớ cho hệ vi xử lý (0)
    • 2.1. Tổ chức bộ nhớ vật lý (81)
    • 2.2. Thiết kế vỉ nhớ cho hệ vi xử lý (82)
  • 1. Bàn phím HEX (keyboard) (86)
  • 2. Ghép nối bàn phím với hệ vi xử lý (92)
    • 2.1. Hệ thống bàn phím của máy vi tính (92)
    • 2.2. Quá trình truyền dữ liệu tử bàn phím cho CPU (93)
  • 3. Bài tập thực hành vi xử lý 8086 (96)
    • 3.1. Thực hành với led đơn (96)
      • 3.1.1. Yêu cầu công nghệ (96)
      • 3.1.2. Lưu đồ giải thuật (97)
      • 3.1.3. Chương trình điều khiển (98)
    • 3.2. Thực hành với led 7 thanh (100)
      • 3.2.1. Cấu trúc mã hiển thị dữ liệu trên LED 7 thanh (100)
      • 3.2.2. Yêu cầu công nghệ (101)
      • 3.2.3. Lưu đồ giải thuật (102)
      • 3.2.4. Chương trình điều khiển (103)
    • 3.3. Thực hành với LED ma trận (105)
      • 3.3.1. Cấu tạo led ma trận 8x8 (105)
      • 3.3.2. Phương pháp quét led ma trận 8x8 (105)
      • 3.3.3. Yêu cầu công nghệ (106)
      • 3.3.4. Chương trình điều khiển (106)
    • 3.4. Thực hành với LCD (108)
      • 3.4.1. Mô tả các chân của LCD (108)
      • 3.4.2. Các mã lệnh LCD (109)
      • 3.4.3. Yêu cầu công nghệ (110)
      • 3.4.4. Chương trình điều khiển (110)

Nội dung

(NB) Giáo trình Lập trình vi xử lý cung cấp cho người học những kiến thức như: Tổng quan về các hệ vi xử lý; Đơn vị vi xử lý trung tâm; Bộ nhớ trong của hệ vi xử lý; Thiết bị vào ra của hệ vi xử lý. Mời các bạn cùng tham khảo!

Các hệ đếm

Hệ thập phân (Decimal Number System)

Hệ đếm cơ bản mà chúng ta sử dụng hàng ngày là hệ thập phân, với mười chữ số từ ‘0’ đến ‘9’ Chữ số ‘0’ biểu thị số không, trong khi chữ số ‘1’ đại diện cho số một, và quá trình đếm tiếp tục cho đến khi đạt đến số mười, khi đó chúng ta chuyển sang hàng bên trái để biểu diễn ‘10’ Hệ thập phân tính giá trị của mỗi số bằng cách lấy tổng giá trị của từng chữ số nhân với trọng số tương ứng, trong đó trọng số của chữ số thứ i là 10^i.

Khi làm việc với nhiều hệ đếm các số hệ 10 có thêm chữ D ở cuối để chỉ ra rằng đó là số hệ 10

Tổng quát hóa cho hệ đếm cơ số a bất kỳ (a ≥ 2, a ∈ N):

Trong hệ đếm cơ số a, các số được biểu diễn bằng chữ số, bắt đầu từ chữ số nhỏ nhất là '0' và kết thúc với chữ số lớn nhất là a-1.

Giá trị của một hệ số a được tính bằng tổng giá trị của từng chữ số, mỗi chữ số được nhân với trọng số tương ứng Trọng số của chữ số thứ i được ký hiệu là ai.

Ví dụ: Số 5346,72 biểu diễn như sau:

Trong các mạch điện tử, việc lưu trữ và phân biệt 10 mức điện áp khác nhau là một thách thức lớn, trong khi việc phân biệt hai mức điện áp lại đơn giản hơn Chính vì lý do này, hệ nhị phân được sử dụng để biểu diễn các giá trị trong hệ thống số.

Số tận cùng bên trái là số có giá trị lớn nhất MSD ( Most Significant Digit)

Số tận cùng bên phải là số có giá trị nhỏ nhất LSD ( Least Significant Digit).

Hệ nhị phân (Binary Number System)

Hệ nhị phân bao gồm hai chữ số 0 và 1, với ký số nhị phân được gọi là bit (binary digit) và có cơ số là 2 Một chuỗi 4 bit được gọi là nibble, 8 bit là byte, 16 bit là word và 32 bit là double word Bit bên trái nhất là bit có giá trị lớn nhất (MSB - Most Significant Bit), trong khi bit bên phải nhất là bit có giá trị nhỏ nhất (LSB - Least Significant Bit) Số trong hệ nhị phân được biểu diễn bằng số mũ của 2, và thường sử dụng chữ B ở cuối chuỗi bit để chỉ định đó là số nhị phân.

Máy tính hoạt động dựa trên các linh kiện điện tử chỉ có hai trạng thái: có điện và không có điện, được biểu diễn bằng các số 1 và 0 Do đó, hệ đếm cơ số 2 là hệ thống duy nhất được sử dụng trong máy tính.

Trong kỹ thuật máy tính, bit (viết tắt của binary digit) là đơn vị cơ bản nhất, với 4 bit tạo thành một nible, 8 bit là một byte, 16 bit là một từ (word), và 32 bit là một từ kép (double word) Bit bên trái nhất trong số nhị phân được gọi là bit có trọng số lớn nhất (Most Significant Bit - MSB), trong khi bit bên phải nhất là bit có trọng số nhỏ nhất (Least Significant Bit - LSB) Các vị trí của các bit trong nible, byte, word và double word rất quan trọng trong việc xử lý và lưu trữ dữ liệu.

Ví dụ 1: Số 101110.01b biểu diễn giá trị số:

Ví dụ 2: cho 1 số nhị phân 1100,1102 được minh hoạ như hình vẽ:

MSB dấu phẩy nhị phân LSB

Cách đếm số nhị phân: ta dùng một số nhị phân 4 bit trình bày như bảng sau:

Với số nhị phân 4 bit như trên có 2 4 trạng thái khác nhau và số thập phân tương ứng lớn nhất là:2 4 – 1 Vậy với một số nhị phân n bit thì:

+ Số thập phân tương ứng lớn nhất 2n -1

Hệ thập lục phân (Hexadecimal Number System)

Khi sử dụng hệ nhị phân, cần một lượng lớn bit để biểu diễn số Để làm cho việc trình bày kết quả trở nên gọn gàng hơn, người ta đã tìm cách nhóm 4 số trong hệ nhị phân lại với nhau.

Một nibble tương đương với hệ mười sáu, trong đó hệ thống này sử dụng tất cả các tổ hợp có thể của 4 bit để biểu diễn giá trị số Hệ mười sáu sử dụng các chữ số từ 0 đến 9 để biểu thị các giá trị từ 0 đến 9, và thêm các chữ cái A đến F để đại diện cho các giá trị từ 10 đến 15 Để phân biệt số trong hệ mười sáu với các hệ khác, ta thêm chữ H ở cuối số Điều này cho thấy rằng hệ mười chỉ là một phần trong hệ mười sáu.

Khi đếm đến 16 vì không còn chữ số nên phải thêm 1 sang bên trái để tạo thành

Giá trị của một số trong hệ 16 được tính bằng tổng các tích của từng chữ số với trọng số tương ứng của nó Trọng số của chữ số thứ i trong hệ 16 là 16^i.

Ví dụ 1: Để biểu diễn số 255 ta cần đến 8 bit viết như sau:

Ví dụ 2: 2AE4H = 2x16 3 + Ax16 2 + Ex16 1 + 4x16 0 = 10980D

Mã BCD (Binary Coded Decimal)

Mã BCD (Binary-Coded Decimal) sử dụng 4 bit nhị phân để mã hóa các số thập phân từ 0 đến 9, do đó không thể biểu diễn các số hex A đến F Trong nhiều ứng dụng như đếm tần và đo điện áp, đầu ra thường ở dạng số thập phân, vì vậy mã BCD trở nên rất quan trọng Các bộ vi xử lý thường tích hợp các lệnh để thao tác với mã BCD, nhằm đáp ứng nhu cầu xử lý dữ liệu số chính xác.

Ví dụ: Số thập phân 5 2 9

Mã hiển thị Led 7 thanh (7-segment display)

Đối với các ứng dụng dùng hiển thị số liệu ra Led 7 đoạn, ta dùng mã hiển thị Led 7 đoạn (bảng 1.1)

Bảng 1.1: Bảng mã led 7 đoạn

Số thập lục phân Số nhị phân

Mã Led 7 đoạn a b c d e f g Hiển thị

Chuyển đổi lẫn nhau giữa các hệ đếm

Hệ nhị phân và hệ thập phân

Để chuyển đổi số nhị phân sang số thập phân, bạn chỉ cần nhân từng chữ số của số nhị phân với giá trị thập phân tương ứng và sau đó cộng tất cả các giá trị lại với nhau.

 Chuyển số thập phân thành số nhị phân: Để chuyển một số thập phân thành số nhị phân, ta dùng 2 phương pháp sau:

Để chuyển đổi số thập phân sang hệ nhị phân, ta bắt đầu bằng cách trừ số thập phân cần chuyển cho 2^i, trong đó 2^i là số lớn nhất nhỏ hơn hoặc bằng số thập phân đó Quá trình này tiếp tục lặp lại cho đến khi đạt đến giá trị 20 Trong mỗi bước, ta ghi lại giá trị 0 hoặc 1 cho các bit, tùy thuộc vào việc số thập phân nhỏ hơn (0) hay lớn hơn (1) so với 2^i.

Ví dụ: Xét số 21 thì số 2i lớn nhất là 24

Phương pháp 2: Chia số cần chuyển cho 2, ghi nhớ số dư và tiếp tục chia thương vừa nhận được cho 2, lặp lại quá trình này cho đến khi thương cuối cùng bằng 0.

0 Kết quả chuyển đổi sẽ là chuỗi các bit là các số dư lấy theo thứ tự ngược lại

Ví dụ: Chuyển 227 ra số nhị phân

Số bị chia Thương Số dư

Để chuyển đổi các số thập phân nhỏ hơn 1 sang số nhị phân, ta nhân số cần chuyển với 2, giữ lại phần nguyên và tiếp tục nhân phần lẻ với 2 Quá trình này lặp lại cho đến khi phần lẻ bằng 0 Kết quả cuối cùng là chuỗi các bit tương ứng với giá trị các phần nguyên.

Ví dụ: Chuyển 0.625 thành số nhị phân

Biểu diễn thông tin trong các hệ vi xử lý

Mã hõa các thông tin không số

3.1.1 Mã hóa chữ và dữ liệu kiểu văn bản Đơn vị cơ sở của dữ liệu văn bản là chữ Chữ ở đây được hiểu theo nghĩa rộng, không chỉ là các chữ cái Latinh mà kể cả chữ số, các dấu chính tả, các dấu toán học, các kí hiệu để trình bày Mặt khác không phải dân tộc nào cũng dùng chữ Latinh nên đối với một số dân tộc có thể có những chữ riêng Chúng ta dùng thuật ngữ ký tự (character) với ý nghĩa là một ký hiệu dùng trong văn bản

Khi sử dụng một vùng nhớ k bit để mã hóa một ký tự, tối đa chỉ có thể biểu diễn 2^k ký tự do số lượng mã nhị phân khác nhau là 2^k Điều này lý giải tại sao người Mỹ chỉ cần 7 bit để mã hóa chữ cái, trong khi để bao gồm các ký tự Châu Âu, Hy Lạp hay Nhật Bản, cần sử dụng mã 16 bit.

Văn bản được hiểu là một chuỗi ký tự, với nội dung như sách và thơ là những ví dụ cụ thể về thông tin văn bản Hiện nay, hầu hết các máy tính và môi trường lập trình sử dụng một byte để mã hóa mỗi ký tự.

Nguyên tắc mã hóa giá trị có thể được thực hiện bằng bit0 cho giá trị sai và bit1 cho giá trị đúng Tuy nhiên, việc sử dụng từng bit trong thực tế rất hiếm, vì cơ chế địa chỉ hóa thường diễn ra ở mức byte Do đó, một byte thường được dùng để mã hóa các giá trị logic.

Dữ liệu loại logic chỉ thể hiện hai trạng thái đối lập là đúng/sai hoặc có/không, thường xuất hiện trong nhiều loại hồ sơ Chẳng hạn, trong lý lịch cá nhân, thông tin như họ tên và quê quán thuộc kiểu văn bản, trong khi ngày tháng năm sinh và lương là dữ liệu số Các thông tin như đoàn viên hay tình trạng gia đình lại thuộc loại logic Dữ liệu logic này có thể bị ảnh hưởng bởi các phép toán so sánh và các phép toán logic như "và", "hoặc", và phủ định "không".

Nguyên tắc mã hóa giá trị logic sử dụng bit0 để biểu thị giá trị sai và bit1 cho giá trị đúng Tuy nhiên, trong thực tế, việc sử dụng mã hóa ở mức bit rất hiếm, vì cơ chế địa chỉ hóa thường diễn ra ít nhất ở mức byte Do đó, một byte thường được sử dụng để mã hóa các giá trị logic.

Hình ảnh có thể được xử lý bằng máy tính thông qua mã hóa nhị phân, khác với hình ảnh thông thường Hai kiểu mã hóa ảnh phổ biến nhất là Ảnh bitmap, trong đó ảnh được thể hiện dưới dạng lưới điểm, với mỗi điểm được xác định bởi vị trí hàng và cột cùng với mã màu tương ứng.

Các ảnh khí tượng từ vệ tinh, ảnh phong cảnh và chân dung có thể được chuyển đổi thành định dạng bitmap thông qua máy quét, máy quay video số hoặc máy chụp ảnh số Dữ liệu ảnh này thuộc loại dữ liệu lớn, do đó, kỹ thuật nén ảnh thường được áp dụng trước khi lưu trữ và khôi phục ảnh cho việc trình bày Có nhiều chuẩn nén ảnh khác nhau, chủ yếu khác biệt ở cách tổ chức nhằm bảo toàn chất lượng và hiệu ứng hình ảnh Khi hiển thị, ảnh được khôi phục dưới dạng bitmap và được gọi là ảnh raster.

Kiểu thứ 2 của ảnh là ảnh vector, thể hiện qua cách vẽ với các thành phần rời rạc và đường biên rõ ràng, phù hợp cho bản vẽ kiến trúc, kỹ thuật và bản đồ Cách lưu trữ thông tin chỉ cần ghi lại tọa độ các điểm quan trọng, như đầu mút của đoạn thẳng hoặc tâm và bán kính của hình tròn, giúp cho ảnh này gọn gàng và dễ dàng phóng to, thu nhỏ thông qua các phép biến đổi tọa độ.

3.1.4 Âm thanh Âm thanh cũng có thể được xử lý bằng máy tính Cũng có nhiều phương pháp mã hóa âm thanh Cách đơn giản nhất là mã hóa bằng cách xấp xỉ dao động sóng âm bằng một chuỗi các byte thể hiện biên độ dao dộng tương ứng theo từng khoảng thời gian bằng nhau Dĩ nhiên các đơn vị thời gian này cần phải đủ nhỏ để không làm nghèo âm thanh Đơn vị thời gian này gọi là chu kỳ lấy mẫu Hình vẽ dưới đây minh hoạ cách lưu trữ xấp xỉ sóng âm, theo đó sẽ lưu lại dãy các giá trị sau (xem hình 1.2)

Hình 1.2 Số hóa âm thanh

Khi phát, một mạch điện sẽ khôi phục lại sóng âm với một sai lệch chấp nhận được

Một phương pháp khác để phân tích âm thanh là tách biệt nó thành các dao động điều hòa, tức là các sóng sine với tần số và biên độ khác nhau, và chỉ giữ lại các đặc điểm về tần số và biên độ.

Có nhiều phương pháp mã hóa âm thanh dựa trên nguyên lý nén dữ liệu hiệu quả Việc số hóa âm thanh được thực hiện thông qua các thiết bị chuyên dụng, và xử lý âm thanh trên máy tính bao gồm nhiều bước quan trọng.

Thu và mã hóa âm thanh

Biên tập (sửa chữa, ghép, cắt)

Phân tích đặc trưng để nhận dạng tiếng nói đã trở thành một xu hướng quan trọng trong công nghệ hiện đại Nhiều máy tính hiện nay có khả năng nghe và thực hiện các lệnh đơn giản Đồng thời, các điện thoại di động cũng đã tích hợp tính năng nhận dạng tiếng nói, mang lại trải nghiệm người dùng tiện lợi hơn.

Tổng hợp tiếng nói Ở mức độ đơn giản máy tính có thể đọc văn bản thành lời.

Mã hóa các thông tin số

Nếu dùng 1 byte (8 bit) để biểu diễn các số nguyên không dấu (số tự nhiên) thì ta có thể biểu diễn được 2n = 28 = 256 số từ 0 đến 255

Nếu dùng 1 byte để biểu diễn các số nguyên có dấu thì có thể biểu diễn được

Trong hệ thống số nguyên 2n = 28, có tổng cộng 256 giá trị từ -128 đến 127 Khoảng số nguyên này được xác định bởi việc sử dụng 1 bit để biểu diễn dấu, trong đó bit biểu diễn dấu là bit quan trọng nhất (MSB).

= 1 cho số âm, MSB = 0 cho số dương Khi MSB = 0 thì ta có số dương lớn nhất là

Số nhị phân 0111 1111 tương đương với giá trị thập phân 127 Khi bit cao nhất (MSB) bằng 1, số đó được coi là âm Một trong những cách phổ biến để biểu diễn số âm là sử dụng kiểu số bù hai, trong đó số âm nhỏ nhất được biểu diễn là 1000 0000.

128 (ta sẽ nói cách tìm số -128 sau)

 Cách tìm số bù hai biểu diễn một số âm như sau:

- Đổi trị tuyệt đối của số âm ra mã nhị phân (với độ dài từ mã cố định, ví dụ

- Tìm số bù một của số nhị phân bằng cách đảo các bit: 0 thành 1, 1 thành 0

- Cộng số bù một với 1 ta sẽ được số bù hai

Ví dụ: Biểu diễn số -128 trong dạng số bù hai 8 bit

Để tìm số nguyên từ một số nhị phân, giả sử số nhị phân đó biểu diễn số nguyên có dấu, ta thực hiện các bước sau:

- Xét bit MSB Nếu MSB = 0 thì chỉ cần đổi số nhị phân sang hệ mười Nếu MSB = 1 thì chuyển sang bước tiếp theo

- Lấy số bù một cộng với 1 để được số bù hai

- Đổi số nhị phân bù hai sang hệ mười

Ví dụ: Cho số nhị phân 1101 1001, số này biểu diễn một số nguyên có dấu, hãy tìm số nguyên đó

Bit MSB = 1 => Số biểu diễn là số âm

Số nguyên cần tìm là -39

Thông tin và dữ liệu xung quanh chúng ta rất đa dạng, bao gồm văn bản, số liệu, âm thanh và hình ảnh Để đưa những loại thông tin này vào máy tính, chúng ta cần sử dụng mã nhị phân Thực tế, thông tin được truyền, lưu trữ trong bộ nhớ máy tính hoặc hiển thị trên màn hình đều ở dạng ký tự, tuân theo mã ASCII (American Standard Code for Information Interchange) Việc sử dụng bảng mã ASCII cho phép các máy tính và các thành phần bên trong chúng có thể trao đổi thông tin một cách hiệu quả.

Bảng mã ASCII có độ dài 1 byte (8 bit) và được chia thành hai phần: phần đầu từ 0 đến 127 gọi là bảng mã ASCII tiêu chuẩn, trong khi phần sau từ 128 đến 255 được gọi là bảng mã ASCII mở rộng Hầu hết các quốc gia trên thế giới sử dụng bảng mã ASCII tiêu chuẩn giống nhau, trong khi bảng mã ASCII mở rộng thường khác nhau và được thiết kế để chứa bộ ký tự riêng biệt của từng quốc gia.

Trong bảng mã ASCII tiêu chuẩn người ta chỉ dùng hết 7 bit (từ bit 0 đến bit

6) để mã hóa các ký tự, còn 1 bit MSB có thể cho liên tục bằng 0, hoặc bằng 1, hoặc có thể dùng để chứa bit parity phục vụ việc phát hiện lỗi khi truyền

Khi xem xét bảng mã ASCII tiêu chuẩn ta có thể rút ra mấy nhận xét sau:

 Hai cột đầu (cột 0 và cột 1) của bảng mã dùng cho các ký tự điều khiển

 Các ký tự số nằm ở cột 3 Mã của ký tự ‘0’ là 30H, của ký tự ‘9’ là 39H Giữa giá trị số và mã ASCII của số đó có khoảng cách là 30H

 Các chữ cái hoa nằm ở cột 4 và 5, các chữ cái thường nằm ở cột 6 và 7 Khoảng cách giữa chữ thường và chữ hoa cùng tên là 20H

Bảng 1.2 BẢNG MÃ ASCII TIÊU CHUẨN

3.2.2 Quan hệ giữa mã ASCII và số BCD

Khi lưu trữ, hiển thị hoặc truyền các giá trị số từ 0 đến 9 giữa các thiết bị, chúng ta thực sự đang làm việc với mã ASCII tương ứng, tức là các mã từ 30H đến 39H Mỗi byte biểu diễn các giá trị số này bao gồm 4 bit thấp, tương ứng với mã BCD của chính số đó.

Mã BCD của số 3 luôn được biểu diễn bằng 4 bit cao Khi thay thế 4 bit cao trong mã ASCII của một số bằng 0000B, ta sẽ nhận được số BCD không gói tương ứng với số đó.

Biểu diễn dữ liệu số trong máy tính

Để đạt hiệu quả cao trong việc xử lý, lưu trữ và truyền thông tin, việc tổ chức và biểu diễn thông tin trên máy tính điện tử là rất quan trọng Dữ liệu, được hiểu là hình thức biểu diễn thông tin, là các thông tin đã được mã hóa dưới dạng nhị phân trong máy tính Các dạng dữ liệu mà máy tính xử lý có thể rất đa dạng.

Hình 1.3 Phân loại các dạng dữ liệu cơ bản

Máy tính có khả năng thực hiện các phép tính với số liệu, xử lý thông tin văn bản và thông tin logic, cũng như quản lý các dữ liệu đa phương tiện như âm thanh và hình ảnh Ngoài ra, máy tính còn có thể xử lý tri thức một cách hiệu quả.

Thông tin về một đối tượng có thể rất phức tạp và được thể hiện qua nhiều loại dữ liệu khác nhau, như tên và nơi sinh dưới dạng văn bản, ngày sinh và lương dưới dạng số, và ảnh chân dung dưới dạng hình ảnh Để lưu trữ trong máy tính điện tử, tất cả dữ liệu, dù có bản chất khác nhau, đều được mã hóa bằng mã nhị phân, cho thấy rằng mọi thông tin đều được số hóa.

Sự phân biệt theo sơ đồ chủ yếu tập trung vào ý nghĩa sử dụng hơn là cách thức biểu diễn Chúng ta sẽ đi sâu vào các lớp dữ liệu một cách chi tiết hơn Đối với những trường hợp thông tin không quá phức tạp, chúng ta sẽ đề cập một chút về phương pháp biểu diễn.

Bản chất vật lý của thông tin trong các hệ vi xử lý

Bộ nhớ trong lưu trữ thông tin đã được mã hóa dưới dạng nhị phân theo quy ước Mỗi ô nhớ giữ một trong hai trạng thái, tương ứng với hai bit 0 hoặc 1.

Khi sử dụng chiều của từ thông để mã hóa, việc phân biệt các bit giống nhau đứng liền nhau trở nên khó khăn Thay vào đó, các bit thường được ghi theo kiểu điều tần, với sự thể hiện qua các biến thiên của từ trường, không phải chỉ dựa vào chiều của từ thông trong một vùng nhiễm từ trên đĩa Quá trình ghi trên đĩa từ thực sự phức tạp, vì nó không chỉ ghi dữ liệu mà còn bao gồm thông tin về địa chỉ và thông tin đồng bộ, giúp việc đọc thông tin trở nên chính xác hơn.

Các phép tính trong hệ đếm nhị phân

Phép cộng và phép trừ

Phép cộng các số hệ hai thực hiện giống như khi ta làm với số hệ mười Quy tắc phép cộng số hệ hai được chỉ ra trong bảng 1.3

Bảng 1.3 Quy tắc phép cộng

Các bộ cộng trong các khối tính toán số học của máy tính sẽ thực hiện các phép cộng theo cách đã nói ở trên

Phép trừ các số hệ hai thực hiện giống như khi ta làm với số hệ mười

Quy tắc phép trừ số hệ hai được chỉ ra trong bảng 1.4

Bảng 1.4 Quy tắc phép trừ số hệ hai

Phép nhân và phép chia

Phép nhân các số nhị phân tương tự như phép nhân với các số thập phân Cần lưu ý rằng khi nhân hai số 4 bit, kết quả sẽ là số 8 bit; tương tự, hai số 8 bit sẽ cho kết quả 16 bit.

 Đối với máy tính, phép nhân được thực hiện bằng phương p háp cộng và dịch phải (add-and-right-shift):

Thành phần đầu tiên của tổng được xác định bởi số bị nhân, trong đó nếu LSB (bit thấp nhất) của số nhân là 1, thì thành phần này sẽ bằng chính số bị nhân Ngược lại, nếu LSB của số nhân bằng 0, thành phần này sẽ có giá trị bằng 0.

Mỗi thành phần thứ i kế tiếp sẽ được tính tương tự với điều kiện là phải dịch trái số bị nhân i bit

Kết quả cần tìm chính là tổng các thành phần nói trên

Phép chia số nhị phân tương tự như chia số thập phân, sử dụng phép trừ và dịch trái cho đến khi không thể thực hiện phép trừ nữa Tuy nhiên, để dễ dàng hơn trong tính toán, thay vì sử dụng phép trừ với số chia, ta sẽ áp dụng phép cộng với số bù 2 của số chia.

 Đổi số chia ra số bù 2 của nó

 Lấy số bị chia cộng với số bù 2 của số chia

 Nếu kết quả này có bit dấu = 0 thì bit tương ứng của thương = 1

Nếu bit dấu của kết quả là 1, thì bit tương ứng trong thương sẽ là 0 Để khôi phục giá trị của số bị chia, ta cần cộng kết quả này với số chia.

- Dịch trái kết quả thu được và thực hiện tiếp tục như trên cho đến khi kết quả là

0 hay nhỏ hơn số chia.

Sơ lược các phép toán logic

4.3.1 Sơ lược các cổng đệm (buffer) và các cổng logic (logic gate)

Hình 1.4 Cổng đệm và các cổng Logic

4.3.2 Thiết bị logic lập trình được

Instead of using discrete logic gates, we can utilize programmable logic devices (PLDs) such as Programmable Logic Arrays (PLA), Programmable Array Logic (PAL), or Programmable Read-Only Memory (PROM) to connect Large Scale Integration (LSI) devices effectively.

PLA (hay FPLA – Field PLA):

Dùng ma trận cổng AND và OR để lập trình bằng cách phá huỷ các cầu chì FPLA rất linh động nhưng lại khó lập trình

 PAL: ma trận OR đã cố định sẵn và ta chỉ lập trình trên ma trận AND

 PROM: ma trận AND cố định sẵn và ta chỉ lập trình trên ma trận OR

 Chốt (latch): Chốt là thiết bị số lưu trữ lại giá trị số tại ngõ ra của nó

CLR: clear; PR: Preset; CLK: Clock

Nếu xuất hiện cạnh lên của tín hiệu CLK thì ngõ ra Q sẽ có giá trị theo dữ liệu tại D

Nếu PR = 0 thì Q = 1 Nếu CL = 0 thì Q = 0

Trạng thái PR = CL = 0 là trạng thái cấm, ngõ ra sẽ không ổn định

Giá trị nhị phân được đưa vào ngõ vào của các flip-flop, và khi tín hiệu CLK có tác động cạnh lên, các flip-flop sẽ lưu trữ giá trị nhị phân cho đến khi nhận được một giá trị nhị phân mới và một tác động cạnh lên khác từ tín hiệu CLK.

Trong trường hợp các flipflop được kết nối nối tiếp với nhau, ta sẽ có thanh ghi dịch (shift register)

Bộ đếm nhị phân 4 bit:

Hình 1.12 Sơ đồ giản lược

 Khối số học-logic (ALU)

Các phép AND, OR và XOR đơn giản

CÁC BÀI TẬP MỞ RỘNG, NÂNG CAO VÀ GIẢI QUYẾT VẤN ĐỀ Câu 1: Trình bày các hệ đếm

Câu 2: Thực hiện các phép toàn cộng, trừ, nhân, chia hai số nhị phân 1001b và 0011b Câu 3: Chuyển đổi số nhị phân 11000011b sang số thập phân, thập lục phân

Câu 4: Chuyển đổi số thập phân 100 sang số nhị phân, thập lục phân

Câu 4: Chuyển đổi số thập lục phân 88H sang số nhị phân, thập phân

Yêu cầu về đánh giá kết quả học tập:

- Trình bày được một số hệ đếm, và các mã thường dùng trong hệ vi xử lý

- Trình bày được cách biểu diễn thông tin trong các hệ vi xử lý

- Tính toán, chuyển đổi được các phép toán nhị phân

+ Thái độ: Đánh giá phong cách, thái độ học tập

- Chủ động, sáng tạo và an toàn trong quá trình học tập

+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết

+ Về kỹ năng: Đánh giá kỹ năng thực hành Mỗi sinh viên, hoặc mỗi nhóm học viên thực hiện công việc theo yêu cầu của giáo viên

Tiêu chí đánh giá theo các nội dung:

- Độ chính xác của công việc

- Thời gian thực hiện công việc

- Độ chính xác theo yêu cầu kỹ thuật

+ Thái độ: Nghiêm túc, cẩn thận, chính xác trong học tập và thực hiện công việc

Trung tâm vi xử lý họ 80x86

Mô tả chân của P 8086 và các tín hiệu

Hình 2.1 Sơ đồ chân trung tâm Vi xử lý àP8086 được chế tạo theo cụng nghệ HMOS, đúng vỏ CerDIP 40 chõn Là loại

Vi xử lý cú khả năng xử lý dữ liệu 8 hoặc 16 bit, với tập lệnh hoàn toàn tương thích với IAPX 86/10 và phần cứng tương thích với các mạch ngoại vi của trung tâm 8080/8085 của Intel Vi xử lý àP8086 có thể hoạt động ở hai chế độ khác nhau.

Chế độ MIN: CPU tự tạo ra các tín hiệu điều khiển hoạt động của BUS (các chân từ 24 đến 34) xử lý 8086

Chế độ MAX yêu cầu CPU phát tín hiệu trạng thái, nhưng cần thêm chip điều khiển BUS 8288 để chuyển đổi các tín hiệu này thành tín hiệu điều khiển BUS tương thích với cấu trúc MULTIBUSTM Phương pháp này giúp cải thiện độ ổn định trong quá trình đọc dữ liệu.

AD15 – AD0: BUS dồn kênh dữ liệu và địa chỉ 16 bit

A19 - A16/S6 - S3: 4 bits địa chỉ cao hoặc 4 tín hiệu trạng thái hoạt động hiện tại của CPU

S4 S3 Thanh ghi được truy xuất

S5 chỉ trạng thái cờ ngắt

+ BHE /S7: Tín hiệu này kết hợp với chân địa chỉ A0 cho chỉ thị các trạng thái sau:

0 0 Một từ đã được truyền qua D5 – D0

0 1 Một Byte trên D15 - D8 được truy xuất tới một địa chỉ Byte lẻ

1 0 Một Byte trên D7 – D0 được truy xuất tới một địa chỉ Byte chẵn

RD : Nếu bằng "l" đang đọc bộ nhớ (hoặc thiết bị vào/ra) Nếu bằng "0" đang ghi ra bộ nhớ (hoặc thiết bị vào/ra)

Khi bộ nhớ hoặc thiết bị vào/ra hoàn tất việc truyền dữ liệu, chúng cần phát tín hiệu READY ở mức "1" tới chân CPU Chỉ khi nhận được tín hiệu này, CPU mới thực hiện việc đọc dữ liệu vào hoặc xuất dữ liệu ra.

CPU kiểm tra trạng thái chân ngắt sau mỗi lệnh để xác định có yêu cầu ngắt từ phần cứng hay không Nếu trạng thái là "1", CPU sẽ chuyển sang xử lý ngắt Thao tác kiểm tra này có thể được thực hiện bằng cách sử dụng mặt nạ che ngắt.

Trong lệnh WAIT, lối vào của CPU luôn được kiểm tra Nếu giá trị bằng "0", CPU sẽ tiếp tục thực hiện chương trình Ngược lại, nếu giá trị bằng "1", CPU sẽ thực hiện các chu trình giả cho đến khi giá trị TEST trở về "0".

NMI: Chân ngắt theo sườn lên của xung, không che được

RESET: Chân nhận tín hiệu tái khởi động hệ thống Nếu có sự thây đổi từ "0" lên

"1" và tồn tại tối thiểu trong 4 nhịp đồng hồ thì hệ thống sẽ tự khởi động lại

CLK: Lối vào của xung nhịp đồng hồ

MN/MX: Khi được nối với Vcc, àP8086 hoạt động ở chế độ MIN, nếu nối với GND, hoạt động ở chế độ MAX

Trong chế độ MAX, chip điều khiển BUS sử dụng ba tín hiệu trạng thái S2, S1 và S0 để phát ra các tín hiệu điều khiển truy xuất bộ nhớ cũng như thiết bị vào ra Tổ hợp này có ý nghĩa quan trọng trong việc quản lý và điều phối các hoạt động của hệ thống.

0 0 0 yêu cầu ngắt cứng qua chân 1NTR được chấp nhận

0 0 1 đọc thiết bị vào/ra

0 1 0 Ghi thiết bị vào/ra

1 0 0 nạp mã chương trình vào hàng nhận lệnh

RQ / GT0 và RQ / GT1 là tín hiệu quan trọng trong việc chuyển mạch BUS cục bộ (Local BUS) giữa các đơn vị làm chủ BUS (BUS master) BUS cục bộ chỉ là BUS kết nối giữa các đơn vị xử lý, không phải là BUS kết nối với các thiết bị ngoại vi Đơn vị làm chủ BUS có thể là vi xử lý P8086 hoặc một chip điều khiển khác, chẳng hạn như DMAC, đang nắm quyền điều khiển BUS cục bộ.

LOCK: nếu bằng "0" đơn vị làm chủ BUS không nhượng quyền làm chủ BUS cục bộ

QS1, QS0 chỉ thị trạng thái của hàng nhận lệnh trước PQ

0 1 byte 1 của mã toán trong PQ được xử lý

1 0 hàng đợi lệnh được xóa

1 1 byte 2 của mã toán trong PQ được xử lý

Cấu trúc trung tâm vi xử lý họ 80x86

Các vi xử lý 80x86 được phát triển dựa trên công nghệ VLSI, với các thành phần chính là transistor trường MOS có mức tiêu hao công suất thấp Sơ đồ khối chức năng của vi xử lý 8086 gồm hai phần chủ yếu: đơn vị ghép nối BUS (BIU) và đơn vị thực hiện lệnh (EU) Tất cả các thanh ghi và đường truyền dữ liệu trong EU đều có độ dài 16 bits BIU chịu trách nhiệm thực hiện các nhiệm vụ liên quan đến BUS cho EU, bao gồm thiết lập kết nối với BUS dữ liệu, BUS địa chỉ và BUS điều khiển Dữ liệu được trao đổi giữa CPU và bộ nhớ khi có yêu cầu từ EU, nhưng không được truyền trực tiếp.

EU đã thông qua một vùng nhớ RAM nhỏ với dung lượng 6 bytes, được gọi là hàng nhận lệnh trước (Instruction Stream Byte Queue - Prefetch Queue), trước khi dữ liệu được truyền đến hệ thống điều khiển EU (Execution Unit Control System).

Bảng thông số kỹ thuật cơ bản của các trung tâm Vi xử lý họ 80

Loại àp Độ dài thanh ghi Độ rộng BUS địa chỉ Độ rộng BUS dữ liệu

8088 16 bits 20 bits 8 bits 1 MByte 10 MHZ

8086 16 bits 20 bits 16 bits 1 MByte 10 MHZ

80188 16 bits 20 bits 8 bits 1 MByte 10 MHZ

80186 16 bits 20 bits 16 bits 1 MByte 10 MHZ

Bộ vi xử lý 80286 có độ rộng dữ liệu 16 bit, độ rộng địa chỉ 24 bit, tốc độ 16 MHz và hỗ trợ tối đa 16 MB bộ nhớ Tiếp theo, 80386SX với độ rộng dữ liệu 32 bit, độ rộng địa chỉ 24 bit, tốc độ 20 MHz và cũng hỗ trợ 16 MB bộ nhớ 80386DX cải thiện với độ rộng dữ liệu và địa chỉ 32 bit, tốc độ 40 MHz và khả năng hỗ trợ lên đến 4 GB bộ nhớ Bộ vi xử lý i486 tiếp tục với độ rộng dữ liệu 32 bit, độ rộng địa chỉ 32 bit, tốc độ 66 MHz và hỗ trợ tối đa 4 GB bộ nhớ, trong khi phiên bản i486SX có tốc độ 25 MHz nhưng vẫn giữ độ rộng dữ liệu và địa chỉ 32 bit Cuối cùng, dòng Pentium (phiên bản đầu) cũng thuộc nhóm này.

32 bits 32 bits 64 bits 4Gbytes 66 MHZ

Khi EU thực hiện một lệnh, BIU đã tìm và lấy lệnh tiếp theo để đặt sẵn vào PQ, thể hiện cơ chế đường ống (pipeline) - một kỹ thuật giúp tăng tốc độ cho CPU.

Kỹ thuật đường ống sử dụng vùng nhớ RAM siêu nhanh để tăng tốc độ bộ xử lý bằng cách truy xuất lệnh từ bộ nhớ chương trình, thay vì phụ thuộc vào kết nối trực tiếp giữa CPU và bộ nhớ Đặc biệt, bộ xử lý Pentium được trang bị hai đường ống riêng biệt: một cho lệnh và một cho dữ liệu, giúp tối ưu hóa hiệu suất xử lý.

Hỡnh 2.2 Cấu trỳc cỏc khối chức năng àP8086

Hệ thống thanh ghi trong các P 8086

Các thanh ghi của các trung tâm Vi xử lý có thể được xem như một bộ nhớ nhanh bên trong CPU, dùng để lưu trữ dữ liệu và kết quả tạm thời của quá trình tính toán Trong họ P80x86, các thanh ghi có độ dài khác nhau, với kích thước 16 bits cho các trung tâm 8088/86, 80188/86 và 80286.

32 bits với các trung tâm 80386/486 trở đi và được mô tả trên hình 2.2

EU của àP8086 cú 8 thanh ghi đa năng với tờn gọi là AH, AL, BH, BL, CH, CL,

Các thanh ghi DH và DL có thể được sử dụng độc lập để lưu trữ dữ liệu nhị phân 8 bits Ngoài ra, chúng cũng có thể kết hợp thành các cặp thanh ghi như AX (AH-AL), BX (BH-BL), CX (CH-CL) và DX (DH-DL) để lưu giữ dữ liệu nhị phân 16 bits.

Hình 2.3 Các thanh ghi trong các trung tâm Vi xử lý họ 80x86

1.3.1 Các thanh ghi đa năng Ưu điểm của việc sử dụng các thanh ghi này để lưu giữ tạm thời các dữ liệu là tốc độ truy cập của CPU với chúng nhanh hơn rất nhiều so với việc sử dụng các ô nhớ

CPU sử dụng BUS địa chỉ 20 bits để quản lý không gian nhớ 1Mbyte (1.048.576 Bytes) bộ nhớ vật lý Tuy nhiên, các thanh ghi trong CPU chỉ có độ dài 16 bits, dẫn đến việc không gian nhớ được chia thành các đoạn (segment) dài 64kbytes, với địa chỉ của Byte đầu tiên được sử dụng làm địa chỉ đoạn Hai đoạn nhớ kề nhau phải cách nhau tối thiểu 16 Bytes, và mỗi Byte trong đoạn được xác định bởi độ lệch (offset), tức là khoảng cách từ Byte đó đến đầu đoạn.

Hình 2.4 Về khái niệm địa chỉ đoạn và địa chỉ offsel

Mỗi cặp thông số gồm địa chỉ đoạn và độ lệch (segment offset) xác định địa chỉ logic của một Byte trong bộ nhớ vật lý Thanh ghi đoạn (Segment Register) chứa 16 bit cao, trong khi thanh ghi độ lệch (sử dụng thanh ghi đa năng hoặc các thanh ghi chỉ số, con trỏ) chứa 16 bit thấp trong tổng số 20 bit của địa chỉ Địa chỉ vật lý được tính theo công thức: Địa chỉ vật lý = (Segment) x 10H + (offset) Bộ vi xử lý P8086 sử dụng bốn thanh ghi đoạn đặc biệt: thanh ghi đoạn mã lệnh CS (Code Segment), thanh ghi đoạn ngăn xếp SS (Stack Segment), thanh ghi đoạn mở rộng ES (Extra Segment) và thanh ghi đoạn dữ liệu DS (Data Segment).

Thanh ghi đoạn mã lệnh CS là thanh ghi chứa địa chỉ bắt đầu của đoạn chương trình hiện hành trong bộ nhớ

Thanh ghi đoạn dữ liệu DS là thanh ghi địa chỉ, có chức năng lưu trữ địa chỉ bắt đầu của đoạn dữ liệu hiện tại trong bộ nhớ Nó được coi là nơi chứa các biến của chương trình.

Thanh ghi đoạn ngăn xếp SS là thanh ghi địa chỉ xác định vị trí bắt đầu của ngăn xếp trong bộ nhớ, được gọi là đáy ngăn xếp Nó đóng vai trò quan trọng trong việc lưu trữ địa chỉ và dữ liệu khi thực hiện các chương trình con, lệnh gọi chương trình con hoặc thủ tục.

Thanh ghi đoạn mở rộng ES là thanh ghi địa chứa chỉ bắt đầu của đoạn chứa các dữ liệu Chuỗi, xâu ký tự

Trong các trung tâm i386/1486, có hai thanh ghi đoạn là FS và GS, cho phép quản lý các đoạn bộ nhớ có thể tách biệt hoặc gối chồng lên nhau, với khoảng cách tối thiểu là 16 Bytes Độ lệch 16 Bytes này xuất phát từ 4 bit thấp nhất của địa chỉ từ A3 trên A0 chưa được xác định Khi bộ cộng trong đơn vị địa chỉ tính toán địa chỉ vật lý để đưa ra BUS địa chỉ, nó kết hợp nội dung thanh ghi đoạn với 4 bit 0000B cho 4 bits thấp nhất của 20 bits địa chỉ, sau đó cộng với 16 bits của phần địa chỉ offset Điều này giúp giải thích công thức tượng trưng đã nêu Địa chỉ bắt đầu của đoạn, thường được lưu giữ trong thanh ghi đoạn, được gọi là địa chỉ cơ sở hay địa chỉ nền.

Hình 2.5 Mô tả cách tính địa chỉ vật lý của một vị trí nhớ 1.3.3 Thanh ghi cờ

Trong các bộ vi xử lý AP8086 và AP80286, chỉ có 9 trong số 16 bits của thanh ghi cờ được sử dụng, trong khi ở các bộ xử lý i386/1486, có 11 trong số 32 bits được sử dụng Mỗi cờ có thể được lập (="1") hoặc xóa (="0") để biểu thị trạng thái kết quả của phép xử lý trước đó hoặc trạng thái hiện tại của CPU Các cờ IOP, N, R và V liên quan đến chế độ bảo vệ trong các bộ xử lý 80286 và i386/1486 Ngoài ra, còn có 6 cờ chỉ trạng thái và 3 cờ điều khiển trong số các cờ còn lại.

Hình 2.6 Vi trí các cờ trong thanh ghi cờ của họ Vi xử /ý 80x86

Các cờ trạng thái gồm:

Cờ nhớ CF (carry flag) được thiết lập khi xảy ra hiện tượng carry hoặc borrow trong thao tác với toán hạng đích Cờ này có thể được tạo ra bằng lệnh STC và bị xóa bằng lệnh CLC.

 Cờ chẵn lẻ PF (parity flag) được lập nếu kết quả của một phép xử lý có số bit bằng "1" là số chẵn

Cờ phụ AF (auxiliary flag) được sử dụng trong việc xử lý mã BCD, và nó sẽ được thiết lập khi các thao tác xử lý tạo ra hiện tượng carry hoặc borrow cho 4 bit thấp của toán hạng.

 Cờ zero ZF (zero flag) được lập nếu kết quả xử lý số liệu có kết quả bằng 0

 Cờ dấu SF (Sign flag) dấu tương ứng với MSB của kết quả phép toán, được lập với kết quả dương và xóa với kết quả âm

 Cờ tràn OF (Overflow flag) nếu kết quả phép toán là quá lớn cho toán hạng đích

 Các cờ điều khiển gồm:

Cờ hướng DF (direction flag) xác định hướng xử lý của chuỗi ký tự, cho phép xử lý từ địa chỉ cao đến thấp hoặc ngược lại Cờ này được thiết lập bằng lệnh STD và được xóa bằng lệnh CLD.

Cờ ngắt IF (Interrupt Enable Flag) cho phép CPU chấp nhận và phục vụ yêu cầu ngắt cứng khi được lập Cờ này được thiết lập thông qua lệnh STI và bị xóa bằng lệnh CLI.

 Cờ bẫy TF (Trao flag): Dừng trong gỡ rối chương trình (Debuger) không thể lập hay xóa trực tiếp bởi lệnh của máy

1.3.4 Thanh ghi con trỏ lệnh IP

Thanh ghi con trỏ lệnh IP (Instruction Pointer) là một thanh ghi 16 bits dùng để lưu giữ offset của địa chỉ lệnh tiếp theo trong chương trình Khi kết hợp với thanh ghi CS, IP hoạt động tương tự như thanh đếm chương trình PC trong vi xử lý 8085 Mỗi khi một từ lệnh được đọc từ bộ nhớ, BIU sẽ điều chỉnh giá trị của IP theo độ dài của từ lệnh, giúp nó trỏ đến từ lệnh kế tiếp trong bộ nhớ Đặc biệt, khi gặp các lệnh rẽ nhánh hoặc gọi chương trình con, giá trị của CS:IP có thể thay đổi đột ngột theo các địa chỉ được cung cấp bởi lập trình viên thông qua nhãn (Label) hoặc giá trị cụ thể trong chương trình.

1.3.5 Các thanh ghi dữ 1iệu

Có 4 thanh ghi dữ liệu:

- Thanh ghi tích lũy AX (Accummulator register) thường dùng để lưu giữ các kết quả xử lý

- Thanh ghi cơ sở BX (Base register) thường dùng chỉ địa chỉ cơ sở (đáy) của một vùng nhớ trong bộ nhớ

Thanh ghi đếm CX (Counter register) được sử dụng để xác định số lần thực hiện một thao tác trong các vòng lặp, phép dịch, và phép quay Mỗi khi thao tác được thực hiện, giá trị của thanh ghi CX sẽ giảm đi một đơn vị.

Các chế độ làm việc MIN/MAX

Vi xử lý àP8086 có hai chế độ làm việc: chế độ MIN và chế độ MAX, với chân số 33 đóng vai trò là chân bẫy để xác định chế độ hoạt động Do hạn chế của hệ thống 40 chân, một số chân sẽ thực hiện các chức năng khác tùy thuộc vào cách nối chân MN/MX Khi chân MN/MX được nối với GND (mức điện 0V), àP8086 sẽ chuyển sang chế độ MAX, và mạch điều khiển BUS 8288 sẽ giải mã các tín hiệu trạng thái S0, S1, S2 để tạo ra các tín hiệu điều khiển tương thích với cấu trúc MULTIBUSTM Ngược lại, khi chân này được nối với mức điện nguồn (+5V), àP8086 sẽ tự động tạo ra các tín hiệu điều khiển BUS trên các chân từ 24 đến 31.

Phương thức quản lý bộ nhớ, các mode địa chỉ

1.5.1 Phương thức quản lý bộ nhớ

BUS của àP8086 có độ dài 20 bits, cho phép quản lý 2^20 = 1M ô nhớ Mỗi tổ hợp "0" hoặc "1" trong 20 bits địa chỉ xác định vị trí của một ô nhớ Vì mỗi ô nhớ trong hệ Vi xử lý tương đương với 1 Byte, không gian nhớ mà àP8086 có khả năng quản lý là 1 Mbyte.

Thanh ghi của vi xử lý 8086 chỉ có độ dài 16 bits, giới hạn khả năng quản lý địa chỉ ở mức 64KB (2^16 ô nhớ) Để mở rộng khả năng quản lý lên 1MB (1.048.576 Bytes), vi xử lý 8086 sử dụng BUS địa chỉ với độ rộng 20 bits, kết hợp nội dung của hai thanh ghi 16 bits để thực hiện việc đánh địa chỉ bộ nhớ.

Hỡnh 2.7 Cỏch chia đoạn nhớ trong àP8086

Trong lập trình, không gian địa chỉ được chia thành các đoạn nhớ cố định 64kbytes, gọi là đơn vị logic của bộ nhớ Mỗi đoạn bao gồm các ô nhớ liên tiếp và độc lập, được định vị tách biệt Người lập trình gán cho mỗi đoạn một địa chỉ đoạn, tương ứng với địa chỉ ô nhớ đầu tiên, còn được gọi là địa chỉ nền Các địa chỉ đoạn liền kề cách nhau tối thiểu 16 Bytes, và các đoạn có thể kế cận hoặc tách rời nhau Bên trong mỗi đoạn, khoảng cách từ địa chỉ đoạn đến ô nhớ cụ thể được xác định bằng các giá trị lệch (offset).

Địa chỉ logic, được biểu diễn dưới dạng một cặp giá trị địa chỉ đoạn và giá trị lệch [segment]:[offset], cho phép xác định chính xác một Byte nhớ trong không gian địa chỉ Trong đó, địa chỉ đoạn được lưu trữ trong các thanh ghi đoạn, trong khi giá trị lệch được lưu trong các thanh ghi đa năng, con trỏ hoặc chỉ số.

Thanh ghi đoạn chứa 16 bit cao của 20 bit địa chỉ, trong khi giá trị dịch chuyển là 16 bit thấp Sự lệch nhau 4 bit được giải quyết bởi đơn vị địa chỉ của BIU Để tính địa chỉ vật lý của ô nhớ, thanh ghi đoạn được dịch trái 4 bit (tương đương với phép nhân 16) và sau đó cộng với giá trị dịch chuyển offset trong thanh ghi đa năng Công thức tính địa chỉ vật lý được biểu diễn như sau: Địa chỉ vật lý = 10H x (segment) + (offset).

Hình 2.8 Mô tả các cách tính địa chỉ vật lý của một vị trí nhớ

Thanh ghi đoạn là thanh ghi 16 bits dùng để xác định đoạn của ô nhớ, trong khi thanh ghi đa năng cũng là một thanh ghi 16 bits Thanh ghi đoạn có khả năng định địa chỉ tới 65.536 đơn vị (64K) đoạn nhớ, mỗi đoạn có dung lượng 64kbytes Do đó, vi xử lý 8086 có thể định địa chỉ tới 64K x 64kbytes, tương đương với 4Gbytes bộ nhớ.

Thanh ghi đoạn mã CS và thanh ghi con trỏ IP phối hợp để xác định địa chỉ logic của lệnh tiếp theo trong chương trình Cặp CS:IP chứa địa chỉ offset của lệnh kế tiếp, với các từ lệnh 80x86 có độ dài từ 1 đến 15 bytes Khi lệnh được thực hiện, giá trị của con trỏ IP sẽ tăng lên tương ứng với số bytes của từ lệnh Do đó, nội dung của thanh ghi IP và thanh ghi CS quyết định địa chỉ ô nhớ lệnh tiếp theo trong quá trình thực hiện chương trình.

1.5.2 Các mode đánh địa chỉ Định vị thanh ghi (register addressing): Toán hạng được truy xuất nằm ngay trong thanh ghi của CPU

Ví dụ: MOV AX,BX ; chuyển nội dung của toán hạng nguồn (nội dung của thanh ghi)

BX được đưa vào toán hạng đích AX, trong khi nội dung thanh ghi BX vẫn không thay đổi Định vị tức thời (immediate addressing) cho phép sử dụng dữ liệu 8 hoặc 16 bits nằm ngay trong lệnh như toán hạng nguồn hoặc hằng số Toán hạng tức thời được lưu trữ trong mã bộ nhớ ngay sau mã lệnh, giúp nó được truy xuất nhanh hơn so với việc lấy toán hạng từ bộ nhớ.

Ví dụ: MOV AL, 12H; nạp số 12H vào thanh ghi AL

Các kiểu định vị bộ nhớ cho phép CPU truy xuất toán hạng qua BUS dữ liệu, với địa chỉ vật lý của ô nhớ được xác định từ nội dung thanh ghi đoạn và offset Địa chỉ hiệu dụng (EA) được tính toán bởi đơn vị thực hiện lệnh, dựa trên cách mô tả địa chỉ trong toán hạng nguồn Ngoài các giá trị trực tiếp và thanh ghi cơ sở, có thể có giá trị số 8 bits hoặc 16 bits được cộng thêm, gọi là giá trị dịch chuyển (displacement).

Hình 2.9 Mô tả cách xác định địa chỉ vật lý của ô nhớ cần truy xuất

Định vị trực tiếp (direct addressing) trong lập trình là phương pháp mà toán hạng chứa địa chỉ được xác định bằng một số cụ thể trong lệnh Địa chỉ đoạn hiện tại được lưu trữ trong thanh ghi đoạn DS, giúp truy cập dữ liệu một cách nhanh chóng và hiệu quả.

Ví dụ: MOV CX,[1435H] ;chuyển nội dung ô nhớ có địa chỉ offset bằng

Trong đoạn số liệu hiện tại, giá trị 1435H được lưu trữ trong thanh ghi CX Địa chỉ hiệu dụng (EA) được xác định thông qua định vị gián tiếp thanh ghi, trong đó địa chỉ này là nội dung của một trong các thanh ghi BX, BP, SI hoặc DI.

Ví dụ: MOV AX, [SI] ; lệnh này chuyển dữ liệu từ ô nhớ có địa chỉ offset được xác định bởi thanh ghi SI vào thanh ghi AX Định vị cơ sở (based addressing) được sử dụng khi địa chỉ hiệu quả (EA) là tổng của giá trị trong thanh ghi BX hoặc một thanh ghi khác.

BP và giá trị dịch chuyển dp nếu có

Ví dụ: Lệnh MOV [BXI + dp, AL] chuyển nội dung từ thanh ghi AL vào ô nhớ có địa chỉ được tính bằng tổng của thanh ghi BX và giá trị dịch chuyển dp Trong phương thức định vị chỉ số (indexed addressing), địa chỉ hiệu quả (EA) được xác định bằng tổng của nội dung thanh ghi SI.

DI và giá trị dịch chuyển dp nếu có

Ví dụ: MOV AL,[SI] + dp; lệnh này chuyển nội dung ô nhớ tại địa chỉ được tính bằng tổng của giá trị trong thanh ghi SI và giá trị dịch chuyển dp vào thanh ghi AL Định vị chỉ số và cơ sở (indexed addressing) cho biết rằng địa chỉ hiệu dụng (EA) là tổng của nội dung các thanh ghi cơ sở, thanh ghi chỉ số và giá trị dịch chuyển dp nếu có.

Ví dụ, lệnh MOV AH,[BX][SI] + dp sẽ chuyển nội dung ô nhớ tại địa chỉ được tính bằng tổng của thanh ghi BX, thanh ghi SI và giá trị dịch chuyển vào thanh ghi AH Định vị chuỗi (string addressing) được sử dụng riêng cho xử lý chuỗi, với CPU tự động sử dụng các thanh ghi chỉ số nguồn SI và chỉ số đích DI để truy cập các byte tiếp theo.

Ví dụ: MOVS ;di chuyển chuỗi, nguồn tại vùng nhớ có địa chỉ đầu là DS: SI, đích là vùng nhớ có địa chỉ đầu DS: DI.

Hình 2.10 Quản lý bộ nhớ theo đoạn

Phương thức đánh địa chỉ thiết bị ngoại vi

Có hai phương thức cơ bản để đánh địa chỉ thiết bị ngoại vi: Định địa chỉ tách biệt (isolated I/O address) và Định địa chỉ tuyến tính (Linear Addressing I/O) Trong phương thức đầu tiên, các tín hiệu điều khiển phải phân biệt giữa thao tác ghi/đọc bộ nhớ và thiết bị ngoại vi Ví dụ, trong hệ Vi xử lý àP8085, các tín hiệu RD, RW và IO/M được giải mã thành các tín hiệu riêng cho bộ nhớ (MEMR, MEMW) và thiết bị ngoại vi (I/OR, I/OW) Đối với họ 80x86, việc điều khiển BUS giúp giải mã các tín hiệu nhịp đồng hồ thành các tín hiệu MRDC, MWTC, IORC và IOWC, cho phép truy cập thiết bị ngoại vi Ngược lại, trong định địa chỉ tuyến tính, thanh ghi của thiết bị ngoại vi được coi như một vị trí nhớ trong không gian nhớ, do đó không cần tín hiệu điều khiển riêng biệt cho việc trao đổi dữ liệu Điều này có nghĩa là mọi thao tác giữa CPU và các thanh ghi thiết bị ngoại vi diễn ra như với một ô nhớ trong bộ nhớ.

Chương trình và tập lệnh của P 8086

1.7.1 Sơ lược về lập trình hợp ngữ

Hợp ngữ (Assembly language) là một công cụ mạnh mẽ trong phát triển mã lệnh cho hệ vi xử lý và máy vi tính Nó hoạt động như một chương trình dịch các lệnh gợi nhớ (Mnemonics) và ký hiệu (symbols) thành mã máy mà các hệ vi xử lý có thể thực hiện Cần lưu ý rằng hợp ngữ là một chương trình, không phải là phần cứng.

Hợp ngữ nhận dữ liệu đầu vào dưới dạng các lệnh gợi nhớ và xuất ra các byte mã máy nhị phân, tạo ra mã thực thi có địa chỉ chính xác trong không gian nhớ chương trình.

Dữ liệu đầu vào trong lập trình được gọi là mã nguồn, trong khi dữ liệu đầu ra được gọi là mã thực thi hoặc mã đối tượng Quá trình chuyển đổi mã nguồn thành mã đối tượng được gọi là assembly, và công cụ phần mềm thực hiện quá trình này được gọi là hợp ngữ (assembler) Việc sử dụng lệnh dễ nhớ như MOV A,M rõ ràng thuận tiện hơn so với việc sử dụng mã hexa 7EH hoặc mã nhị phân 01111110B.

Hiện nay, có hai loại chương trình hợp ngữ phổ biến: Hợp ngữ thường trú (Resident Assemblers) được cài đặt trực tiếp trên hệ thống, và hợp ngữ chuyển đổi (Cross Assemblers) không cài đặt trên hệ thống mà nằm trên một máy chủ khác Mã chương trình được tạo ra từ hợp ngữ trên máy chủ không thể thực thi trên chính máy chủ đó.

Ngoài ra, còn có hai loại hợp ngữ khác là hợp ngữ tuyệt đối (Absolute Assembler) và hợp ngữ tái định vị (Relocatable Assemblers), sẽ được trình bày trong các bài học hợp ngữ tiếp theo.

1.7.2.Các bước khi lập trình

- Bước 1: Mở chương trình emu8086, chọn file \ new … Với các lựa chọn:

- New com template, new exe template, new bin template, new boot template

- Bước 3: dịch và gỡ rối (bấm F5)

- Bước 4: tạo file tự chạy: assembler \ Compile

Chương trình emu8086 là phần mềm mô phỏng lập trình cho vi xử lý 8086, tương thích với cả Intel và AMD Nó cho phép người dùng chạy toàn bộ chương trình hoặc từng bước một, đồng thời hiển thị các thanh ghi, bộ nhớ, stack và biến.

Hình 2.11 màn hình làm việc của chương trình emu8086

Hình 2.12 màn hình mô phỏng của chương trình emu8086

1.7.3 Cấu trúc chung của chương trình hợp ngữ a) Cấu trúc của một lệnh hợp ngữ

Một dòng lệnh trong chương trình hợp ngữ gồm có các trường sau:

Tên Lệnh Toán hạng Chú thích

LABEL: MOV AH,0FAH ;Đưa giá trị FAh vào thanh ghi AH

Trong lập trình, trường "tên" bao gồm nhãn, tên biến và tên thủ tục Nhãn có tối đa 31 ký tự, không được chứa ký tự trắng và không được bắt đầu bằng số Mỗi nhãn cần được kết thúc bằng dấu ':' để phân biệt.

Trường "lệnh" chứa các lệnh cần thực hiện, bao gồm lệnh thật (MOV) và lệnh giả (PROC) Các lệnh thật sẽ được chuyển đổi thành mã máy, trong khi trường "toán hạng" chứa các toán hạng cần thiết cho lệnh, ví dụ như AH, 10h.

Trường "chú thích" bắt đầu bằng dấu ';' và chỉ dành cho lập trình viên để ghi chú giải thích cho chương trình Tất cả nội dung phía sau dấu ';' sẽ bị chương trình dịch bỏ qua.

Cấu trúc thông thường của một chương trình hợp ngữ dạng file*.exe

TITLE Chương trình hợp ngữ

.MODEL Kiểu kích thước bộ nhớ ; Khai báo quy mô sử dụng bộ nhớ

.STACK Kích thước ;Khai báo dung lượng đoạn stack

.DATA ; Khai báo đoạn dữ liệu msg DB 'Hello$'

.CODE ; Khai báo đoạn mã main PROC

CALL Subname ; Gọi chương trình con

Subname PROC ; Định nghĩa chương trình con

 Quy mô sử dụng bộ nhớ:

Tiny Mã lệnh và dữ liệu nằm trong một đoạn

Small Mã lệnh trong một đoạn, dữ liệu trong một đoạn

Medium Mã lệnh không nằm trong một đoạn, dữ liệu trong một đoạn

Compact Mã lệnh trong một đoạn, dữ liệu không nằm trong một đoạn

Large Mã lệnh không nằm trong một đoạn, dữ liệu không nằm trong một đoạn và không có mảng nào lớn hơn 64KB

Huge Mã lệnh không nằm trong một đoạn, dữ liệu không nằm trong một đoạn và các mảng có thể lớn hơn 64KB

Thông thường, các ứng dụng đơn giản chỉ đòi hỏi mã chương trình không quá 64

KB và dữ liệu cũng không lớn hơn 64 KB nên ta sử dụng ở dạng Small: MODEL

CPU 8086 có thể truy nhập tối đa 1MB bộ nhớ RAM Dung lượng này là thừa để sử dụng cho bất kỳ loại máy tính nào

 Khai báo kích thước stack:

Khai báo stack là việc chỉ định một vùng nhớ cho stack, chủ yếu phục vụ cho các chương trình con Thông thường, kích thước stack được chọn là khoảng 256 byte; nếu không khai báo, trình biên dịch sẽ tự động đặt kích thước stack là 1 KB Cú pháp khai báo stack là: STACK 256.

Khai báo đoạn dữ liệu: Đoạn dữ liệu dùng để chứa các biến và hằng sử dụng trong chương trình

Khai báo đoạn mã là phần chứa các mã lệnh của chương trình, bắt đầu bằng chương trình chính và có thể bao gồm các lệnh gọi chương trình con (CALL) Mỗi chương trình chính hoặc chương trình con được xác định bằng lệnh PROC và kết thúc bằng lệnh ENDP, đây là các lệnh giả của chương trình dịch Trong chương trình con, lệnh RET được sử dụng để trả về địa chỉ lệnh trước khi gọi chương trình con.

Chương trình kết thúc bằng lệnh END, trong đó tên chương trình sau lệnh này xác định chương trình chính Nếu không có tên chương trình nào được chỉ ra sau lệnh END, chương trình con ở đầu đoạn mã sẽ được coi là chương trình chính.

Ví dụ: Chương trình sau in ra màn hình dòng chữ “Hello !”

.data s DB “Hello !$” ;khai báo xâu kí tự cần in

.code mov AX,@data ;lấy địa chỉ data segment ghi ;vào DS mov DS,AX ;Vì model small, đây cũng là ;địa chỉ

Đoạn mã trên thực hiện việc xuất một chuỗi từ biến xâu s Đầu tiên, nó lưu địa chỉ offset của xâu s vào thanh ghi DX Sau đó, chương trình gọi hàm 9 của ngắt 21h để in chuỗi ra màn hình Cuối cùng, nó sử dụng hàm 4Ch để thoát khỏi chương trình.

Mọi chương trình cần có đoạn mã để thoát khỏi, nếu không, chương trình sẽ không dừng lại khi hoàn thành Bên cạnh đó, khung chương trình sẽ được biên dịch thành tệp exe.

Các tập tin EXE và COM

Hệ điều hành DOS chỉ hỗ trợ thực thi các tập tin có định dạng COM và EXE, trong đó tập tin COM thường được sử dụng cho các chương trình nhỏ, trong khi tập tin EXE thường dành cho các chương trình lớn hơn.

- Nằm trong nhiều đoạn khác nhau, kích thước thông thường lớn hơn 64 KB

- Có thể gọi được các chương trình con dạng near hay far

- Tập tin EXE chứa một header ở đầu tập tin để chứa các thông tin điều khiển cho tập tin data segment

; add your data here! pkey db "press any key to exit $" ends stack segment dw 128 dup(0) ends

; add your CODE here lea dx, pkey

MOV ah, 9 int 21h ; output string at ds:dx

MOV ax,4c00h ; exit to operating system int 21h ends

END start ; set entry point and stop the assembler c) Khung chương trình dịch ra file.com

- Tập tin COM chỉ có một đoạn nên kích thước tối đa của một tập tin loại này là

- Tập tin COM được nạp vào bộ nhớ và thực thi nhanh hơn tập tin EXE nhưng chỉ áp dụng được cho các chương trình nhỏ

- Chỉ có thể gọi các chương trình con dạng near

Cấu trúc và tính năng của một số chíp vi xử lý hiện đại

Bộ nhớ trong hệ vi xử lý

Tổ chức bộ nhớ cho hệ vi xử lý

Ghép nối bàn phím với hệ vi xử lý

Bài tập thực hành vi xử lý 8086

Ngày đăng: 31/12/2021, 09:25

HÌNH ẢNH LIÊN QUAN

3.1.3. Hình ảnh - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
3.1.3. Hình ảnh (Trang 16)
Hình 1.3. Phân loại các dạng dữ liệu cơ bản. - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 1.3. Phân loại các dạng dữ liệu cơ bản (Trang 21)
Bảng 1.4. Quy tắc phép trừ số hệ hai - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Bảng 1.4. Quy tắc phép trừ số hệ hai (Trang 23)
Hình 1.7. Sơ đồ PROM - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 1.7. Sơ đồ PROM (Trang 27)
Hình 1.12. Sơ đồ giản lược - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 1.12. Sơ đồ giản lược (Trang 29)
Bảng thông số kỹ thuật cơ bản của các trung tâm Vi xử lý họ 80 - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Bảng th ông số kỹ thuật cơ bản của các trung tâm Vi xử lý họ 80 (Trang 35)
Hỡnh 2.2.  Cấu trỳc cỏc khối chức năng àP8086 - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
nh 2.2. Cấu trỳc cỏc khối chức năng àP8086 (Trang 36)
Hình 2.3. Các thanh ghi trong các trung tâm Vi xử lý họ 80x86 - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 2.3. Các thanh ghi trong các trung tâm Vi xử lý họ 80x86 (Trang 37)
Hình 2.4. Về khái niệm địa chỉ đoạn và địa chỉ offsel - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 2.4. Về khái niệm địa chỉ đoạn và địa chỉ offsel (Trang 38)
Hình 2.6. Vi trí các cờ trong thanh ghi cờ của họ Vi xử /ý 80x86 - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 2.6. Vi trí các cờ trong thanh ghi cờ của họ Vi xử /ý 80x86 (Trang 40)
Hỡnh  2.7. Cỏch chia đoạn nhớ trong àP8086 - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
nh 2.7. Cỏch chia đoạn nhớ trong àP8086 (Trang 43)
Hình 2.9. Mô tả cách xác định địa chỉ vật lý của ô nhớ cần truy  xuất - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 2.9. Mô tả cách xác định địa chỉ vật lý của ô nhớ cần truy xuất (Trang 45)
Hình 2.10. Quản lý bộ nhớ theo đoạn - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 2.10. Quản lý bộ nhớ theo đoạn (Trang 46)
Hình 2.12. màn hình mô phỏng của chương trình emu8086 - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 2.12. màn hình mô phỏng của chương trình emu8086 (Trang 49)
Hình 2.13. Chu kỳ máy - Giáo trình Lập trình vi xử lý (Nghề: Điện tử công nghiệp) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 2.13. Chu kỳ máy (Trang 67)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN