CÔNg cụ LẬp trình mips



tải về 300.78 Kb.
trang2/3
Chuyển đổi dữ liệu02.11.2023
Kích300.78 Kb.
#55527
1   2   3
MIPSSSS
huong dan thuc hanh mips asm tren pcspim 5652, 5
Memory: Bảng biểu diễn bộ nhớ của kiến trúc MIPS. Chúng ta có thể thấy giá trị hiện tại của các ô nhớ và thực hiện các thao tác đọc/ghi.

  • Registers: Bảng hiển thị các thanh ghi trong kiến trúc MIPS. Chúng ta có thể theo dõi giá trị hiện tại của các thanh ghi và thực hiện các thao tác đọc/ghi.

  • Console: Khu vực hiển thị đầu ra của chương trình. Chúng ta có thể in các thông điệp hoặc giá trị từ chương trình vào đây.

  • Buttons: MARS cung cấp các nút điều khiển cho việc biên dịch, chạy và dừng chương trình, cũng như các tác vụ gỡ lỗi khác.

    • 5.a. Compile: Biên dịch chương trình thành mã HEX.

    • 5.b. Run: Chạy chương trình.

    • 5.c. Step-by-step Run: Chạy từng dòng lệnh.

    • 5.d. Reset Registers: Reset giá trị tập thanh ghi về mặc định (0x00000000).

  • Source: Cung cấp mã HEX của từng dòng lệnh và địa chỉ của nó.





    - Hướng dẫn biên dịch và chạy chương trình MIPS trên MARS:


    Để biên dịch và chạy chương trình trên MARS, bạn có thể làm theo các bước sau:

    1. Viết mã assembly MIPS trong trình soạn thảo (Editor) của MARS.

    2. Nhấn nút “Assemble the current file” (Nút 5.a.) để biên dịch mã assembly thành mã máy.

    3. Nếu không có lỗi cú pháp hoặc lỗi nào, bạn có thể nhấn nút “Run the current program” để chạy chương trình. (Nút 5.b.)

    4. Kết quả đầu ra của chương trình sẽ được hiển thị trong khu vực Console. Bạn cũng có thể theo dõi giá trị của các thanh ghi và ô nhớ trong các bảng tương ứng.

    5. Để dừng chương trình, bạn có thể nhấn nút “Stop the program” hoặc chỉnh sửa mã và biên dịch lại.



    3.5 ƯU NHƯỢC ĐIỂM CỦA HỢP NGỮ MIPS.
    Có một số ưu điểm và nhược điểm của ngôn ngữ máy hợp MIPS:
    Ưu điểm:
    - Trực quan và dễ hiểu: Mã hợp ngữ MIPS có cú pháp đơn giản, dễ đọc và hiểu hơn so với ngôn ngữ lập trình bậc cao.
    Các yếu tố sau đây góp phần làm cho mã hợp ngữ MIPS trở nên trực quan và dễ hiểu:
    + Cú pháp đơn giản: Mỗi lệnh MIPS bao gồm opcode và Các thanh ghi/số nguyên ngắn gọn trên một dòng. Tránh Các ký hiệu phức tạp.
    + Tập lệnh nhỏ: Chỉ có 32 lệnh máy cơ bản, dễ nhớ và hiểu ý nghĩa của từng lệnh.
    + Cách đặt tên thanh ghi theo quy ước: Thanh ghi $t0-$t7 dành cho tạm, $s0-$s7 dành cho dữ liệu, $ra cho kết quả, $gp cho con trỏ...
    + Các thanh ghi thường được sử dụng: Những thanh ghi thường xuyên sử dụng như $t0-$t3, $s0-$s1, $ra cho phép dễ dàng theo dõi dữ liệu.
    + Hầu hết lệnh 1 operand: Nhiều lệnh chỉ cần 1 thanh ghi như add, sub, and... dễ đọc hơn Các lệnh phức tạp.
    + Ý nghĩa lệnh rõ ràng: Tên Các lệnh như add, sub, lw, sw... thể hiện rõ chức năng của chúng.
    Độ trực quan cao khiến mã hợp ngữ MIPS dễ đọc, duyệt và phát hiện lỗi hơn so với Các ngôn ngữ máy khác.

    - Hiệu suất cao: Mã hợp ngữ MIPS được biên dịch trực tiếp thành mã máy nên chạy nhanh hơn được biên dịch qua trình biên dịch.


    Các yếu tố sau góp phần tạo nên hiệu suất cao trong kiến trúc MIPS:
    + Sử dụng kiến trúc RISC đơn giản: Chỉ có 32 lệnh máy cơ bản và đơn giản giúp quá trình xử lý từng lệnh nhanh hơn so với kiến trúc CISC phức tạp hơn.
    + Thời gian thực thi đồng nhất: Mọi lệnh đều mất cùng một chu kỳ máy nên dễ dự đoán và lập lịch hóa tốt hơn.
    + Sử dụng register file nhỏ: Cho phép truy xuất dữ liệu nhanh hơn thay vì phải truy cập bộ nhớ chậm hơn.
    + Kiến trúc pipeline: Cho phép xử lý đa lệnh cùng một lúc tăng thông lượng.
    + Hỗ trợ lệnh có điều kiện: Như branch, jump giúp chuyển đổi luồng điều khiển nhanh hơn.
    + Tối ưu hoá công việc: Sử dụng Các chế độ ngủ điện để ngắt nguồn khi không thực hiện công việc.
    + Dễ tối ưu bởi người lập trình: Mã nguồn dễ hiểu và sửa đổi hơn. Nhờ đặc tả RISC đơn giản, MIPS cho tốc độ xử lý cao so với Các kiến trúc CISC phức tạp hơn.

    - Tiếp cận trực tiếp phần cứng: Cho phép tiếp cận và điều khiển trực tiếp Các thành phần phần cứng như bộ nhớ, thanh ghi...


    Các yếu tố sau góp phần cho phép ngôn ngữ máy MIPS tiếp cận trực tiếp với phần cứng:
    + Sử dụng thanh ghi để lưu trữ và truyền dữ liệu: Cho phép trực tiếp điều khiển Các thanh ghi như $t0-$t7, $s0-$s7 để lưu giá trị.
    + Có Các lệnh truy xuất bộ nhớ: Như lw, sw cho phép đọc/ghi trực tiếp vào bộ nhớ chính.
    + Hỗ trợ lệnh điều khiển dòng lệnh: Như j, jal, branch cho phép điều khiển luồng chương trình.
    + Có lệnh toán học cơ bản: Như add, sub, mul, div để thực hiện phép tính trên thanh ghi.
    + Tiếp cận cổng I/O: Thông qua sử dụng thanh ghi $k0-$k1 và lệnh liên quan đến I/O.
    + Truy cập bộ định thời: Thông qua lệnh đọc/ghi thanh ghi định thời.
    Nhờ đặc tả này mà người lập trình MIPS có thể điều khiển trực tiếp Các thành phần phần cứng như bộ nhớ, thanh ghi, đồng hồ...

    - Dung lượng nhỏ: Mã hợp ngữ MIPS chiếm ít bộ nhớ hơn so với ngôn ngữ bậc cao.


    Các yếu tố sau góp phần khiến cho mã hợp ngữ MIPS có dung lượng nhỏ:
    + Sử dụng kiến trúc RISC đơn giản với chỉ 32 lệnh máy cơ bản. Điều này giảm kích thước bộ mã hợp ngữ.
    + Sử dụng thanh ghi để lưu trữ dữ liệu tạm thay vì phải lưu trên bộ nhớ. Giảm kích thước bộ nhớ cần sử dụng.
    + Có định dạng nhị phân đơn giản cho mỗi lệnh máy chỉ cần 1-2 byte. Tiết kiệm dung lượng so với định dạng văn bản.
    + Hỗ trợ Các phép toán trên thanh ghi không cần lưu trữ dữ liệu trung gian.
    + Có Các lệnh nhảy ngắn giúp tiết kiệm không gian địa chỉ.
    + Không hỗ trợ Các lệnh phức tạp đòi hỏi nhiều thông số.
    + Có thể nén mã hợp ngữ bằng Các kỹ thuật nén dữ liệu thông thường.
    Nhờ đặc điểm kiến trúc đơn giản, mã hợp ngữ MIPS thường có dung lượng nhỏ gọn.

    Nhược điểm:
    - Khó viết và bảo trì: Yêu cầu người lập trình phải hiểu rõ kiến trúc máy và Các thao tác phần cứng.
    Có một số yếu tố khiến việc viết và bảo trì mã hợp ngữ MIPS khó khăn:
    + Kiến trúc MIPS là kiến trúc cấp thấp, người lập trình phải am hiểu chi tiết về cấu trúc và Cách hoạt động của phần cứng.
    + Chỉ sử dụng những thanh ghi hạn chế, người lập trình phải quản lý và sử dụng thanh ghi một Cách hiệu quả.
    + Không có hỗ trợ từ ngôn ngữ bậc cao, phải viết mã từ đầu bằng ngôn ngữ máy. Dễ bị lỗi khi phát triển.
    + Khó bảo trì và mở rộng do mã máy khó đọc hơn ngôn ngữ bậc cao.
    + Dễ xảy ra lỗi do sai sót khi thao tác trực tiếp với thanh ghi, bộ nhớ.

    + Khó tái sử dụng mã giữa Các nền tảng phần cứng khác nhau.


    + Cần kiến thức sâu về cấu trúc và lập trình nâng cao để phát triển Các ứng dụng lớn, phức tạp.
    Do đặc điểm cấp thấp, việc lập trình và bảo trì mã MIPS đòi hỏi kỹ năng chuyên sâu.

    - Khả năng mở rộng hạn chế: Khó mở rộng chương trình để thêm tính năng mới.


    Có một số yếu tố khiến khả năng mở rộng của kiến trúc MIPS bị hạn chế:
    + Số lượng thanh ghi hạn chế: Chỉ có 32 thanh ghi chung và 8 thanh ghi dành cho mục đích riêng biệt. Giới hạn dung lượng xử lý.
    + Không có Các lệnh phức tạp: Kiến trúc RISC đơn giản chỉ hỗ trợ Các lệnh cơ bản. Khó mở rộng để hỗ trợ Các tính năng mới.
    + Không gian địa chỉ hạn hẹp: Chỉ 32 bit địa chỉ, hạn chế dung lượng bộ nhớ có thể sử dụng.
    + Khó nâng cấp phần cứng: Việc thay đổi kiến trúc thanh ghi hoặc bộ lệnh sẽ làm mất tương thích với mã đã có.
    + Khó mở rộng giao diện I/O: Hệ thống I/O cố định, khó mở rộng hỗ trợ thiết bị mới.
    + Hạn chế tính bảo mật: Khó bổ sung Các tính năng an ninh mạnh như xử lý ngoại lệ,...
    Do kiến trúc đơn giản nên MIPS có khả năng mở rộng hạn chế so với Các kiến trúc phức tạp hơn.

    - Không dễ chuyển đổi giữa hệ thống: Mã hợp ngữ phụ thuộc kiến trình máy cụ thể.


    Một nhược điểm của kiến trúc MIPS là khả năng chuyển đổi giữa Các hệ thống phần cứng khác nhau bị hạn chế vì một số lý do sau:
    + MIPS sử dụng kiến trúc RISC đơn giản nhưng khác biệt giữa Các nhà sản xuất về cấu trúc thanh ghi và bộ lệnh.
    + Bộ xử lý MIPS của từng nhà sản xuất có thể có Các lệnh máy mở rộng riêng biệt.
    + Các hệ điều hành và phần mềm hỗ trợ cũng có thể khác nhau giữa Các nền tảng MIPS.
    + Cách quản lý bộ nhớ, địa chỉ thanh ghi có thể khác biệt.
    + Các thiết bị ngoại vi, giao diện I/O không phải lúc nào cũng tương thích.
    Do đó, mã nguồn MIPS phải được biên dịch lại hoặc sửa đổi đáng kể để chạy trên Các nền tảng phần cứng MIPS khác nhau. Khả năng chuyển đổi giữa hệ thống bị hạn chế.

    - Bảo mật thấp: Dễ bị đọc và sửa đổi bởi người khác.


    Một trong những nhược điểm của kiến trúc MIPS là mức độ bảo mật tương đối thấp, do một số yếu tố sau:
    + Không có cơ chế quản lý quyền truy cập bộ nhớ mạnh: MIPS sử dụng chế độ địa chỉ bảng không cho phép phân biệt quyền truy cập.
    + Không hỗ trợ xử lý ngoại lệ phức tạp: Không thực hiện kiểm tra giới hạn phạm vi địa chỉ, dễ dẫn đến lỗi tràn địa chỉ.
    + Không có cơ chế bảo vệ thanh ghi: Mã độc có thể truy cập trực tiếp vào thanh ghi nếu khai thác được lỗ hổng bảo mật.
    + Không cô lập quyền truy cập của phần mềm: Mọi chương trình đều có quyền truy cập tối đa vào hệ thống.
    + Khó thực hiện xác thực và ủy quyền tập trung: Thiếu cơ chế quản lý danh tính người dùng mạnh mẽ.
    Do đó mức độ bảo mật của MIPS bị hạn chế so với Các kiến trúc hiện đại hơn.


    tải về 300.78 Kb.

    Chia sẻ với bạn bè của bạn:
  • 1   2   3




    Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
    được sử dụng cho việc quản lý

        Quê hương