2012-02-02 33 views
7

Tôi hiện đang tham gia khóa học Ngôn ngữ tổ chức và lắp ráp máy tính chủ yếu sử dụng hướng dẫn MIPS để dạy ngôn ngữ lắp ráp.MIPS hướng dẫn thiết lập di chuyển vs add/addi 0 để lưu trữ giá trị?

tôi nhận thấy rằng rất nhiều các ví dụ mà giáo sư đã đăng sử dụng trực tuyến thêm hoặc Addï để di chuyển một giá trị vào đối số đăng ký $ a0 để gọi dịch vụ in ấn như sau ...

# store the first integer in $a0 and print 
add $a0, $zero, $t0 
li $v0, 1 
syscall 

hay. ..

# store the first integer in $a0 and print 
addi $a0, $t0, 0 
li $v0, 1 
syscall 

tôi cũng đã nhận thấy một số ví dụ trực tuyến, nơi những người khác chỉ cần sử dụng các hướng dẫn di chuyển để thực hiện điều tương tự như sau ...

# store the first integer in $a0 and print 
move $a0, $t0 
li $v0, 1 
syscall 

Có sử dụng hướng dẫn thêm hoặc addi hơn chỉ đơn giản bằng cách sử dụng di chuyển trong trường hợp này? Nếu vậy thì tại sao? Có sự khác biệt về hiệu suất hay đây chỉ là vấn đề về hương vị?

Trả lời

9

Hướng dẫn move không phải là hướng dẫn thực sự - đó là hướng dẫn giả giả được dịch bởi hướng dẫn lắp ráp add.

Có toàn bộ các hướng dẫn giả này, xem ví dụ: https://en.wikipedia.org/wiki/MIPS_architecture#Pseudo_instructions

Đây là loại điều là rất phổ biến trên các bộ xử lý RISC, nơi bạn muốn có một tập lệnh tối thiểu, và một hướng dẫn cụ thể có thể được sử dụng cho nhiều hơn một mục đích.

+0

Cảm ơn Paul đã làm rõ. Tôi không nhận ra động thái đó chỉ là một chỉ dẫn giả. –

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