Hướng dẫn ARM thiết lập
Các tập lệnh ARM có thể được chia thành sáu lớp học rộng giảng dạy:
• Hướng dẫn Chi nhánh
• Hướng dẫn liệu chế biến trên trang A1-7
hướng dẫn chuyển giao • đăng ký Trạng thái trên trang A1-8
• Load và lưu trữ trên trang A1-8
• Hướng dẫn coprocessor trên trang A1-10
• Hướng dẫn Exception-tạo ra trên trang A1-10.
Hầu hết các hướng dẫn xử lý dữ liệu và một loại hướng dẫn coprocessor có thể cập nhật bốn mã điều kiện cờ trong CPSR (Negative, Zero, Carry và tràn) theo đến kết quả của họ.
Hầu như tất cả các lệnh ARM chứa một lĩnh vực điều kiện 4-bit. Một giá trị của trường này xác định rằng các hướng dẫn được thực hiện vô điều kiện.
Mười bốn giá trị khác chỉ định điều kiện thực hiện các hướng dẫn. Nếu những lá cờ mã điều kiện chỉ ra rằng các điều kiện tương ứng là đúng khi các hướng dẫn bắt đầu thực hiện, nó thực hiện bình thường.
Nếu không, những hướng dẫn không có gì. 14 điều kiện có sẵn cho phép:
• kiểm tra cho sự bình đẳng và không bình đẳng
• Thử nghiệm cho <, <=,>, và> = bất bình đẳng, trong cả hai số học ký và unsigned
• mỗi lá cờ mã điều kiện để được kiểm tra riêng.
Giá trị thứ mười sáu của lĩnh vực tình trạng mã hóa hướng dẫn thay thế. Những điều này không cho phép thực thi có điều kiện. Trước khi ARMv5 những hướng dẫn này là không thể đoán trước. A1.2.1 hướng dẫn Chi nhánh Như cũng như cho phép nhiều dữ liệu chế biến hoặc tải hướng dẫn để thay đổi dòng điều khiển bằng văn bản cho PC, một hướng dẫn chi nhánh tiêu chuẩn được cung cấp với một 24-bit đã ký từ bù đắp, cho phép chuyển tiếp và ngành lạc hậu lên đến 32MB. Có một chi nhánh và Link (BL) lựa chọn mà còn giữ địa chỉ của lệnh sau khi chi nhánh tại R14, LR. Điều này cung cấp một chương trình con gọi có thể được trả lại từ bằng cách sao chép các LR vào PC. Ngoài ra còn có hướng dẫn chi nhánh mà có thể chuyển đổi tập lệnh, do đó thực hiện mà tiếp tục vào mục tiêu chi nhánh sử dụng các tập lệnh Thumb hoặc Jazelle opcodes. Hỗ trợ Thumb cho phép mã ARM để gọi chương trình con Thumb, và thủ tục con ARM để trở về một người gọi Thumb. Hướng dẫn tương tự trong các tập lệnh Thumb cho phép các thiết bị chuyển mạch Thumb ARM tương ứng. Tổng quan về các tập lệnh Thumb được cung cấp trong Chương A6 Set Thumb Chỉ thị. Các hướng dẫn BXJ giới thiệu với các biến thể J của ARMv5, và hiện diện trong ARMv6, cung cấp cơ chế kiến trúc cho nhập cảnh vào trạng thái Jazelle, và khẳng định có liên quan của J cờ trong CPSR. hướng dẫn liệu chế biến A1.2.2 Các hướng dẫn xử lý dữ liệu thực hiện tính toán trên các thanh ghi mục đích chung. Có năm loại của các hướng dẫn xử lý dữ liệu: hướng dẫn • Số học / logic • Hướng dẫn so sánh • Single Instruction Nhiều dữ liệu (SIMD) hướng dẫn • hướng dẫn Multiply trên trang A1-8 hướng dẫn • Miscellaneous Xử lý dữ liệu trên trang A1-8. Arithmetic hướng dẫn / logic Các hướng dẫn số học / logic sau đây chia sẻ một định dạng phổ biến hướng dẫn. Những thực hiện một số học hoặc hoạt động hợp lý trên lên đến hai toán hạng nguồn, và ghi kết quả vào một ghi đích. Họ cũng có thể tùy chọn cập nhật những lá cờ mã điều kiện, dựa trên kết quả. Trong hai toán hạng nguồn: • một luôn luôn là một đăng ký • người kia có hai dạng cơ bản: - một giá trị ngay lập tức - một giá trị đăng ký, tùy chọn thay đổi. Nếu toán hạng là một đăng ký thay đổi, số lượng thay đổi có thể là một giá trị tức thời hoặc giá trị của thanh ghi khác. Năm loại thay đổi có thể được xác định. Do đó, mỗi lệnh số học / logic có thể thực hiện một số học / hoạt động logic và một hoạt động thay đổi. Kết quả là, ARM không có hướng dẫn chuyển đổi chuyên dụng. Các bộ đếm chương trình (PC) là một thanh ghi mục đích chung, và do đó số học hướng dẫn / logic có thể viết kết quả của họ trực tiếp đến máy tính. Điều này cho phép dễ dàng thực hiện một loạt các hướng dẫn nhảy. Hướng dẫn So sánh Các hướng dẫn so sánh sử dụng định dạng lệnh tương tự như các lệnh số học / logic. Những thực hiện một số học hoặc logic hoạt động trên hai toán hạng nguồn, nhưng không ghi kết quả vào sổ đăng ký. Họ luôn luôn cập nhật những lá cờ điều kiện, dựa trên kết quả. Các toán hạng nguồn hướng dẫn so sánh các hình thức tương tự như của các lệnh số học / logic, bao gồm khả năng để kết hợp một dịch chuyển này. Lệnh đơn Nhiều dữ liệu (SIMD) hướng dẫn add và hướng dẫn trừ đối xử với nhau như hai toán hạng số 16-bit song song, hoặc bốn số 8-bit song song. Họ có thể được coi là dấu hoặc không dấu. Các hoạt động có thể tùy chọn được bão hòa, quấn xung quanh, hoặc các kết quả có thể được giảm một nửa để tránh tràn. Những hướng dẫn có sẵn trong ARMv6. Multiply hướng dẫn Có một số lớp học của các hướng dẫn nhân, được giới thiệu vào những thời điểm khác nhau trong kiến trúc. Xem hướng dẫn Multiply trên trang A3-10 để biết chi tiết. Hướng dẫn khác Xử lý dữ liệu, bao gồm Đếm Leading Zeros (CLZ) và Sum Unsigned những sự khác biệt tuyệt đối với tùy chọn tích lũy (USAD8 và USADA8). A1.2.3 hướng dẫn chuyển giao Status đăng ký Các hướng dẫn chuyển giao ghi trạng thái chuyển nội dung của các CPSR hoặc một SPSR đến hoặc từ một thanh ghi mục đích chung. Văn bản cho CPSR có thể: • thiết lập các giá trị của những lá cờ mã điều kiện • thiết lập các giá trị của các gián đoạn cho phép bit • thiết lập chế độ xử lý và nhà nước • thay đổi endianness của Load và cửa hàng hoạt động. A1.2.4 Load và lưu trữ hướng dẫn dưới đây nạp và lưu trữ có sẵn: • Load và Store Đăng ký • Tải và Lưu trữ Nhiều đăng ký trên trang A1-9 • Load và Store Đăng ký độc quyền trên trang A1-9. Cũng có những trao đổi và hướng dẫn byte trao đổi, nhưng việc sử dụng của họ bị phản đối ARMv6. Đó là khuyến cáo rằng tất cả các phần mềm di chuyển đến khi sử dụng tải và lưu trữ sổ đăng ký chỉ dẫn độc quyền. Load và cửa hàng Đăng ký hướng dẫn tải ký có thể tải một doubleword 64-bit, một từ 32-bit, một nữa vòng trái đất 16-bit, hoặc một byte 8-bit từ bộ nhớ vào một đăng ký hoặc đăng ký. Byte và nửa vòng trái đất tải có thể được tự động zero-gia hạn hoặc ký-mở rộng như chúng được nạp. Hướng dẫn cửa hàng Đăng ký có thể lưu trữ một doubleword 64-bit, một từ 32-bit, một nữa vòng trái đất 16-bit, hoặc một byte 8-bit từ một đăng ký hay ghi vào bộ nhớ. Từ ARMv6, tải unaligned và các cửa hàng của các từ và halfwords được hỗ trợ, truy cập vào địa chỉ byte quy định. Trước ARMv6, unaligned tải 32-bit xoay dữ liệu, tất cả các cửa hàng 32-bit đã được liên kết, và các hướng dẫn bị ảnh hưởng khác không thể đoán trước. Load và cửa hàng Đăng ký lệnh có ba chế độ địa chỉ chính, tất cả đều sử dụng một thanh ghi cơ sở và một offset theo quy định của hướng dẫn:. • Trong bù địa chỉ, địa chỉ bộ nhớ được hình thành bằng cách thêm hoặc trừ đi một bù đắp đến hoặc từ các giá trị đăng ký cơ sở • Trong pre-lập chỉ mục địa chỉ, địa chỉ bộ nhớ được hình thành trong cùng một cách như đối với việc giải quyết bù đắp. Là một tác dụng phụ, các địa chỉ bộ nhớ cũng được viết lại để các cơ sở đăng ký. • Trong bài-lập chỉ mục địa chỉ, địa chỉ bộ nhớ là giá trị đăng ký cơ sở. Là một tác dụng phụ, một offset được thêm vào hoặc trừ vào giá trị đăng ký cơ sở và kết quả được ghi lại vào sổ đăng ký cơ sở. Trong mỗi trường hợp, sự bù đắp có thể là một mắt hoặc giá trị của một thanh ghi chỉ số. Offsets đăng ký dựa trên cũng có thể được thu nhỏ lại với các hoạt động thay đổi. Khi máy tính là một thanh ghi mục đích chung, một giá trị 32-bit có thể được nạp trực tiếp vào máy tính để thực hiện một bước nhảy đến bất kỳ địa chỉ trong không gian bộ nhớ 4GB. Load và cửa hàng Nhiều thanh ghi Tải Nhiều (LDM) và Store Nhiều (STM) hướng dẫn thực hiện một khối chuyển của bất kỳ số lượng các thanh ghi mục đích chung hoặc từ bộ nhớ. Bốn chế độ địa chỉ được cung cấp: • trước tăng • hậu increment • pre-sụt • hậu giảm. Các địa chỉ cơ sở được quy định bởi một giá trị đăng ký, trong đó có thể được cập nhật tùy chọn sau khi chuyển nhượng. Là sự trở lại chương trình con địa chỉ và PC giá trị trong thanh ghi mục đích chung, mục chương trình con rất hiệu quả và trình tự xuất cảnh có thể được xây dựng với LDM và STM: • Một hướng dẫn STM duy nhất tại mục chương trình con có thể đẩy đăng ký nội dung và địa chỉ trở lại vào ngăn xếp, cập nhật con trỏ ngăn xếp trong quá trình. • Một hướng dẫn LDM duy nhất tại lối ra chương trình con có thể khôi phục lại đăng ký nội dung từ stack, tải các máy tính với địa chỉ trở lại, và cập nhật con trỏ ngăn xếp. LDM và STM hướng dẫn cũng cho phép mã rất hiệu quả cho các khối bản và các thuật toán di chuyển dữ liệu tương tự. Load và cửa hàng Đăng ký độc quyền Những hướng dẫn hỗ trợ đồng bộ hóa bộ nhớ hợp tác xã. Chúng được thiết kế để cung cấp cho các hành vi nguyên tử cần thiết cho semaphores mà không cần khóa tất cả các tài nguyên hệ thống giữa các giai đoạn nạp và lưu trữ. . Xem LDREX trên trang A4-52 và STREX trên trang A4-202 để biết chi tiết A1.2.5 hướng dẫn coprocessor Có ba loại hướng dẫn coprocessor: hướng dẫn xử lý dữ liệu-Những bắt đầu một hoạt động nội bộ coprocessor cụ thể. Hướng dẫn chuyển dữ liệu Các dữ liệu chuyển coprocessor đến hoặc từ bộ nhớ. Địa chỉ của việc chuyển giao được tính bằng bộ vi xử lý ARM. Đăng ký hướng dẫn chuyển giao này cho phép một giá trị coprocessor được chuyển đến hoặc từ một đăng ký ARM, hoặc một cặp thanh ghi ARM. A1.2.6 hướng dẫn Exception-tạo hai loại giảng dạy được thiết kế gây ra ngoại lệ cụ thể để xảy ra. hướng dẫn phần mềm gián đoạn SWI hướng dẫn gây ra một phần mềm gián đoạn ngoại lệ xảy ra. Những thường được sử dụng để thực hiện cuộc gọi đến một hệ điều hành, yêu cầu một dịch vụ hệ điều hành được xác định. Các mục ngoại lệ gây ra bởi một hướng dẫn SWI cũng thay đổi một chế độ xử lý đặc quyền. Điều này cho phép một nhiệm vụ không có đặc quyền để truy cập vào các chức năng đặc quyền, nhưng chỉ trong những cách được cho phép bởi hệ điều hành. Hướng dẫn phần mềm breakpoint hướng dẫn BKPT gây ra một ngoại lệ abort để xảy ra. Nếu phần mềm sửa lỗi thích hợp được cài đặt trên các vector hủy bỏ, hủy bỏ một ngoại lệ được tạo ra trong thời trang này được coi là một breakp
đang được dịch, vui lòng đợi..