作者nowar100 (抛砖引玉)
看板Grad-ProbAsk
标题Re: [理工] [计组]-MIPS语言
时间Tue Sep 22 11:14:36 2009
※ 引述《gn00618777 (123)》之铭言:
: ※ 引述《gn00618777 (123)》之铭言:
: li $t5,big $t5=big lui $t5,upper-hulf(big)
: : ori $t5,lower-hulf(big)
: lw $t5,big($t3) $t5=Memory[$t3+big] li $at,big
: : add $at,$at,$t5
: : lw $t5,0($at)
: 仔细去研究发现更多问题..
: (1)如果不看题目,怎麽知道哪一个是虚拟码和可以执行的码,虚拟码的指令
: 也会用在可以执行的上面,例如:li
这我不知道
: (2)指令格式 op rs rt rd shamt funct,我查某学校的专题发表..
: 他说 rs是第一个来源运算元暂存器
: rt是第二个来源运算元暂存器
: rd是目的暂存器,用来储存运算结果
: 例子: add $t0,$s1,$s2
: 照他上面这麽解释$s2不就变成储存结果的暂存器
: 阿不是$t0才是储存的暂存器吗?
课本指令那章看过了嘛,你已经弄混了
add $t0,$s1,$s2 是指令
(rd rs rt)
assemble出byte code以後会变成 000000 00000 00000 00000 00000 000000 这样的东西
( op rs rt rd shamt func )
: (3) 我有查很多MIPS指令,就是没看到过li
的确课本没讲
: (4) 上面的程式码 li $t5,big 需要分lui和ori来做,既然都有li $at,big
: 位啥不直接 li $at,big 然後 add,$t5,$zero,$at?
I-format指令,限制为16bit
若要读入32bit数字,或是比16bit更大的
那就需要用lui + ori 分两次做
: (5)都已经是固定的R-type指令的 op rs rt shamt funct
: 6 5 5 5 6 位元
: 为何可以执行add $t5,$t3,$at 指令,$at可以储存更大的"big"
: 表示他不是5位元了?
你现在这个5bit 指的是第几个register
举例来说,byte code 规则假设 $at = 00001
$bt = 00002
这跟 $at 可以放 32bit 资料是两回事
: 先暂时问这样好了= = 怕吓到大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.93.39