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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

汇编MIPS指令集 add两数相加、syscall输出字符串、bgt分支语句、ble循环语句

發(fā)布時間:2024/2/28 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编MIPS指令集 add两数相加、syscall输出字符串、bgt分支语句、ble循环语句 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于偽指令與mips指令的區(qū)別:

MIPS標(biāo)準(zhǔn)定義cpu指令集的同時也定義了偽指令,偽指令可以使匯編語言可讀性更好,更容易維護(hù)。每條偽指令都有對應(yīng)的mips指令。匯編器負(fù)責(zé)將偽指令翻譯成正式的mips指令。

偽指令的功能定義,可以在MARS->Help->Extended (pseudo) Instructions中查看

第一個程序: li add 指令的使用

功能:兩數(shù)相加

運(yùn)行效果

第二個程序:li la syscall指令的使用 程序的分段

功能:輸出Hello World

運(yùn)行結(jié)果:在run I/O中輸出了Hello World

第三個程序 bgt分支語句

功能:
用戶輸入兩個數(shù)字a,b
如果a>b,則輸出yes
否自輸出no

C語言代碼

對應(yīng)的匯編代碼

以下可復(fù)制

#C program code # scanf("%d",&t0); # scanf("%d",&t1); # if(to>t1)printf("YES"); # else printf("NO");#assemble code .datamsg_yes: .ascii"YES\0"msg_no: .ascii"NO\0" .text#input t0li $v0,5 #syscall read a num from I/O when v0=5syscall #user input saved to v0move $t0,$v0 #save v0 num to t0#input t1li $v0,5 #syscall read a num from I/O when v0=5syscall #user input saved to v0move $t1,$v0 #save v0 num to t1#branch greater thanbgt $t0,$t1,sub1 #if t0>t1, goto sub1, else goto next line#elsela $a0,msg_no #print NOli $v0,4syscallli $v0,10 #exit programsyscall#if sub1: la $a0,msg_yes #print YESli $v0,4syscall

運(yùn)行結(jié)果

輸入

4
5

輸出

NO

輸入

100
50

輸出

YES


第四個程序 ble循環(huán)語句

功能:計(jì)算1+2+3+...+100

C語言代碼

匯編語言代碼

以下可復(fù)制

li $t0,1 #t0:looptimes(1~100)li $t1,0 #t1:sum loop: add $t1,$t1,$t0 #t1=t1+t0add $t0,$t0,1 #t0=t0+1#branch less equalble $t0,100,loop #if t0<=100, goto loop#outputmove $a0,$t1 #when v0=1, syscall print a0li $v0,1syscall

運(yùn)行結(jié)果

輸出為:5050

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的汇编MIPS指令集 add两数相加、syscall输出字符串、bgt分支语句、ble循环语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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