2012-07-26 34 views
5

Tôi mới bắt đầu học ngôn ngữ lắp ráp. Tôi đã đưa ra khái niệm về EQU. Lúc đầu, nó đã có ý nghĩa hoàn hảo cho đến khi tôi đến DC.B. Sự khác biệt giữa DC.B và EQU là gì? Bạn không thể chỉ sử dụng EQU cho mọi hằng số? Cảm ơn bạn vì sự giúp đỡ.EQU so với DC.B. Sự khác biệt là gì?

+0

Bạn đang làm việc với bộ xử lý nào, trên hệ điều hành nào? Đối với bộ xử lý nào? –

+0

HC12? EQU chỉ định nghĩa một biểu tượng không đổi, DC dự trữ không gian cho một biến (.B biến nó thành một byte). – harold

Trả lời

12

Tôi không quen thuộc với cú pháp lắp ráp cụ thể của bạn, vì vậy câu trả lời này là một phỏng đoán được giáo dục.

Chỉ thị EQU được sử dụng để báo cho bộ lắp ráp mà bạn muốn có hằng số ký hiệu có tên (thường được tính từ các giá trị lắp ráp khác bao gồm các định nghĩa EQU khác) mà bạn có thể tham khảo ở những nơi khác trong văn bản nguồn lắp ráp . Bạn luôn luôn phải viết

symbolname EQU constantexpression 

này cho phép bạn viết symbolname thay vì constantexpression ở những nơi khác trong văn bản nguồn của bạn. Nhưng tên này không có ảnh hưởng trực tiếp đến dữ liệu nhị phân của chương trình lắp ráp cuối cùng.

"DB.B" (Tôi giả sử 'xác định hằng số (byte)' được sử dụng để báo cho trình lắp ráp rằng bạn có chương trình được lắp ráp cuối cùng để có một byte dữ liệu được nhúng vào nó ở vị trí tương đối trong tệp nguồn " . bạn viết

optionalname DB.B constantexpression 

có giá trị tính toán của biểu thức liên tục được đặt vào một byte dữ liệu trong các dữ liệu nhị phân chương trình lắp ráp.

Vì vậy, bạn có thể viết

AnEvenNumber EQU 2 
MyEvenNumber DB.B AnEvenNumber 

Dòng đầu tiên chỉ tạo một hằng số được đặt tên và không có thứ hai, không có hiệu lực trên nhị phân của bạn. Dòng thứ hai tạo ra một byte trong nhị phân của bạn, có chứa giá trị được chỉ định bởi hằng số ký hiệu được đặt tên.

Lưu ý rằng chỉ thị DB.B cũng cho phép tên tùy chọn; biểu tượng này cũng có thể được sử dụng ở những nơi khác trong mã của bạn. Tùy thuộc vào sự phức tạp của lắp ráp của bạn, bạn có thể xác định

LocationOfEvenNumber EQU MyEvenNumber 

 DW.W LocationOfEvenNumber 

nay sản xuất một từ trong tập tin nhị phân của bạn rằng "điểm" để byte của dữ liệu nhị phân.

+0

Đó là một đoán rất tốt về giáo dục, trên thực tế tôi sẽ đi xa như nói: Thats nó +1 – Durandal

+0

Tôi đang làm việc với HCS12 Vi điều khiển bằng cách sử dụng Codewarrior. Cám ơn vì đã giải thích. Nó rất hữu ích – eemamedo

Các vấn đề liên quan