Dòng thực sự khá mờ ... các đối số mà tôi đã thấy khi gọi CIL
một "ngôn ngữ lắp ráp" có thể áp dụng gần như là tốt cho x86
/x86-64
trong thực tế.
Intel và AMD chưa tạo bộ xử lý thực thi các lệnh lắp ráp chính xác như được phát ra trong nhiều thập kỷ (nếu có), vì vậy thậm chí mã được gọi là "gốc" không khác nhiều so với chạy trên máy ảo có bytecode được chỉ định trong x86
/x86-64
.
x86
/x86-64
là những điều-mức thấp nhất các nhà phát triển điển hình có thể truy cập, vì vậy nếu chúng tôi phải đưa chân chúng tôi xuống và gọi một cái gì đó trong hệ sinh thái của chúng ta một "ngôn ngữ lắp ráp", điều đó sẽ giành chiến thắng, và kể từ CIL
bytecode cuối cùng đòi hỏi x86
/x86-64
hướng dẫn để có thể chạy trên một bộ xử lý trong gia đình đó, sau đó có một trường hợp khá mạnh mẽ để được thực hiện rằng nó thực sự không "cảm thấy" như nó nên đếm.
Vì vậy, theo nghĩa, có thể không được coi là "ngôn ngữ lắp ráp". Khi đề cập đến các bộ vi xử lý x86
/x86-64
, chúng tôi hầu như không bao giờ đề cập đến các bộ vi xử lý thực thi x86
/x86-64
mà không dịch nó thành một thứ khác (tức là, bất kỳ mã micro nào).
Để thêm một nếp nhăn khác, cách thức mà bộ xử lý x86
/x86-64
thực hiện chuỗi lệnh nhất định có thể thay đổi đơn giản bằng cách cập nhật mã micro. Một tìm kiếm nhanh cho thấy rằng Linux thậm chí có thể làm cho nó dễ dàng để làm điều này cho mình in software!
Vì vậy, tôi đoán, đây là tiêu chí mà có thể biện minh cho việc đặt chúng trong hai loại riêng biệt:
- Liệu nó có vấn đề mà tất cả các máy hiện tại chạy
CIL
bytecode được thực hiện trong phần mềm?
- Có vấn đề gì khi cùng một phần cứng có thể diễn giải cùng một hướng dẫn
x86
/x86-64
theo một cách khác sau khi được hướng dẫn làm như vậy trong phần mềm?
- Có quan trọng là chúng tôi hiện không có cách nào bỏ qua mã vi mô và phát lệnh trực tiếp đến các đơn vị vật lý của bộ vi xử lý
x86
/x86-64
?
Vì vậy, liên quan đến việc "là một câu hỏi CIL
lắp ráp language`, câu trả lời tốt nhất mà tôi có thể đưa ra là 'nó phụ thuộc' (đối với các nhà khoa học) và 'khá nhiều' (cho các kỹ sư).
Nguồn
2017-01-27 14:16:16
câu hỏi thú vị, tôi tryied để trả lời, nhưng nó không phải là dễ dàng như vậy.Tôi nghĩ rằng bạn không thể xem xét nó một ngôn ngữ lắp ráp kể từ tehre là không có cpu thực chạy nó trực tiếp –
@FelicePollano sau đó CIL có thể là một phần lắp ráp ngôn ngữ .. :) – Anirudha
Assembly language mnemonics tương ứng 1: 1 với các chỉ dẫn mã máy cụ thể của CPU. Một bộ ghép chỉ ánh xạ mã assembly có thể đọc được (sorta) với các hướng dẫn này, chắc chắn không phải là trường hợp với CIL. tuổi tác có một định nghĩa rất rõ ràng. –