Các chế độ địa chỉ

Một phần của tài liệu Kỹ thuật vi xử lý (Trang 40 - 43)

Chế độ địa chỉ là cách để vi xử lý tìm thấy toán hạng cho các lệnh của nó khi hoạt động. Một bộ vi xử lý có thể có nhiều chế độ địa chỉ. Các chế độ địa chỉ này được xác định ngay từ khi chế tạo ra bộ vi xử lý và sau này không thể thay đổi được. Bộ vi xử lý 8088 có các chế độ địa chỉ sau:

 Chế độ địa chỉ thanh ghi (register addressing mode)

 Chế độ địa chỉ tức thì (immediate addresing mode)

 Chế độ địa chỉ ô nhớ: Riêng chế độ này lại được chia ra thành 5 chế độ địa chỉ khác nhau là:

 Chế độ địa chỉ trực tiếp (direct addresing mode)

 Chế độ địa chỉ gián tiếp qua thanh ghi (register indirect addressing mode)

 Chế độ địa chỉ tương đối cơ sở (based relative addressing mode)

 Chế độ địa chỉ tương đối chỉ số (indexed relative addressing mode) 80 = 10000000 CF = 1, PF = 1, AF = 0

80 = 10000000 ZF = 1, SF = 0, OF = 1 100 = 10000 0000

+

33

 Chế độ địa chỉ tương đối chỉ số cơ sở (based indexed relative addressing mode)

2.1.1. Chế độ địa chỉ thanh ghi

Ở chế độ này các toán hạng đều là thanh ghi bên trong bộ vi xử lý cho nên thao tác của lệnh được thực hiện rất nhanh.

Ví dụ:

MOV AX, BX ; chuyển nội dung của thanh ghi BX vào AX ADD AL, BL ; cộng nội dung AL và BL rồi cất kết quả vào AL 2.1.2. Chế độ địa chỉ tức thì

Ở chế độ này toán hạng đích là một thanh ghi hay ô nhớ. Toán hạng nguồn là một hằng số. Thao tác của lệnh là thao tác của thanh ghi hay ô nhớ đối với hằng số đó.

Ví dụ:

MOV AX, 5 ; chuyển 5 vào AX hay copy 5 vào AX ADD AL, 5 ; AL = AL + 5

2.1.3. Chế độ địa chỉ trực tiếp

Ở chế độ này một toán hạng là ô nhớ mà địa chỉ độ lệch của ô nhớ đó là một hằng số 16 bit cho ngay ở trong lệnh. Toán hạng còn lại là thanh ghi.

Ví dụ:

MOV AL, [1234H] ; chuyển nội dung ô nhớ có địa chỉ DS:1234H vào AL

MOV [4321h], AX ; chuyển nội dung AX vào trong hai ô nhớ liên tiếp có địa chỉ DS:4321h và DS:4322h

2.1.4. Chế độ địa chỉ gián tiếp qua thanh ghi

Ở chế độ này toán hạng là một ô nhớ mà địa chỉ độ lệch của ô nhớ đó được cất trong một thanh ghi cho ngay ở trong lệnh. Toán hạng còn lại là thanh ghi.

Ví dụ:

MOV AL, [BX] ; chuyển nội dung ô nhớ có địa chỉ DS:BXvào AL MOV [SI], AX ; chuyển nội dung AX vào trong hai ô nhớ liên tiếp

có địa chỉ DS:SI và DS:SI + 1

34

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

Ở chế độ này toán hạng là một ô nhớ mà địa chỉ độ lệch của ô nhớ đó được xác định bằng cách cộng nội dung của thanh ghi cơ sở (BX, BP) với giá trị dịch chuyển (8, 16 bit) cho ngay ở trong lệnh. Toán hạng còn lại là thanh ghi.

Ví dụ:

MOV AL, [BX] + 3Fh ; chuyển nội dung ô nhớ có địa chỉ DS:BX+3Fh vào AL

MOV [BP + E4h], AX ; chuyển nội dung AX vào trong hai ô nhớ liên tiếp có địa chỉ SS:BP + E4h và SS:BP + E5h Từ ví dụ trên ta thấy, việc sử dụng [BX] + 3FH và [BX + 3FH] là như nhau.

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

Ở chế độ này toán hạng là một ô nhớ mà địa chỉ độ lệch của ô nhớ đó được xác định bằng cách cộng nội dung của thanh ghi chỉ số (SI, DI) với giá trị dịch chuyển (8, 16 bit) cho ngay ở trong lệnh. Toán hạng còn lại là thanh ghi.

Ví dụ:

MOV AL, [SI] + 3Fh ; chuyển nội dung ô nhớ có địa chỉ DS:SI+3Fh vào AL

MOV [DI + E4h], AX ; chuyển nội dung AX vào trong hai ô nhớ liên tiếp có địa chỉ DS:DI + E4h và DS:DI + E5h 2.1.7. Chế độ địa chỉ tương đối chỉ số cơ sở

Ở chế độ này toán hạng là một ô nhớ mà địa chỉ độ lệch của ô nhớ đó được xác định bằng cách cộng nội dung của thanh ghi cơ sở (BX, BP) với thanh ghi chỉ số (SI, DI) với giá trị dịch chuyển (8, 16 bit) cho ngay ở trong lệnh. Toán hạng còn lại là thanh ghi.

Ví dụ:

MOV AL, [BX] + [SI] ; chuyển nội dung ô nhớ có địa chỉ DS:BX+SI vào AL MOV [BP+DI]+E4h, AX ; chuyển nội dung AX vào trong hai ô nhớ liên tiếp có

địa chỉ SS:BP + DI + E4h và DS:BP + DI + E5h

Lưu ý:Độ dịch chuyển có thể không có như ở trường hợp đầu tiên, tuy nhiên với trường hợp không có giá trị dịch chuyển, ta có thể định nghĩa là một độ dịch chuyển 8 bit có giá trị là 00H.

Bảng 2.3 tóm tắt các chế độ địa chỉ của vi xử lý 8088/8086.

Bảng 2.3: Tóm tắt các chế độ địa chỉ

Chế độ địa chỉ Toán hạng Thanh ghi đoạn

35

ngầm định

Thanh ghi Thanh ghi

Tức thì Dữ liệu

Trực tiếp [độ lệch] DS

Gián tiếp qua thanh ghi

[BX]

[SI]

[DI]

DS DS DS Tương đối cơ sở [BX] + giá trị dịch chuyển

[BP] + giá trị dịch chuyển

DS SS Tương đối chỉ số [SI] + giá trị dịch chuyển

[DI] + giá trị dịch chuyển

DS DS

Tương đối chỉ số cơ sở

[BX] + [SI] + giá trị dịch chuyển [BX] + [DI] + giá trị dịch chuyển [BP] + [SI] + giá trị dịch chuyển [BP] + [DI] + giá trị dịch chuyển

Một phần của tài liệu Kỹ thuật vi xử lý (Trang 40 - 43)

Tải bản đầy đủ (PDF)

(251 trang)