日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[MIPS汇编语言]InsertionSort插入排序

發(fā)布時(shí)間:2025/4/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [MIPS汇编语言]InsertionSort插入排序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果對(duì)MIPS實(shí)現(xiàn)數(shù)組的輸入輸出不懂,可以點(diǎn)這里
如果對(duì)MIPS實(shí)現(xiàn)簡單排序有興趣,可以點(diǎn)這里
如果你想要看一下怎么用C++(或者C)實(shí)現(xiàn)插入排序,可以點(diǎn)這里
如果你想要看一下用Python實(shí)現(xiàn)插入排序,可以點(diǎn)這里
這里舉得栗子是降序排列
MIPS指令代碼如下:建議和比較熟悉的高級(jí)程序語言對(duì)比著看

.dataarray: .space 1024input_msg:.ascii "input the number"space_str:.ascii "\n" # 輸出空格信息 .text .globl main main:la $t6 array # 將數(shù)組地址的起始位置放到t6寄存器中move $t7 $zero # 將t7寄存器初始化為0,用于計(jì)數(shù)addi $t8 $zero 10 # t8寄存器內(nèi)存儲(chǔ)好10 input:la $a0 input_msg # 將a0寄存器中放input輸入信息la $v0 4 # 4號(hào)為輸出字符串命令syscall # 系統(tǒng)命令調(diào)用la $v0 5 # 5號(hào)為數(shù)字輸入命令syscall # 系統(tǒng)命令調(diào)用mul $t0 $t7 4 # 計(jì)算出偏移量add $t0 $t0 $t6 # 基地址加上偏移量得到目標(biāo)地址sw $v0 0($t0) # 將輸出的數(shù)放到目標(biāo)地址中addi $t7 $t7 1 # t7寄存器內(nèi)數(shù)值加一 bne $t7 $t8 input # 如果不是相等的話,就繼續(xù)輸入addi $t7 $zero 1 # 將t7初始化為1 sort:slt $t0 $t7 10 # 小于10的真值放到t0上beq $t0 $zero output # 如果等于10就直接輸出mul $t0 $t7 4 # 得到偏移量add $t0 $t0 $t6 # 得到目標(biāo)地址lw $a1 0($t0) # a1放keyaddi $t5 $t7 -1 # 得到i-1 j = i - 1 sort2:mul $t0 $t5 4 # t5是jadd $t0 $t0 $t6 # 得到目標(biāo)地址lw $t4 0($t0) # t4中放有a[j]lw $t3 4($t0) # t3中放有a[j + 1]slt $t0 $t5 $zero # j < 0 的真值放到t0上bne $t0 $zero putKey # 如果是真的小于0了直接到交換位置slt $t0 $t4 $a1 # a[j] < key 的真值放到t0上beq $t0 $zero putKey # 如果不是就到交換環(huán)節(jié)mul $t0 $t5 4 # t5是jadd $t0 $t0 $t6 # 得到目標(biāo)地址sw $t4 4($t0) # a[j + 1] = a[j]addi $t5 $t5 -1 # j = j - 1j sort2 putKey: # a[j + 1] = keymul $t0 $t5 4 # t5是jadd $t0 $t0 $t6 # 得到目標(biāo)地址sw $a1 4($t0) # 將key寫入a[j + 1]addi $t7 $t7 1 # i = i + 1j sortoutput: move $t7 $zero # 用于計(jì)數(shù) 控制輸入addi $t8 $zero 10 # 總共有10個(gè)數(shù) print_all:move $t0 $t7 # 將 t7的數(shù)放到這個(gè)臨時(shí)的t0上mul $t0 $t0 4 # 得到偏移量add $t0 $t6 $t0 lw $a0 0($t0) # 所得到的地址的的數(shù) load到 a0上li $v0 1syscall la $a0 space_strli $v0 4syscalladdi $t7 $t7 1 blt $t7 $t8 print_all jr $rali $v0 10 # 退出 syscall

總結(jié)

以上是生活随笔為你收集整理的[MIPS汇编语言]InsertionSort插入排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。