Đề cương chi tiết môn học kỹ thuật vi xử lý đh sư phạm kỹ thuật nam định - Pdf 32

ĐỀ CƯƠNG CHI TIẾT MÔN HỌC
1. Tên môn học: Kỹ thuật vi xử lý.
2. Phân bố thời gian:
45 tiết ( 3 trình ).
3. Môn tiên quyết:
Kỹ thuật vi xử lý là môn học quan trọng trong việc nghiên cứu phần cứng máy tính.
Các kiến thức môn học cần có để phục vụ cho môn học này bao gồm:
• Kỹ thuật điện tử số (2 mức: 0, 1, bộ nhớ).
• Kiến trúc máy tính.
4. Đối tượng học:
Sinh viên ngành Kỹ thuật máy tính, Điều khiển tự động, Điện tử viễn thông, Kỹ thuật
điện tử, Công nghệ thông tin.
5. Mô tả môn học:
Trang bị cho sinh viên những kiến thức cơ bản nhất có tính chất hệ thống liên quan
đến kỹ thuật VXL. Trang bị cho sinh viên khả năng tư duy trong nghiên cứu, tiếp cận với
các hệ VXL tiên tiến, hiện đại hơn. Ngoài ra học phần còn giúp cho sinh viên dễ dàng hơn
trong việc xây dựng các chương trình điều khiển thiết bị ghép nối với máy tính.
Nội dụng cụ thể bao gồm các phần cơ bản sau:
• Khái niệm, cấu trúc và nguyên lý hoạt động của một hệ VXL.
• Bộ VXL 8088/8086.
• Các ghép nối cơ bản của 8088/8086 với thiết bị ngoại vi.
• Các phương thức đièu khiển vào ra dữ liệu trong kỹ thuật VXL.
6. Nhiệm vụ của sinh viên:
Sinh viên phải tham gia đủ trên 80% giờ trên lớp. Phải hoàn thành đầy đủ bài tập và
các bài thực hành trong chương trình.
7. Nội dung giảng dậy
Chương 1 Hệ vi xử lý
1.1. Vi xử lý là gì?
1.2. Các thế hệ của bộ vi xử lý
1.2.1.
Thế hệ 1 (1971 đến 1973)

2.2.3.
Chế độ địa chỉ tực tiếp
2.2.4.
Chế độ địa chỉ gián tiếp qua thanh ghi
2.2.5.
Chế độ địa chỉ tương đối cơ sở
2.2.6.
Chế độ địa chỉ tương đối chỉ số
2.2.7.
Chế độ địa chỉ tương đối chỉ số cơ sở
2.3. Mô tả tập lệnh của 8088
2.3.1.
Nhóm lệnh chuyển dữ liệu
2.3.2.
Nhóm lệnh số học
2.3.3.
Nhóm lệnh logic, dịch và quay
2.3.4.
Nhóm lệnh so sánh
2.3.5.
Nhóm lệnh rẽ nhánh (nhảy), lặp
2.3.6.
Nhóm các lệnh đặc biệt
Chương 3 Lập trình bằng hợp ngữ cho 8088 trên máy tính IBM PC và
các máy tương thích IBM PC
3.1. Giới thiệu chung
3.2. Giới thiệu khung chương trình
3.2.1.
Cấu trúc của một lệnh hợp ngữ
3.2.2.

4.2.2.
Giải mã địa chỉ cho bộ nhớ
4.2.3.
Phối ghép 8088 với bộ nhớ
4.3. Phối ghép 8088 với thiết bị ngoại vi
4.3.1.
Các kiểu phối ghép vào ra
4.3.2.
Giải mã địa chỉ cho thiết vị vào/ra

Nguyễn văn Hải- Bài giảng Kỹ thuật vi xử lý[email protected]

2


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

4.3.3.
Các mạch cổng đơn giản
4.3.4.
Mạch phối ghép vào/ra song song lập trình được PPI 8255
Chương 5 Vào ra dữ liệu bằng cách thăm dò
5.1. Giới thiệu chung về các phương pháp điều khiển vào/ra dữ liệu
5.2. Vào/ra dữ liệu bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại
vi
Chương 6 Ngắt và xử lý ngắt trong hệ vi xử lý 8088
6.1. Sự cần thiết phải ngắt CPU
6.2. Ngắt trong vi xử lý 8088
6.2.1.
Các loại ngắt trong hệ 8088

• Giúp sinh viên làm quen với các cấu trúc lập trình cơ bản bằng hợp ngữ.
• Biết cách so sánh và kiểm tra dữ liệu thông qua các cờ.
Bài 4: Các thao tác Logic.

Nguyễn văn Hải- Bài giảng Kỹ thuật vi xử lý[email protected]

3


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

Mục đích:
• Giúp sinh viên làm quen với các cấu trúc lập trình cơ bản bằng hợp ngữ.
• Giúp sinh viên khảo sát các thao tác đại số BOOLEAN theo phương thức mà chúng
tác động trên các thanh ghi và dữ liệu trong bộ nhớ.
Bài 5: Chương trình con và truyền tham số.
Mục đích:
• Giúp sinh viên làm quen với các cấu trúc lập trình cơ bản bằng hợp ngữ.
• Giúp sinh viên làm quen với cấu trúc lập trình theo chương trình con, truyền tham số
cho chương trình con.
Bài 6: Vào ra dữ liệu với các cổng.
Mục đích:
• Giúp sinh viên làm quen với các kiểu giao tiếp giữa vi xử lý với các thiết bị ngoài.
• Biết cách lập trình đặt các chế độ làm việc cho các cổng giao tiếp của bộ điều khiển
ghép nối.
9. Tài liệu tham khảo:
[1] Văn Thế Minh, Kỹ thuật vi xử lý, NXB Giáo Dục, 1997.
[2] Đỗ Xuân Thụ & Hồ Khánh Lâm, Kỹ thuật vi xử lý và máy vi tính, ...
[3] Đỗ Xuân Tiến, Kỹ thuật lập trình điều khiển hệ thống, ...
[4] Lê Văn Doanh & Phạm Khắc Chương, Kỹ thuật vi điều khiển, ...


NỘI DUNG CHI TIẾT
Chương 1
HỆ VI XỬ LÝ
1.1.

Vi xử lý là gì?

Ngày nay xu hướng số hoá mọi dạng tín hiệu càng được khẳng định rõ nét trong nhiều
lĩnh vực: Điện tử, tin học, viễn thông, công nghệ thông tin, kỹ thuật điều khiển tự động ... vì
tín hiệu số có cấu trúc đơn giản, dễ tính toán, xử lý và gia công ...
Việc xử lý, tính toán, điều khiển được thực hiện chủ yếu trên các máy tính PC (Hay hệ
vi xử lý nói chung). Các hệ vi xử lý này thường được ghép nối và giao tiếp với nhiều thiết bị
ngoại vi khác nhau. Mỗi thiết bị làm việc ở môi trường khác nhau cũng như chức năng,
nhiệm vụ khác nhau.
Môi trường của thiết bị có thể là:
• Điện, điện tử.
• Cơ, cơ điện.
• Quang điện tử, ...
Chức năng, nhiệm vụ của thiết bị như:
• Thông tin vô tuyến, hữu tuyến.
• Kỹ thuật viễn thông.
• Robốt, máy công cụ, dây truyền sản xuất tự động.
Các hệ thống làm nhiệm vụ xử lý và điều khiển nói chung luôn có một thành phần làm
nhiệm vụ xử lý được chế tạo bằng công nghệ vi điện tử với độ tích hợp cao và rất cao,
chúng thường được gọi là các bộ vi xử lý (MicroProcessor). Các bộ vi xử lý hoạt động (làm
việc) theo chương trình, dùng để tính toán và điều khiển mọi hoạt động của hệ thống.
Việc xây dựng các chương trình điều khiển các thiết bị cho chúng làm việc chính xác,
đồng bộ là rất phức tạp. Các hệ thống càng thông minh thì vai trò của bộ vi xử lý càng quan
trọng.

 Đặc điểm của các bộ vi xử lý trong khoảng thời gian này là:
Tập lệnh phong phú hơn.
Là các bộ vi xử lý 8 bit dữ liệu.
Khả năng phân biệt địa chỉ bộ nhớ lên tới 64 KB (16 bit địa chỉ).
Khả năng phân biệt địa cổng là 256 cổng cho thiết bị ngoại vi (sử dụng 8 bit
để đánh địa chỉ cho các cổng).
o Tốc độ 1 ÷ 8 (µs/lệnh).
o Tần số đồng hồ: fCLK = 1 ÷ 5 MHz.
o
o
o
o

 Ứng dụng:
o Điều khiển các hệ thống trong công nghiệp.
o Chế tạo các máy tính 8 bit như Apple II.
1.2.3.

Thế hệ 3 (1978 đến 1982)

Trong khoảng thời gian này Intel lần lượt cho ra đời các bộ VXL 8086, 8088, 80186,
80286. Motorola có các bộ VXL 68000, 68010
 Đặc điểm của các bộ vi xử lý trong khoảng thời gian này là:
Là các bộ vi xử lý 16 bit dữ liệu.
Tập lệnh đầy đủ hơn.
Khả năng phân biệt địa chỉ bộ nhớ từ 1 MB đến 16 MB.
Khả năng phân biệt địa chỉ cổng là 64 K cổng cho thiết bị ngoại vi (đối với
các bộ VXL của Intel).
o Tốc độ 0,1 ÷ 1 (µs/lệnh).
o Tần số đồng hồ: fCLK = 5 ÷ 10 MHz.


o Có bộ quản lý bộ nhớ (MMU), bộ đồng xử lý toán học được tích hợp bên
trong.
o Tốc độ 6 ÷ 112 (triệu lệnh/µs).
o Tần số đồng hồ: fCLK = 10 ÷ 100 MHz và cao hơn nữa.
 Ứng dụng:
o Chế tạo các máy tính có tốc độ cao, các máy chủ đáp ứng cho các xử lý lớn
như thống kê hàng ngày tại các ngân hàng, khí tượng thuỷ văn, mô phỏng các
quá trình, lĩnh vực quân sự ...
o Các máy tính hiện nay.
1.3.

Giới thiệu cấu trúc của hệ vi xử lý

Chúng ta đã được tìm hiểu qua về sự ra đời và vị trí của các bộ vi xử lý. Bộ VXL là
thành phần cơ bản (trái tim) của máy tính, nó được kết hợp với các bộ phận mạch điện tử
khác như bộ nhớ (bộ nhớ bán dẫn), bộ phối ghép vào ra để tạo nên hệ vi xử lý nói chung mà
máy tính là một trường hợp ứng dụng của thể của hệ vi xử lý.
Data bus
Control bus

CPU

Memory
ROM
RAM

I/O
Interfacing



7


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

o Thực hiện lệnh, xử lý dữ liệu.
 Nguyên tắc hoạt động
Hoạt động theo chương trình nằm trong bộ nhớ. Nó nhận lần lượt nhận từng lệnh từ
bộ nhớ, các lệnh được ghi dưới dạng các bit 0, 1 sau đó giải mã lệnh thành các xung điều
khiển tương ứng các thao tác của lệnh để điều khiển các khối chức năng thực hiện các thao
tác đó. Quá trình thực hiện trên bao gồm cả trao đổi dữ liệu với bộ nhớ. Để thực hiện được
như trên, bên trong CPU có thanh ghi lưu địa chỉ của lệnh chuẩn bị được thực hiện, gọi là
thanh ghi con trỏ lệnh (Instruction Pointer - PC), hay còn được gọi là bộ đếm chương trình
(Program Counter - PC).
 Các thành phần cơ bản của bộ vi xử lý:
o Đơn vị điều khiển (Control Unit - CU): điều khiển hoạt động chính của CPU và các
thành phần khác của hệ theo chương trình đã định (dãy các lệnh) bằng các xung
điều khiển.
o Đơn vị số học và logic (Arithmetic and Logic Unit - ALU): thực hiện chức năng xử
lý dữ liệu (tính toán) như cộng, trừ, nhân, chia, NOT, AND, OR ...
o Tập thanh ghi (Registers Set): là các ngăn nhớ đặc biệt nằm ngay trong CPU để tăng
tốc độ trao đổi dữ liệu. Một số thanh ghi lưu trữ thông tin tạm thời phục vụ cho việc
thực hiện chương trình.
o Bus bên trong (Internal Bus): Hệ thống bus trong CPU là tập các đường dây làm
nhiệm vụ kết nối, vận chuyển thông tin (tín hiệu) giữa các thành phần với nhau.
1.3.2.

Bộ nhớ bán dẫn (ROM, RAM)



TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

Hệ thống bus là tập các đường dây dùng để kết nối, trao đổi thông tin từ các phần mạch
này tới các thành phần khác (các khối) trong phạm vi một máy tính (1 hệ vi xử lý).
Độ rộng bus là số bit thông tin được vận chuyển đồng thời trong một chu kỳ bus.
 Bus địa chỉ
Theo sự phát triển các bộ vi xử lý, độ rộng bus địa chỉ tăng từ 16, 20, 24 và 32 bit. Bus
địa chỉ dùng để vận chuyển địa chỉ từ CPU đến bộ nhớ hay mạch phối ghép vào/ra để tìm ra
ngăn hay nhớ cổng vào/ra cần trao đổi dữ liệu.
o Khả năng phân biệt địa chỉ của CPU phụ thuộc độ rộng bus địa chỉ.
o Bus địa chỉ gồm An-1 ÷ A0 (n bit)  có thể quản lý được 2n địa chỉ.
o Độ rộng bus địa chỉ cho biết khả năng phân biệt và quản lý không gian nhớ.
 Bus dữ liệu
Độ rộng bus dữ liệu thường là 8, 16, 32 và 64 tuỳ theo các bộ vi xử lý. Ngày nay các bộ
vi xử lý thường làm việc với bus dữ liệu có độ rộng 64 bit, thậm chí là 128 bit. Độ rộng bus
dữ liệu quyết định số bit dữ liệu mà CPU có khả năng nhận hay gửi (đọc/ghi) hay xử lý
cùng lúc.
Bus dữ liệu là bus 2 chiều, dữ liệu có thể được truyền từ CPU đến bộ nhớ hay cổng
vào/ra hoặc ngược lại.
 Bus điều khiển
Độ rộng bus điều khiển thường nhỏ hơn độ rộng bus địa chỉ và bus dữ liệu. Mỗi tín
hiệu điều khiển có một chiều nhất định. CPU có thể gửi các tín hiệu điều khiển tới các khối
đồng thời nó cũng nhận tín hiệu điều khiển từ các khối gửi đến. Trong chừng mực nào đó có
thể coi bus điều khiển là 2 chiều. Tính 2 chiều không phải của một tín hiệu điều khiển cụ thể
nào mà là của một nhóm tín hiệu.
o Các tín hiệu phát ra từ CPU: MEMR (tín hiệu điều khiển đọc bộ nhớ),
MEMW (tín hiệu điều khiển ghi bộ nhớ), IOR (tín hiệu điều khiển đọc cổng
vào ra), IOW (tín hiệu điểu khiển ghi cổng vào ra).
o Tín hiệu điều khiển ngắt: INTR.

o
o

Số thanh ghi: 14 thanhg ghi 16 bit.
Bus địa chỉ: 20 bit.
Bus dữ liệu: 16 (8086) và 8 (8088).
Tập lệnh: 115 (là số lệnh được công bố trong nhiều tài liệu).
Tốc độ chuẩn: 4.77 MHz.
Số chân của bộ vi xử lý: 40.

Bộ vi xử lý 8086 của Intel được phát triển từ năm 1978 vào đưa vào thị trường từ năm
1980. Đây là bộ vi xử lý 16 bit bán hoàn chỉnh, các thanh ghi bên trong là 16 bit và nó xử lý
16 bit dữ liệu cùng một lúc, 8086 liên hệ với kênh số liệu bên ngoài bằng bus dữ liệu 16 bit
và bus địa chỉ là 20 bit.
Bộ vi xử lý 8088 ra đời sau 8086, nó có cấu trúc bên trong và tập lệnh hoàn toàn giống
của 8086, chỉ khác 8086 ở kênh truyền dữ liệu với bên ngoài. 8088 sử dụng kênh dữ liệu 8
bit nên việc truyền dữ liệu giữa các thanh ghi trong nó với bộ nhớ chậm hơn so với 8086.
Đây là một bước lùi về kỹ thuật nhưng đem lại nhiều lợi ích về kinh tế. Tại thời điểm lịch sử
đó, bus DataMaster 8 bit đang được sử dụng rộng rãi trên thị trường, nhiều loại card mở
rộng và các chip hỗ trợ có sẵn trên thị trường là loại 8 bit nên giá thấp hơn loại 16 bit tương
ứng. Việc sử dụng bus dữ liệu 8 bit giúp cho người sử dụng khi nâng cấp máy có thể tận
dụng được các card 8 bit trong các máy cũ cũng như chỉ phải mua mới với giá thấp. Đồng
thời cũng giúp cho các nhà sản xuất các máy tương thích với IBM PC có thêm nhiều cơ hội
lựa chọn sản phẩm của các hãng khác nhau. Chiến lược phát triển có tính kế thừa như vậy
đã góp phần làm cho khách hàng của IBM ngày một gia tăng.
 Chọn bộ vi xử lý 8088 để nghiên cứu vì:
o Tập lệnh chung cho các bộ vi xử lý nói trên.
o Tính phức tạp vừa phải, phù hợp với những người mới tìm hiểu.
2.1.2.


con trỏ
và chỉ số

AX
BX
CX
DX
SP
BP
SI
DI

EU

Bus địa chỉ (20 bit)

các thanh ghi đoạn
và con trỏ lệnh

BIU

Bus dữ liệu
(8 bit)

CS
DS
SS
ES
IP


• BX (Base): Thanh ghi cơ sở, thường được dùng để chứa địa chỉ cơ sở cần truy nhập
trong lệnh XLAT. BX có thể được phân chia thành BH (Phần cao) và BL (Phần
thấp).
• CX (Count): Bộ đếm, thường được dùng để đếm số lần lặp của công việc (số lần lặp
trong các vòng lặp). CX có thể được phân chia thành CH (Phần cao) và CL (Phần

Nguyễn văn Hải- Bài giảng Kỹ thuật vi xử lý[email protected]

11


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

thấp). CX thường được dùng để chứa số lần lặp trong các lệnh LOOP, còn CL
thường chứa số lần dịch hoặc quay trong các lệnh dịch quay thanh ghi.
• DX (Data): Thanh ghi đữ liệu, sử dụng để chứa toán hạng, kết quả. DX cùng AX
dùng để chứa toán hạng hoặc kết quả của các phép nhân, chia số 16 bit. DX còn chứa
địa chỉ cổng trong các lệnh vào ra trực tiếp (IN, OUT). DX có thể được phân chia
thành DH (Phần cao) và DL (Phần thấp).
AH
BH
CH
DH

AL
BL
SP
CL
BP
DL

Hình vẽ: Bộ vi xử lý 8088 và tập thanh ghi

Code
Segment
Các
thanh
ghi con trỏ, chỉ số

Data
Các thanh ghi SP, BP là các thanh ghi con trỏ
khôngSegment
tách rời.

Stack Segment

Segment
Registers

• SP (Stack Pointer): Thanh ghi con trỏExtra
ngăn xếp,
trỏ vào đỉnh hiện thời của ngăn xếp
Segment
nằm trong đoạn ngăn xếp SS (Nó luôn kết hợp với thanh ghi SS). Ta có địa chỉ logic
SS: SP. Sau mỗi thao tác cất một word vào stack (thao tác Push) thì SP tự động giảm
2 đơn vị, còn sau thao tác lấy một word ra khỏi stack (thao tác Pop), SP được tự động
tăng 2 đơn vị.
• BP (Base stack Pointer): Con trỏ cơ sở, luôn trỏ vào một dữ liệu cụ thể nằm trong
đoạn ngăn xếp SS. Ta có địa chỉ logic SS: BP.
• SI (Source Index): Thanh ghi chỉ số nguồn (hay nguồn), chỉ vào dữ liệu nằm trong
đoạn DS. Ta có địa chỉ logic DS: SI.

T S

6 5 4 3 2 1 0
Z x A x P x C
Các cờ của bộ vi xử lý 8085
(x: Không được định nghĩa (don't care), với 8 bit thấp là các cờ của bộ vi xử lý 8085)
Hình vẽ: Sơ đồ thanh ghi cờ của 8088/86
• Cờ trạng thái: Biểu diễn trạng thái phép toán vừa thực hiện.
 CF (Carry Flag): Cờ nhớ (cờ tràn).
CF = 1 (CY - CarrY) khi kết quả phép toán vượt (tràn) khuôn khổ biểu diễn (có nhớ
(mượn) lên trên (từ) MSB), CF = 0 (NC - No Carry) trong trường hợp ngược lại. Cờ này
thường được sử dụng khi thực hiện các phép cộng, trừ các số nhiều byte.
Ví dụ:
1011 0001
+ 0110 1001
10001 1010
 PF (Parity Flag): Cờ chẵn lẻ.
PF = 1 (PE - Parity Even) khi số bit 1 trong kết quả phép toán (hay các phép vận
chuyển dữ liệu) là chẵn, PF = 0 (PO - Parity Old) trong trường hợp ngược lại.
 AF (Carry Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ).
Cờ này có ý nghĩa khi ta làm việc với số BCD. AF = 1 (AC - Auxiliary Carry) khi có
nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit cao) và AF = 0
(NA - No Auxiliary carry) trong trường hợp ngược lại.
 SF (Sign Flag): Cờ dấu. Trong bộ vi xử lý 8088/8086 các số âm được biểu diễn
dưới dạng số bù 2, nên phải dùng cờ SF để chỉ thị dấu của kết quả.
SF = 1 (NG - NeGative), khi kết quả phép toán là một số âm, SF = 0 (PL- PLus)
trong trường hợp ngược lại.
 ZF (Zero Flag): Cờ rỗng.
ZF = 1 (ZR - ZeRo) khi kết quả phép toán = 0, ZF = 0 (NZ-Non Zero) trong trường
hợp ngược lại.

 BIU
• Hàng đợi: Là tập thanh ghi
Với 8086 hàng đợi lệnh là 6 byte, 8088 hàng đợi
lệnh là 4 byte nên chứa được tối đa là 4 lệnh. CPU chứa
tập thanh ghi theo kiểu LIFO.
Cơ chế:
 Đọc lệnh (lấy lệnh)
 Giải mã lệnh
 Thực hiện
• Thanh ghi IP: Thanh ghi con trỏ lệnh, trỏ vào lệnh tiếp theo chuẩn bị được thực hiện
nằm trong đoạn CS (CS: IP). Sau khi đọc 1 byte, IP tự động tăng thêm 1. Như vậy
thực tế thì cặp CS:IP mới là con trỏ lệnh vì nó chứa địa chỉ đầy đủ của một lệnh trong
bộ nhớ.
• Thanh ghi đoạn:
 CS (Code Segment): Thanh ghi đoạn mã, là thanh ghi địa chỉ đoạn mã lệnh, chứa
địa chỉ cơ sở (địa chỉ đoạn) của chương trình đang thực hiện.
 DS (Data Segment): Thanh ghi đoạn dữ liệu, là thanh ghi địa chỉ đoạn dữ liệu,
chứa địa chỉ đoạn của vùng dữ liệu mà chương trình đang thực hiện sử dụng.
Vùng này thường chứa các biến của chương trình.
 SS (Stack Segment): Thanh ghi đoạn ngăn xếp, là thanh ghi địa chỉ đoạn bộ nhớ
ngăn xếp (stack) của chương trình đang chạy.
 ES (Extra Segment): Thanh ghi đoạn dữ liệu phụ, là thanh ghi địa chỉ đoạn dữ
liệu bổ sung mà chương trình đang thực hiện sử dụng. Vùng này cũng thường
chứa các biến của chương trình.
8088 có 20 bit địa chỉ, trong khi đó các thanh ghi quản lý bộ nhớ là 16 bit. Để xác định
một ngăn nhớ có địa chỉ 20 bit, dùng 2 thanh ghi 16 bit để xác định địa chỉ.
Địa chỉ luôn nằm trong một thanh ghi gọi là địa chỉ đoạn.

Nguyễn văn Hải- Bài giảng Kỹ thuật vi xử lý[email protected]


2.2.1.

Chế độ địa chỉ thanh ghi

Dùng thanh ghi như là các toán hạng chứa dữ liệu cần thao tác, tốc độ thực hiện lệnh rất
nhanh vì CPU không mất thời gian tìm kiếm dữ liệu.
Ví dụ:

2.2.2.

MOV AL, BL

; AL:= BL

MOV DS, BX

; DS:= BX

ADD AL, DL

; AL:= AL + DL

Chế độ địa chỉ tức thì

Toán hạng đích là thanh ghi, hoặc ô nhớ. Toán hạng nguồn là 1 giá trị cụ thể (hằng số).
Ví dụ:
MOV AL, 0Dh

; AL:=0Dh



Chế độ địa chỉ tương đối cơ sở

Thanh ghi BX, BP và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ trong DS,
SS chứa giá trị cần thao tác.
Ví dụ:
MOV [BX + N], CL

; Đưa nội dung thanh ghi CL vào ngăn nhớ có địa

chỉ
; offset BX + N (DS:BX + N)
MOV AL, [BP + N]; Đưa nội ngăn nhớ có địa chỉ offset BP + N vào thanh
; ghi AL (SS:BP + N)
2.2.6.

Chế độ địa chỉ tương đối chỉ số

Thanh ghi DI, SI và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ chứa giá trị
trong DS cần thao tác.
Ví dụ:
MOV [SI + N], AH ; Đưa nội dung thanh ghi AH vào ngăn nhớ có địa chỉ
; offset tại SI + N (DS:SI + N).
MOV CL, [DI + N] ; Đưa nội dung ngăn nhớ có địa chỉ offset tại DI + N
; (DS:DI + N) vào thanh ghi CL.
2.2.7.

Chế độ địa chỉ tương đối chỉ số cơ sở

Chế độ địa chỉ này là sự kết hợp cả 2 chế độ địa chỉ trên. Dùng cả thanh ghi cơ sở và

byte hoặc một word (từ). Các toán hạgn có thể được tìm thấy qua các chế độ địa chỉ khác
nhau. Lệnh này không tác động đến các cờ.
LDS đích, nguồn (Load Register and DS with Word from Memory)
Lệnh thực hiện nạp một word từ bộ nhớ vào thanh ghi cho trong lệnh và một word tiếp
theo vào thanh ghi DS (đích
OUT Acc, Port (Output a byte or a word to a port)
Đưa dữ liệu từ thanh ghi Acc đến cổng vào/ra.
Acc => Port.
Lệnh này thao tác ngược lại với lệnh IN, tính chất hoàn toàn tương tự. Lệnh này không
tác động đến các cờ.
STC (Set the Carry fag): Lập cờ nhớ: CF
Các toán hạng đích, nguồn tìm được theo các chế độ địa chỉ, phải chứa dữ liệu cùng độ
dài (cùng kiểu). Không được là 2 ô nhớ và không được là thanh ghi đoạn. Điều này áp dụng
hầu hết cho tất cả các lệnh số học có cú pháp tương tự.
Lệnh cập nhật các cờ: AF, CF, OF, PF, SF, ZF.
+ ADD đích, nguồn (Add: cộng 2 toán hạng có nhớ)
đích
'nguồn') thì 8088/8086 thực hiện ngắt INT 0.
Không xác định các cờ: AF, CF, OF, PF, SF, ZF.
IMUL nguồn (Integer Multiplication (Multiply signed Number))
Nhân số có dấu. Toán hạng 'nguồn' là số nhân, có thể tìm được theo các chế độ địa chỉ.
Tuỳ theo độ dài (kích thước) toán hạng 'nguồn' mà ta có các trường hợp sau:
 'nguồn' là 8 bit (1 byte): AX
Lệnh này không tác động đến các cờ.
Lệnh này thuộc nhóm lệnh vận chuyển dữ liệu.

Nguyễn văn Hải- Bài giảng Kỹ thuật vi xử lý[email protected]

21


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

2.3.3.

Nhóm lệnh logic, dịch và quay

 Các lệnh logic
NOT đích (Invert Each bit of an Operand (From its 1's Complement))
Lệnh lấy bù 1 của một toán hạng (đảo bit của một toán hạng). Toán hạng đích tìm được
theo các chế độ địa chỉ.
đích
Toán hạng đích tìm được theo các chế độ địa chỉ. Hai lệnh này có cùng tác động là dịch
trái số học (còn gọi là dịch trái logic). Mỗi lần dịch MSB được đưa qua cờ CF và giá trị 0
được đưa vào LSB, thao tác như vậy được gọi là dịch logic. CL phải chứa sẵn số lần dịch
mong muốn.
Trong trường hợp muốn dịch 1 lần, ta viết lệnh trực tiếp: SAL đích, 1
Ứng dụng: Mỗi lần dịch, tương đương việc nhân
toán hạng với 2 của số không dấu. Vậy nếu muốn nhân
một số không dấu với 2i thì ta dịch trái số bị nhân đi i
lần. Nói chung lệnh này chạy nhanh hơn lệnh MUL.

CF

MSB

LBS
0

Cờ OF

Nguyễn văn Hải- Bài giảng Kỹ thuật vi xử lý[email protected]

23


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

Toán hạng đích tìm được theo các chế độ địa chỉ. Lệnh có tác dụng quay vòng toán hạng
sang trái. MSB được đưa qua cờ CF và LSB. CL phải chứa CF MSB
LBS
sẵn số lần quay.
Trong trường hợp muốn quay 1 lần, ta viết lệnh trực tiếp:
ROL đích, 1
Ta thấy, nếu CL=8 và toán hạng đích là 8 bit thì kết quả không bị thay đổi vì toán hạng
quay tròn đúng 1 vòng, còn nếu CL=4 thì 2 nibble của toán hạng bị đổi chỗ cho nhau.
Cờ OF
RCR đích, 1
Ta thấy, nếu CL=9 và toán hạng đích là 8 bit thì kết quả không bị thay đổi vì CF cùng
với toán hạng thanh ghi (8 bit) quay đúng một vòng.
Cờ OF
đến đích Nhãn
Lệnh mới bắt đầu tại địa chỉ ứng với nhãn 'Nhãn'. Lệnh Jmp có thể nhảy lên (về phía địa
chỉ thấp) hoặc nhảy xuống (về phía địa chỉ cao) và có thể nhảy xa được tối đa 1/2 đoạn
(64Kbyte)
Lệnh này không tác động đến các cờ.
 Lệnh nhảy có điều kiện (nhảy khi thoả mãn một số điều kiện)

Nguyễn văn Hải- Bài giảng Kỹ thuật vi xử lý[email protected]

25



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status