tailieunhanh - Bài giảng Xây dựng chương trình dịch: Bài 12 - Nguyễn Thị Thu Hương
Bài giảng "Xây dựng chương trình dịch - Bài 12: Sinh mã đích" cung cấp cho người học các kiến thức: Tổng quan về sinh mã đích, máy ngăn xếp, sinh mã cho các lệnh cơ bản, xây dựng bảng ký hiệu, chương trình đích được dịch từ. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu. | 21/1/2010 Nội dung z z Bài 12 Tổng quan về sinh mã đích Máy ngăn xếp z Sinh mã đích z z z Sinh mã cho các lệnh cơ bản Xây dựng bảng ký hiệu z Nguyễn Thị Thu Hương Tổ chức bộ nhớ Bộ lệnh z z Biến Tham số Hàm, thủ tục và chương trình Lớp KHMT K50 1 Chương trình đích 2 Chương trình đích được dịch từ Viết trên một ngôn ngữ trung gian Là dạng Assembly của máy giả định (máy ảo) Máy y ảo làm việc ệ với bộ ộ nhớ stack Việc thực hiện chương trình thông qua một interpreter Interpreter mô phỏng hành động của máy ảo thực hiện tập lệnh assembly của nó Mã nguồn Mã trung gian 3 4 1 21/1/2010 Máy ngăn xếp z Máy ngăn xếp Máy ngăn xếp là một hệ thống tính toán Code buffer Sử dụng ngăn xếp để lưu trữ các kết quả trung gian của quá trình tính toán z Kiến trúc đơn giản z Bộ lệnh đơn giản Máy ngăn xếp có hai vùng bộ nhớ chính z Khối lệnh: chứa mã thực thi của chương trình z Ngăn xếp: sử dụng để lưu trữ các kết quả trung gian z z Lớp KHMT K50 PC DL LA 0,4 RA ST B SL T ↑ P1 P2 V1 V2 tmp1 Lớp KHMT K50 5 T 6 Máy ngăn xếp z Thanh ghi z PC (program counter): con trỏ lệnh trỏ tới lệnh hiện tại đang thực thi trên bộ đệm chương trình z B (base) : con trỏ trỏ tới địa chỉ gốc của vùng nhớ cục bộ. Các biến cục bộ được truy xuất gián tiếp qua con trỏ này z T (top); trỏ tới đỉnh của ngăn xếp Lớp KHMT K50 RV INC 4 LC 1 Máy ngăn xếp z Stack JMP 2 7 Bản hoạt động (activation record/stack frame) z Không gian nhớ cấp phát cho mỗi chương trình con (hàm/thủ tục/chương trình chính) khi chúng được kích hoạt z Lưu giá trị tham số z Lưu giá trị biến cục bộ z Lưu các thông tin khác z Giá trị trả về ề của hàm – RV z Địa chỉ cơ sở của bản hoạt động của chương trình con gọi tới (caller) – DL z Địa chỉ lệnh quay về khi kết thúc chương trình con – RA z Địa chỉ cơ sở của bản hoạt động của chương trình con bao ngoài – SL z Một chương trình con có thể có nhiều bản hoạt động Lớp KHMT K50 8 2 21/1/2010 Máy ngăn xếp Procedure P(I : integer); Var a : .
đang nạp các trang xem trước