Hình 7-13.TRANG 190 - MEMORY BANK

Màu nền
Font chữ
Font size
Chiều cao dòng

Hình 7-13.TRANG 190

8086 có 20 đường địa chỉ do đó nó có thể địa chỉ được 220 = 1.048.576 địa chỉ. Khi ta viết 1 word vào bộ nhớ với lệnh MOV DS : WORD PTR[437AH], BX. Từ này trên thực tế được viết vào 2 địa chỉ bộ nhớ liên tiếp nhau. Coi như DS chứa 0000, byte thấp của Word này được viết vào địa chỉ cụ thể 0437AH, byte cao được viết vào địa chỉ cao hơn tiếp theo 0437BH. Ðể nó có thể đọc, viết 1 word với 1 chu kỳ máy, bộ nhớ của 8086 được thiết lập 2 bank, mỗi bank chứa 524.288 byte.

Một chứa tất cả các byte có địa chỉ chẵn (0000, 0002..) các đường dữ liệu của bank này được nối với 8 đường dữ liệu thấp D0 - D7 của 8086. Băng còn lại chứa các byte có địa chỉ lẻ (0001, 0003,...) các đường dữ liệu của băng này được nối tới 8 đường dữ liệu cao D8 - D15 của 8086. Ðường địa chỉ A0 sử dụng để kích hoạt băng thấp, băng này sẽ đượckích hoạt khi A0 là thấp. A¬1 - A19 sử dụng để chọn thiết bị bộ nhớ mong muốn trong băng và đánh địa chỉ byte mong muốn trong thiết bị đó. Tín hiệu BHE sử dụng để kích hoạt băng lẻ (BHE là tín hiệu tổng hợp, phức tạp đưa ra từ 8086 trên 1 đường tín hiệu tại cùng thời điểm khi địa chỉ được gửi ra ngoài).

Khi đọc 1 byte hoặc viết 1 byte với địa chỉ chẵn (0000H) A0 thấp, BHE cao. Băng thấp được kích hoạt và băng cao không được kích hoạt, khi đó dữ liệu được đi vào hoặc đi ra trên các đường D0 - D7.

Nếu DS chứa 0000H khi sử dụng lệnh MOV AX, DS PTR[0000] để đọc 1 word từ ô nhớ vào thanh ghi AX. A0 , BHE thấp, cả 2 băng được kích hoạt, byte thấp của word được truyền từ địa chỉ 0000H tới 8086 trên D0 - D7, còn byte cao được truyền từ địa chỉ 0001H tới 8086 trên D8 - D15.

Khi ta dùng lệnh MOV AL, DS : BYTE PTR[0001] để truy nhập 1 byte tại địa chỉ lẻ, A0 cao, BHE thấp, băng cao được kích hoạt, byte được truyền từ địa chỉ 0001H trong băng cao tới 8086 trên D8 - D15.

Khi đọc hoặc viết 1 word với địa chỉ lẻ. VD MOV AX, DS : WORD PTR[0001], copy byte thấp của word từ địa chỉ 0001H tới AL và byte cao từ địa chỉ 0002H tới AH. Trong trường hợp này 8086 yêu cầu 2 chu kỳ máy. Chu kỳ thứ nhất 8086 đưa ra ngoài địa chỉ 0001H xác lập BHE thấp, A0 cao, byte từ 0001H được đọc vào 8086 trên D8 - D15 và đặt vào AL. Chu kỳ thứ 2, 8086 gửi ra ngoài địa chỉ 0002H xác lập A0 thấp, BHE cao, dữ liệu được đọc vào 8086 trên D0 - D7 và đặt vào AH. Sự phân chia ra 2 chu kỳ này có tác dụng ngăn ngừa việc ghi dữ liệu không mong muốn vào vị trí bộ nhớ tiếp theo khi 8086 ghi 1 byte vào bộ nhớ.

Bạn đang đọc truyện trên: Truyen2U.Pro