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ì?
Trả lời
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
và
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.
- 1. Sự khác biệt giữa html.AttributeEncode so với html.Encode là gì?
- 2. Sự khác biệt giữa get.chomp() so với STDIN.gets.chomp() là gì?
- 3. SET so với CHỌN - Sự khác biệt là gì?
- 4. Sự khác biệt giữa tệp .so và .lo là gì?
- 5. MOM so với SOA? Sự khác biệt?
- 6. Sự khác nhau giữa% define và equ trong NASM là gì?
- 7. Sự khác nhau giữa equ và db trong NASM là gì?
- 8. [[Prototype]] so với nguyên mẫu: ..điều gì là sự khác biệt? (MyCons .__ proto__ === MyCons.prototype) bằng FALSE
- 9. bin \ debug so với obj \ debug: Sự khác biệt là gì?
- 10. "Gói Tích hợp Visual Studio" so với "Visual Studio Add-in": sự khác biệt là gì?
- 11. LL (*) so với các trình phân tích cú pháp PEG: sự khác biệt là gì?
- 12. Sự khác biệt khi triển khai trên Tomcat so với Websphere là gì?
- 13. Sự khác biệt chính giữa C++ so với C++ .NET là gì?
- 14. Sự khác biệt của trường Nhập CMS CMS so với trường Văn bản là gì?
- 15. Sự khác biệt giữa Điều khiển từ xa của Selenium so với WebDriver là gì?
- 16. Danh mục Datastore so với Chuỗi: sự khác biệt là gì?
- 17. Sự khác biệt lớn giữa IntelliJ + Ruby Plugin so với RubyMine là gì?
- 18. 960 của clearfix lưới so với HTML5 của boilerplate clearfix - sự khác biệt là gì?
- 19. VSTO so với Hội đồng Interop chính, sự khác biệt là gì?
- 20. Cơ sở dữ liệu quan hệ so với chiều, sự khác biệt là gì?
- 21. Sự khác biệt giữa "git reset" so với "git rebase" là gì?
- 22. C/C++ int [] so với int * (con trỏ so với ký hiệu mảng). Sự khác biệt là gì?
- 23. Sự khác biệt giữa db_owner với db_datareader/db_datawriter là gì?
- 24. DTO và BO là gì? Sự khác biệt là gì?
- 25. Sự khác biệt giữa \ r và \ n là gì?
- 26. - [NSObject isEqual:] và - [NSNumber isEqualToNumber:]: sự khác biệt là gì?
- 27. sự khác biệt giữa DoCmd.SetWarnings và CurrentDB.Execute là gì
- 28. SWT và AWT, sự khác biệt là gì?
- 29. Sự khác biệt giữa gói android.opengl và javax.microedition.khronos.opengles là gì?
- 30. CATALINA_OPTS vs JAVA_OPTS - Sự khác biệt là gì?
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? –
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