Câu trả lời được chấp nhận trong câu hỏi được liên kết rất đơn giản và chỉ hiển thị một điều khác biệt giữa mã PIC và không phải PIC, tạo ra các bước nhảy có liên quan thay vì tuyệt đối.
Khi bạn tạo mã PIC, không chỉ mã số độc lập, đó cũng là dữ liệu. Và không phải tất cả mã hoặc dữ liệu đều có thể được giải quyết đơn giản bằng cách sử dụng các offset tương đối, nó phải được giải quyết tại thời gian tải (khi thư viện/chương trình được nạp vào bộ nhớ) hoặc thậm chí trong thời gian chạy.
Ngoài ra, bằng cách sử dụng địa chỉ tương đối có nghĩa là CPU phải dịch các dời gốc tương đối thành địa chỉ tuyệt đối, thay vì nó được thực hiện bởi trình biên dịch.
Trên hệ thống có bộ nhớ ảo thường không cần phải tốn thời gian tải hoặc chạy trên các độ phân giải địa chỉ tương đối này khi trình biên dịch có thể thực hiện một lần và cho tất cả.
Nguồn
2015-07-10 04:20:55
PIC thường không thể được sử dụng trong Windows vì địa chỉ DLL được cố định trong thời gian tải. Hơn nữa trong x86 PIC là không hiệu quả như trong x86_64 –