2010-03-07 41 views
9

MOV có lẽ là hướng dẫn đầu tiên mọi người học trong khi học ASM.MOV src dest (hoặc) MOV dest src?

Chỉ cần bây giờ tôi gặp một cuốn sách Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona mà nói:

alt text http://i.imagehost.org/0897/mov.gif

Nhưng tôi biết rằng nó là MOV dest, src. Nó giống như "Tải dest với src". Ngay cả Wiki cũng nói như vậy.

Tôi không nói rằng tác giả sai. Tôi biết anh ấy đúng. Nhưng tôi đang thiếu gì ở đây?

btw .. anh ấy đang sử dụng số as của GCC để lắp ráp các hướng dẫn này. Nhưng điều đó không nên thay đổi cú pháp lệnh phải không?

+0

Tôi nên đọc lời nói đầu và đoạn 1 của chương 1. Tôi bỏ qua chúng: ( – claws

Trả lời

27

mov dest, src được gọi là Cú pháp Intel.

mov src, dest được gọi là AT & Cú pháp T.

Bộ phối hợp GNU sử dụng cú pháp AT & T, tất cả các trình tạo x86 khác mà tôi biết sử dụng cú pháp của Intel. Bạn có thể đọc về sự khác biệt on wikipedia.

+10

Một số người chỉ muốn xem thế giới ghi chú. – Paschalis

+0

Lưu ý rằng trình tạo GNU sử dụng cú pháp AT & T _by default_, chứ không phải Bạn có thể chuyển đổi nó sang cú pháp Intel bằng cách sử dụng '.intel_syntax noprefix' chỉ thị – Ruslan

1

Có hai loại ngôn ngữ lắp ráp riêng biệt - Cú pháp của Intel và AT & T. Bạn có thể tìm thấy so sánh cả hai trên số Wikipedia's assembly language page.

Cơ hội là sách của bạn sử dụng cú pháp AT & T, trong đó toán hạng nguồn xuất hiện trước điểm đến.

6

Có, sử dụng/sử dụng khí AT & Cú pháp T sử dụng thứ tự src, dest. MASM, TASM, NASM, vv tất cả đều sử dụng thứ tự 'dest, src', vì nó xảy ra, cú pháp AT & T không phù hợp với bộ vi xử lý Intel, và (ít nhất là IMO) là một mớ hỗn độn gần như không thể đọc được, ví dụ: movzx

+0

" không thể đọc được lộn xộn "khá nhiều móng tay nó. –

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