[爆卦]mips組合語言是什麼?優點缺點精華區懶人包

為什麼這篇mips組合語言鄉民發文收入到精華區:因為在mips組合語言這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者gn00618777 (123)看板Grad-ProbAsk標題Re: [理工] [計組]-MI...


我前一個問題問的太不清楚了再重新問一個

我只對虛擬直接定址有問題

格式 j(6bit)address(26bit)

首先老師教我們
由指令較低的26位元和PC較高的位元合併


例: j---2500

2500*4=10000換成16進位=00002710
而我們只要前面的7位數字(28bit,之所以28bit是因為左移2次所以乘4)
接下來和PC一個4bit合併,假設PC指到 1xxxxxxx,我們只需最前面的1位(4bit)
最後變成10002710H

而有一題

40020--------------Loop: sll $t1,$s3,2

40024----------------------add $t1,$t1,$s6

40028----------------------lw $t0,0($t1)

40032----------------------bne $t0,$s5,Exit

40036----------------------addi $s3,$s3,1

40040----------------------j Loop

最後一個的機械碼為 2-----10005
照老師講解的我做一次,希望能看我觀念錯再哪
假設他為8bit,你經過左移2次(*4)的值出來應該為 0040020(因為pc的高位元0)
跟pc+起來所以為00040020,要求原本的,所以要右移回來2次

00040020 = 0000--0000--0000--0100--0000--0000--0010--0000

變成0000--0000--0000-0000--0001--0000--0000--0000--1000
答案為j--10008,可是答案卻是j--10005

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.168.61.146
※ 編輯: gn00618777 來自: 218.168.61.146 (11/26 01:10)
gensim:錯在你把10進制當16進制 11/26 01:15
gn00618777:00040020 8個數字是老師假設的,8個數字應該為16進位阿 11/26 07:54
gn00618777:2^4=16 32/4=8,所以我才覺得老師這樣說怪怪的 11/26 07:57

你可能也想看看

搜尋相關網站