Các cách định địa chỉ gián tiếp:

Một phần của tài liệu Cấu trúc vi xử lý 16bit 8086/88 (Trang 26 - 27)

II. CÁC PHƯƠNG PHÁP ĐỊNH ĐỊA CHỈ:

4.Các cách định địa chỉ gián tiếp:

Cách định địa chỉ trực tiếp thì sử dụng rất tiện lợi cho các trường hợp truy cập bộ nhớ không thường xuyên vùng dữ liệu truy cập chỉ có 1 hoặc 2 byte hoặc word. Trong trường hợp vùng dữ liệu nhiều và liên tục thì cách dùng địa chỉ trực tiếp là không hiệu quả ví dụ copy dữ liệu từ vùng nhớ này sang vùng nhớ khác với dung lượng dữ liệu là vài trăm byte.

Cách thực hiện tốt nhất là kiểu định địa chỉ gián tiếp dùng thanh ghi, trong đó địa chỉ của nguồn dữ liệu do 1 thanh ghi quản lý và địa chỉ đích của nguồn dữ liệu do 1 thanh ghi khác quản lý và dĩ nhiên là phải kết hợp với thanh ghi đoạn. Ngoài ra độ dời bù 2 có thể được cộng vào thanh ghi con trỏ và thanh ghi chỉ số để dời đi so với vị trí được chỉ đến. Bảng sau trình bày nhiều kết hợp có thể sử dụng:

Cách định địa chỉ Địa chỉ hiệu dụng

Độ dời Thanh ghi nền Thanh ghi chỉ số Gián tiếp thanh ghi Không có +

Không có + BX hoặc BP + Không có + Không có SI hoặc DI Có chỉ số -128 đến 127 + Không có + SI hoặc DI Có nền -128 đến 127 + BX hoặc BP + Không có Có nền và có chỉ số Không có + BX hoặc BP + SI hoặc DI Có nền, có chỉ số với độ dời -128 đến 127 + BX hoặc BP + SI hoặc DI

Bảng 3-8. Tính toán địa chỉ hiệu dụng cho các cách định địa chỉ gián tiếp.

Tổng quát thì một độ dời có thể được cộng vào thanh ghi nền và cộng với thanh ghi chỉ số để tạo ra địa chỉ vật lý.

Trong lập trình ta có thể sử dụng cách định địa chỉ gián tiếp dưới dạng như sau:

MOV AX,TABLE[SI]

Trong đó SI là nhãn cho trước của vùng dữ liệu lưu trong bộ nhớ.

Một phần của tài liệu Cấu trúc vi xử lý 16bit 8086/88 (Trang 26 - 27)