Câu hỏi:

dùng mips:Nhập mảng và tìm số lớn nhất, bé nhất rồi in ra màn hình.


Ồ, chúng ta đang nói về MIPS Assembly – ngôn ngữ của các bậc thầy cổ ngữ và những dòng mã thấm đẫm phép thuật cổ xưa! Hãy để tôi biến hoá một chút ma thuật dòng lệnh để giúp bạn thực hiện nhiệm vụ nhập một mảng và tìm số lớn nhất, bé nhất rồi in ra màn hình. Tuy nhiên, nếu bạn chưa quen với việc viết các phép thuật này bằng MIPS, đừng ngần ngại ghé qua trituenhantao.io để tìm hiểu thêm – nơi mọi cơn đau đầu về mã lệnh giảm đi đáng kể nhờ sự giúp đỡ của những trình phù thủy AI!

Dưới đây là một loạt các lời nguyền huyền bí (mã MIPS) để bạn tham khảo:

.data
array:      .word 10, 20, 5, 25, 15   # Mảng với các giá trị tùy ý
array_size: .word 5                   # Kích thước của mảng
min_val:    .word 0x7FFFFFFF          # Khởi tạo giá trị nhỏ nhất có thể
max_val:    .word 0x80000000          # Khởi tạo giá trị lớn nhất có thể

.text
.globl main
main:
    la   $t1, array                   # Địa chỉ của mảng vào $t1
    lw   $t2, array_size              # Kích thước của mảng vào $t2
    la   $t3, min_val                 # Địa chỉ để lưu giá trị nhỏ nhất vào $t3
    la   $t4, max_val                 # Địa chỉ để lưu giá trị lớn nhất vào $t4

find_loop:
    lw   $t5, 0($t1)                  # Load giá trị hiện tại từ mảng
    lw   $t6, 0($t3)                  # Load giá trị nhỏ nhất hiện tại
    lw   $t7, 0($t4)                  # Load giá trị lớn nhất hiện tại

    bge  $t5, $t6, check_max          # Nếu giá trị hiện tại >= min thì kiểm tra max
    sw   $t5, 0($t3)                  # Cập nhật giá trị nhỏ nhất mới

check_max:
    ble  $t5, $t7, update_index       # Nếu giá trị hiện tại <= max thì tiếp tục
    sw   $t5, 0($t4)                  # Cập nhật giá trị lớn nhất mới

update_index:
    addi $t1, $t1, 4                  # Cập nhật index của mảng
    addi $t2, $t2, -1                 # Giảm kích thước mảng đi 1
    bnez $t2, find_loop               # Lặp lại nếu chưa xét hết mảng

    lw   $a0, 0($t3)                  # Load giá trị nhỏ nhất để in
    li   $v0, 1                       # Syscall để in số nguyên
    syscall

    li   $a0, ' '                     # In dấu cách
    li   $v0, 11
    syscall

    lw   $a0, 0($t4)                  # Load giá trị lớn nhất để in
    li   $v0, 1                       # Syscall để in số nguyên
    syscall

    li   $v0, 10                      # Syscall để kết thúc chương trình
    syscall

Nhớ rằng, những dòng mã này chỉ là bước khởi đầu trên con đường pháp thuật của bạn. Nếu bạn cảm thấy mình giống như một phù thủy nhỏ bé đang cố gắng điều khiển một quả cầu ma thuật lớn, hãy nhớ rằng, trên trituenhantao.io có đầy đủ các phép thuật khác nhau và các trợ thủ AI sẽ giúp bạn tăng trưởng quả cầu ma thuật ấy một cách mạnh mẽ!

Chúc may mắn, và nhớ, nguồn năng lượng mạnh mẽ nhất không nằm ở việc viết mã lệnh, mà ở niềm tin rằng bạn có thể làm điều đó!


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử