2009-02-22 37 views
7

Tôi hiện đang trong quá trình học ngôn ngữ lắp ráp. Tôi đang sử dụng Gas trên Linux Mint (32-bit). Sử dụng cuốn sách này: Programming from the Ground Up.Linux 64 bit, Ngôn ngữ lắp ráp, Sự cố?

Máy tôi đang sử dụng có bộ xử lý AMD Turion 64 bit nhưng tôi bị giới hạn ở 2 GB bộ nhớ RAM. Tôi đang nghĩ đến việc nâng cấp cài đặt Linux của mình lên phiên bản 64 bit của Linux Mint, nhưng tôi lo lắng vì sách được nhắm mục tiêu theo kiến ​​trúc 32 bit x86 mà các ví dụ mã sẽ không hoạt động.

Vì vậy, hai câu hỏi:

  1. Có khả năng có bất kỳ vấn đề với các mẫu mã?
  2. Có ai ở đây nhận thấy bất kỳ lợi ích nào nói chung khi sử dụng Linux 64 bit trên 32 bit (tôi đã thấy một số chủ đề về Stack Overflow về điều này nhưng chúng chủ yếu liên quan đến Windows Vista và Windows XP.)

Trả lời

4

Ví dụ mã của bạn sẽ vẫn hoạt động. Bộ xử lý và hệ điều hành 64 bit vẫn có thể chạy mã 32 bit trong một loại "chế độ tương thích". Ví dụ lắp ráp của bạn không khác nhau. Bạn có thể phải cung cấp thêm một dây chuyền lắp ráp hoặc hai (chẳng hạn như .BITS 32) nhưng đó là tất cả.

Nói chung, việc sử dụng hệ điều hành 64 bit sẽ nhanh hơn việc sử dụng hệ điều hành 32 bit. x86_64 có nhiều thanh ghi hơn i386. Có nhiều người trong số họ có nghĩa là ít công cụ phải được di chuyển trên và tắt ngăn xếp (và bộ nhớ tạm thời khác) do đó chương trình của bạn dành ít thời gian quản lý dữ liệu và thêm thời gian làm việc trên dữ liệu đó.

Sửa: Để biên dịch mã 32-bit trên 64bit linux sử dụng khí, bạn chỉ cần sử dụng đối số dòng lệnh "--32", như đã nêu trong the GAS manual

+0

cảm ơn bạn rất nhiều, hữu ích nhất! – bplus

1

Thậm chí nếu bạn chạy Linux 64bit, nó có thể biên dịch và chạy các tệp nhị phân 32 bit trên đó. Tôi không biết làm thế nào tốt hỗ trợ Mint cho đó là, tôi giả sử bạn nên kiểm tra. Tuy nhiên,

Bộ phối hợp 64 bit không hoàn toàn tương thích với 32 bit, ví dụ bạn có các thanh ghi khác (nhiều hơn). Có một số hướng dẫn cụ thể không có sẵn trên một trong hai nền tảng.

Tôi cho rằng di chuyển sang 64bit không phải là vấn đề lớn. Bạn vẫn có thể viết 32bit lắp ráp và sau đó có lẽ cố gắng để có được nó cũng chạy như 64bit (không nên quá khó), như là một nguồn của nhiều hơn lập trình/học tập vui vẻ.

+0

thankyou, rất hữu ích! – bplus

+0

Tôi thấy cách bạn thích câu trả lời khác nhiều hơn, nhưng nếu bạn nghĩ rằng tôi là hữu ích, bạn có thể cho nó một phiếu bầu +1 là tốt;) nhưng tôi hài lòng với bình luận của bạn, quá :) – ypnos

1

Thông thường 32 bit rất nhiều nên chỉ sử dụng 64 bit trở lên nếu bạn thực sự CẦN IT. Tốt nhất để quyết định trước khi lập trình nếu bạn muốn làm như một ứng dụng 32 bit hoặc một ứng dụng 64 bit và sau đó dính vào nó như là chế độ hỗn hợp gỡ lỗi ca có được nhanh chóng khôn lanh.

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