Assembly - Các thanh ghi đoạn của 8086



  • Thanh ghi (register) là thành phần lưu trữ dữ liệu bên trong CPU, mỗi thanh ghi có độ dài nhất định (16 bit hoặc 8 bit) và được nhận biết bằng 1 tên riêng. Tùy vào độ dài và chức năng mà thanh ghi có công dụng chứa dữ liệu hoặc kết quả của phép toán, hoặc là các địa chỉ dùng để định vị bộ nhớ khi cần thiết.
    Nội dung của thanh ghi được truy xuất thông qua tên riêng của nó, do đó tên thanh ghi là từ khóa quan trọng cần phải lưu ý trong lập trình.
    CPU-8086 có 16 thanh ghi, mỗi thanh ghi là 16 bit. có thể chia làm 4 nhóm sau:
    1. Thanh ghi đoạn:
    - Gồm 4 thanh ghi 16 bit: CS, DS, ES, SS.
    - Đây là những thanh ghi dùng để chứa địa chỉ đoạn của các ô nhớ khi cần truy xuất. Mỗi thanh ghi đoạn quản lý 1 đoạn tối đa 64k ô nhớ trong bộ nhớ trong.
    -Người sử dụng chỉ được phép truy xueets ô nhớ dựa vào địa chỉ tương đối. CPU (cụ thể là BIU) có nhiệm vụ chuyển đổi địa chỉ tương đối thành địa chỉ tuyệt đối để truy xuất vào ô nhớ tuyệt đối tương ứng trong bộ nhớ.
    + CS: Thanh ghi đoạn mã lệnh, lưu địa chỉ đoạn chứa mã lệnh chương trình của người sử dụng.
    + DS: Thanh ghi đoạn dữ liệu, lưa địa chỉ đoạn chứa dữ liệu (các biến) trong chương trình.
    + ES: Thanh ghi đoạn dữ liệu thêm, lưu địa chỉ đoạn dữ liệu thêm trong chương trình.
    + SS: Thanh ghi đoạn ngăn xếp, lưu địa chỉ đoạn của vùng ngăn xếp.0_1469791320367_Capture.PNG
    Thông thường 4 thanh ghi này có thể chứa những giá trị khác nhau, do đó chương trình có thể được truy cập trên 4 đoạn khác nhau, và chương trình chỉ có thể truy cập cùng lúc tối đa 4 đoạn.
    - Mặt khác, đối với những chương trình nhỏ, chỉ sử dụng 1 đoạn duy nhất, khi đó cả 4 thanh ghi đều chứa cùng giá trị địa chỉ đoạn, gọi là đoạn chung.


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.