opcode55
511cpu指令集
算術運算指令
整數運算指令(7)
000000
rsrt
rd保留
add rs,rt,rd
000001
rsrt
immaddi,rs,rt,imm
000010
rsrt
rd保留
sub rs,rt,rd
000011
rsrt
immsubi,rs,rt,imm
000100
rsrt
rd保留
mul rs,rt,rd
000101
rsrt
rd保留
div rs,rt,rd
000110
rsrt
rd保留
mod rs,rt,rd
浮點數運算指令(4)
000111
rsrt
rd保留
fadd rs,rt,rd
001000
rsrt
rd保留
fsub rs,rt,rd
001001
rsrt
rd保留
fmul rs,rt,rd
001010
rsrt
rd保留
fdiv rs,rt,rd
邏輯運算指令(9)
001011
rsrt
rd保留
and rs,rt,rd
001100
rsrt
rd保留
or rs,rt,rd
001101
rsrt
保留保留
not rs,rt
001110
rsrt
rd保留
xor rs,rt,rd
001111
rsrt
immandi rs,rt,imm
010000
rsrt
immori rs,rt,imm
010001
rsrt
immxori rs,rt,imm
010010
rsrt
shamt
sll rs,rd,shamt
010011
rsrt
shamt
slr rs,rd,shamt
比較轉移指令(7)
010100
rsrt
lable
less rs,rt,lable
010101
rsrt
lable
great rs,rt,lable
010110
rsrt
lable
lessu rs,rt,lable
010111
rsrt
lable
greatu rs,rt,lable
011000
rsrt
lable
equal rs,rt,lable
011001
rsrt
lable
uequal rs,rt,lable
011010
rs保留
jmp rs
資料傳輸指令(10)
011011
rsrt
mov rs,rt
011100
rsrt
rd保留
lword rs,rt,rd
011101
rsrt
rd保留
sword rs,rt,rd
011110
rsrt
rd保留
lhalf rs,rt,rd
011111
rsrt
rd保留
shalf rs,rt,rd
100000
rsrt
rd保留
lbyte rs,rt,rd
100001
rsrt
rd保留
sbyte rs,rt,rd
100010
rs保留
immlui rs,imm
100011
f1rt
rd保留
ldouble $f1,$r2,$r3
100100
f1rt
rd保留
sdouble $f1,$r2,$r3
系統指令(5)
100101
rs保留
call rs
100110
保留ret
100111
rs保留
push rs
101000
rs保留
pop rs
101001
保留halt
101010
immint imm
101011
保留iret
101100
switch
偽指令load rs,imm
指令生成 指令資料結構及虛擬機器指令集
這裡要說的指令,並不是x86體系結構下的機器指令,而是虛擬機器指令。jerry虛擬機器的設計並不是非常複雜 甚至看起來很不靈活 它是乙個棧式虛擬機器,不包括任何暫存器 除了指令計數器之外 所有的指令都是基於棧進行的。在文章最後將給出完整的指令集。現在先給出指令資料結構,它們包括 typedef en...
虛擬機器 指令寫出
是的,還有幾個節點的指令生成沒有測試呢,包括流控制語句,io.不過呢,流控制是相對比較容易優化的,進行 生成指令再對比 的測試不太好維護,而 io 指令很簡單 所以要不這樣,把指令寫出來,然後開個虛擬機器執行,如果執行沒問題就算測試通過了.一些常見的語義錯誤處理在之前的之前的內容中都以注釋形式出現,...
Thumb指令集與ARM指令集的區別
thumb指令集 thumb指令可以看做是arm指令壓縮形式的子集,是針對 密度的問題而提出的,它具有16為的 密度。thumb不是乙個完整的體系結構,不能指望處理程式只執行thumb指令而不支援arm指令集。因此,thumb指令只需要支援通用功能,必要時,可借助完善的arm指令集,例如 所有異常自...