2012-04-16 22 views
22

Tôi đã thực hiện lập trình lắp ráp ARM và tôi muốn tìm hiểu Bộ tích hợp Intel. Tôi tiếp tục nghe tất cả các F/M/N/ASM khác nhau được đề cập - nhưng tôi không chắc chắn cách chúng liên quan đến những gì tôi muốn đạt được?ASM: MASM, NASM, FASM?

Ai đó có thể giúp tôi xác định những gì tôi cần để tìm hiểu cách lập trình mức thấp trên kiến ​​trúc Intel? Tôi không hiểu làm thế nào các "khác nhau Assemblers" tương quan, thậm chí nhiều hơn như vậy với x86, IA64, AMD64/x86-64 vv?

Nếu có bất kỳ trợ giúp nào, tôi cảm thấy thoải mái nhất với Eclipse và Visual Studio 08/10 IDE.

+0

Phụ thuộc phần nào vào hệ điều hành ưa thích của bạn - Windows? Linux? Mac OS X? Khác? –

+0

Điều gì sẽ được sử dụng cho Mac OS X? – Aristides

Trả lời

16

MASM (Microsoft Assembler) là trình kết hợp phổ biến cho Windows. MASM dành cho các ứng dụng 16 bit và 32 bit (x86). ML64 là nguồn dành cho nguồn 64 bit (AMD64/x86-64)

NASM (Bộ nối mạng) là bộ kết hợp phổ biến cho Linux nhưng cũng có sẵn trên Windows. NASM hỗ trợ các chương trình 16 bit, 32 bit và 64 bit.

FASM (Bộ tích hợp phẳng) khả dụng cho cả Windows và Linux. FASM cũng hỗ trợ cả chương trình 32 bit và 64 bit.

Vì vậy, tôi đoán bạn muốn chọn MASM theo yêu cầu của bạn.

+1

NASM cũng có sẵn cho Windows. Đã cập nhật – stmax

+0

@stmax! thanks :) –

+0

Cảm ơn Pavan. Có bất kỳ sự khác biệt nào trong cú pháp không? – user997112

0

Chỉ để nói về nó, RosAsm là một cửa sổ chỉ 32 bit lắp ráp rằng có một số điểm interresting như

  • một IDE tích hợp đó là tự biên soạn với mã nguồn có sẵn
  • một NASM lấy cảm hứng từ cú pháp
  • một hệ thống macro mạnh mẽ cho thiết kế ngôn ngữ cấp cao
  • tính đặc biệt để lưu trữ mã nguồn bên trong tệp .exe và .dll được tạo ra (trong phần PE).

Liên quan đến việc hỗ trợ 64 bit, RosAsm đã không nhưng một trong những người đóng góp của nó hiện đang làm việc trên một 64 bit viết lại (BUAsm, lắp ráp Bottom-Up)