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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[MIPS汇编语言]简单排序实现

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

排序是程序語言的基礎操作
通過排序練習可以提高對語言的掌握程度
匯編是可以說是最底層的語言了,學習匯編,可以提高對幾乎所有語言的理解程度。(個人看法)
下面展示了用MIPS匯編語言實現(xiàn)的簡單排序
(對了,如果助教,或者教授, 你看到這個,別懷疑是我在網(wǎng)上抄的哇!!!可以先跟我確認下哇!!!!)

.text .globl main main:la $t6,array # 將數(shù)組地址其實地址放到 t6位置上move $t7 $zero # 用于計數(shù) 控制輸入addi $t8 $zero 10j input input:la $a0 input_msg # 將輸入信息放到a0 這個寄存器上li $v0 4 # 將命令符寄存器中放入立即數(shù)4 用于字符輸出syscall # 輸入提示符的輸入完成li $v0 5 # 調用了輸入命令 5 裝載到$v0上syscall # 系統(tǒng)調用 輸入的數(shù)被放到了v0上move $t0 $t7 # 將臨時的計數(shù)寄存器中的內容放到臨時寄存器t0上mul $t0 $t0 4 # 得到了在該點的地址偏移值add $t0 $t0 $t6 # 將數(shù)組地址加上了偏移量t0,得到當前地址 sw $v0 0($t0) # 將$vo中的數(shù)放到t0對應的地址中addi $t7 $t7 1 # 對計數(shù)的$t7進行加一操作blt $t7 $t8 input # 如果不相等,就循環(huán)該進程# 開始排序了--- 采用 簡單排序方式move $t7 $zero # 計數(shù)初始化,作為外層的遍歷下標 sort1:addi $t5 $t7 1addi $t8 $zero 9 slt $t0 $t7 $t8 beq $t0 $zero output # 經(jīng)過確認了,一定會到達第二層sort2:# sort2表示排序從t7 + 1開始到結尾的部分和t7比較大小(t7用于外層計數(shù) t5用于內層計數(shù))# 先將兩個數(shù)給拉下來放到$a1 $a2 兩個 register上# 用t3 t4 做地址運算同時存儲了那兩個東西的地址mul $t3 $t7 4add $t3 $t3 $t6 # 得到了外層的那個數(shù)的地址lw $a1 0($t3) # 得到了外層那個數(shù)值mul $t4 $t5 4add $t4 $t4 $t6 # 得到了內層的那個數(shù)的地址lw $a2 0($t4) # 得到了內層那個數(shù)值slt $t0 $a1 $a2 # 如果內層那個數(shù)大于等于外層那個數(shù) t0就會是0beq $t0 $zero swap # 就要進行交換sort3:addi $t5 $t5 1 # 內層計數(shù)加一addi $t8 $zero 10slt $t0 $t5 $t8 bne $t0 $zero sort2 # 如果不是0的話,說明還沒到終點 還需要進行第二層循環(huán) addi $t7 $t7 1 # 外層計數(shù)加一j sort1 # 進行外層循環(huán) swap:# 進行交換,交換地址是 t3 t4 對應的值是 a1 a2sw $a2 0($t3)sw $a1 0($t4)j sort3output: move $t7 $zero # 用于計數(shù) 控制輸入addi $t8 $zero 10 # 總共有10個數(shù) print_all:move $t0 $t7 # 將 t7的數(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.data array:.space 2048 # 開辟數(shù)組空間 input_msg:.ascii "Input number: " # 輸入數(shù)字提示符space_str:.ascii "\n" # 輸出空格信息

最后,老套路,宣傳一波自己的公眾號!(求關注哇!)
本人中大一肥宅,歡迎大家關注,請掃下面的二維碼(〃’▽’〃)


如果覺得有幫助的話,可以掃碼,贊賞鼓勵一下!謝謝!


總結

以上是生活随笔為你收集整理的[MIPS汇编语言]简单排序实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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