Trong ngành khoa học máy tính, mã địa chỉ ba - với cái tên chính xác hơn là dạng thức ba địa chỉ (three address code) là một biểu thức được trình biên dịch sử dụng như là một công cụ để hiệu chỉnh lại mã nguồn. Mỗi dạng thức ba địa chỉ được cấu thành từ bốn phần tử: toán tử, toán hạng 1, toán hạng 2 và kết quả.

Mỗi câu lệnh có một dạng chung sau đây: x:= y (op) z

với x, y, z là các biến, hằng hoặc biến trung gian được tạo bởi trình biên dịch; op là toán tử, ví dụ như toán tử đại số, hoặc các toán tử logic như và (AND), hoặc (OR).

Mỗi một biểu thức có nhiều hơn một phép toán cơ bản: p:= x + y×z sẽ được đưa về hai biểu thức ở dạng thức ba địa chỉ, đó là:

t1:= y × z
p:= x + t1

Việc đưa một câu lệnh về dạng thức ba địa chỉ có lợi gì? Có cái lợi là ta dễ dàng chuyển nó sang một dạng thức lệnh phù hợp với dạng thức lệnh của mã máy. Mà để ý rằng dạng thức lệnh phổ biến của mã máy chính la dạng thức ba địa chỉ, gồm hai địa chỉ được sử dụng cho phép tính và địa chỉ còn lại lưu kết quả:

+--------------+--------------+--------------+--------------+
|Phần câu lệnh | Phần địa chỉ | Phần địa chỉ | Phần địa chỉ |
+--------------+--------------+--------------+--------------+

Tham khảo sửa