TAILIEUCHUNG - Tài liệu trình biên dịch C (ĐH Cần Thơ) part 26

QUẢN LÝ BỘ NHỚ TRONG THỜI GIAN THỰC HIỆN Trong phần này ta sẽ nói về việc sinh mã để quản lý các mẩu tin hoạt động trong thời gian thực hiện. Hai chiến lược cấp phát bộ nhớ chuẩn được trình bày trong chương VII là cấp phát tĩnh và cấp phát Stack. Với cấp phát tĩnh, vị trí của mẩu tin hoạt động trong bộ nhớ được xác định trong thời gian biên dịch. Với cấp phát Stack, một mẩu tin hoạt động được đưa vào Stack khi có sự thực hiện một thủ tục và được lấy. | III. QUẢN LÝ BỘ NHỚ TRONG THỜI GIAN THỰC HIỆN Trong phần này ta sẽ nói về việc sinh mã để quản lý các mẩu tin hoạt động trong thời gian thực hiện. Hai chiến lược cấp phát bộ nhớ chuẩn được trình bày trong chương VII là cấp phát tĩnh và cấp phát Stack. Với cấp phát tĩnh vị trí của mẩu tin hoạt động trong bộ nhớ được xác định trong thời gian biên dịch. Với cấp phát Stack một mẩu tin hoạt động được đưa vào Stack khi có sự thực hiện một thủ tục và được lấy ra khỏi Stack khi hoạt động kết thúc. Ở đây ta sẽ xem xét cách thức mã đích của một thủ tục tham chiếu tới các đối tượng dữ liệu trong 191 các mẩu tin hoạt động. Như ta đã nói ở chương VII một mẩu tin hoạt động cho một thủ tục có các trường tham số kết quả thông tin về trạng thái máy dữ liệu cục bộ lưu trữ tạm thời và cục bộ và các liên kết. Trong phần này ta minh họa các chiến lược cấp phát sử dụng trường trạng thái để giữ giá trị trả về và dữ liệu cục bộ các trường còn lại được dùng như đã đề cập ở chương VII. Việc cấp phát và giải phóng các mẩu tin hoạt động là một phần trong chuỗi hành vi gọi và trả về của chương trình con. Ta quan tâm đến việc sinh mã cho các lệnh sau 1. call 2. return 3. halt 4. action tượng trưng cho các lệnh khác Chẳng hạn mã ba địa chỉ chỉ chứa các loại câu lệnh trên cho các chương trình c và p cũng như các mẩu tin hoạt động của chúng mã cho s actioni call p action2 halt 0 Địa chỉ trả về 0 Địa chỉ trả về 8 arr 4 buf mã cho c actlon3 56 i return 60 i 84 n Ị m t mw Bảng ghi hoạt uunggHiHoụi động cho c động cho p Hình - Dữ liệu vào của bộ sinh mã Kích thước và việc xếp đặt các mẩu tin được kết hợp với bộ sinh mã nhờ thông tin về tên trong bảng danh biểu. Ta giả sử bộ nhớ thời gian thực hiện được phân chia thành các vùng cho mã dữ liệu tĩnh và Stack. 1. Cấp phát tĩnh Chúng ta sẽ xét các chỉ thị cần thiết để thực hiện việc cấp phát tĩnh. Lệnh call trong mã trung gian được thực hiện bằng dãy hai chỉ thị đích. Chỉ thị MOV lưu địa chỉ trả về. Chỉ thị GOTO chuyển quyền điều khiển cho chương trình

Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.