tailieunhanh - Bài giảng môn học Trình biên dịch - Chương 9: Sinh mã đối tượng

Bài giảng chương 9 trình bày những nội dung cơ bản như: Các vấn đề thiết kế bộ sinh mã, máy đích, khối cơ bản và lưu đo, bộ sinh mã đơn giản, dag biểu diễn khối cơ bản dag là cấu trúc dữ liệu rất thích h, tạo mã đối tượng từ dag. . | CHÖÔNG 9 SINH MAÕ ÑOÁI TÖÔÏNG Chöông Bieân dòch trình nguoàn phía tröôùc Maõ trung gian Boä toái öu maõ Maõ trung gian Chöông Boä sinh maõ ñoái töôïng trình dòch Baûng danh bieåu Hình . Vò trí cuûa boä sinh maõ ñoái töôïng . Caùc vaán ñeà thieát keá boä sinh maõ Ñaàu vaøo cuûa boä sinh maõ Chöông trình ñích Söï löïa choïn chæ thò Giaû söû ñoái vôùi phaùt bieåu ba ñòa chæ coù daïng x := y + z vôùi x, y, z töôïng tröng cho caùc vò trí nhôù. Chuùng ta coù theå dòch sang chuoãi maõ ñoái töôïng: MOV y, Ro /* caát y vaøo thanh ghi Ro */ ADD z, Ro /* coäng z vaøo noäi dung Ro, keát quaû chöùa trong Ro */ MOV Ro, x /* caát noäi dung Ro vaøo x */ Tuy nhieân vieäc sinh maõ cho chuoãi caùc phaùt bieåu seõ daãn ñeán söï dö thöøa maõ. Nhö thí duï sau: a := b + c; d := a + e Chuùng ta chuyeån sang maõ ñoái töôïng: (1) MOV b, R0 (2) ADD c. R0 (3) MOV R0, a (4) MOV a, R0 (5) ADD e, R0 (6) MOV R0, d Chæ thò thöù tö laø thöøa. Chaát löôïng maõ ñöôïc taïo ra, ñöôïc xaùc ñònh baèng toác ñoä cuûa maõ vaø kích thöôùc taäp maõ. Thí duï: MOV a, R0 ADD # 1, R0 MOV R0, a Caáp phaùt thanh ghi Söï löïa choïn cho vieäc ñaùnh giaù thöù töï . Maùy ñích Chuùng ta seõ duøng maùy ñích nhö laø maùy thanh ghi (register machine). Maùy ñích coù moãi töø goàm boán byte vaø coù n thanh ghi: R0, R1 Rn-1, coù chæ thò hai ñòa chæ, vôùi daïng toång quaùt: op source, destination Thí duï moät soá chæ thò: MOV: chuyeån trò cuûa source ñeán destination ADD: coäng noäi dung source vaø destination SUB: tröø noäi dung source cho destination Mode ñòa chæ Thí duï: 1 2 3 Mode Absolute Register indexed Daïng M R c (R) Ñòa chæ M R c + contents (R) Giaù 1 0 1 4 5 6 indirect register inderect indexed literal *R contents (R) 0 *c (R) contents (c + contents (R)) 1 #C haèng C 1 Giaù chæ thò (instruction cost) Giaù chæ thò ñöôïc tính baèng moät coâng giaù keát hôïp trong baûng mode ñòa chæ nguoàn vaø ñích ôû treân. Qua caùc thí duï treân chuùng ta thaáy muoán sinh maõ