Assembly Language Convert 組合語言的轉換

指令格式

指令格式大致分成3種:R、I、J,每種都是32bit(0~31)。
R-type:6bit  +  5bit  +  5bit  +  5bit  +  5bit  +  6bit
        opcode   rs       rt       rd       shamt    funct
I-type:6bit  +  5bit  +  5bit  +  16bit
        opcode   rs       rt       immediate
J-type:6bit  +  26bit
        opcode   address

opcode:指令的動作,又稱為運作碼。

rs:第一個來源運算元暫存器。

rt:第二個來源運算元暫存器。

rd:目的運算元暫存器。

shamt:位移量。

funct:功能碼。

immediate:立即值。

address:目標位址。

Example:

1.

add $t0, $s1, $s2 請將此MIPS指令轉為機器指令。

解:

add為R-type,所以欄位對應為:

0(add opcode為0) $s1 $s2 $t0 0(無位移量) 32(經查表得知運作碼為32)

將暫存器換成10進位編號:

0 17 18 8 0 32

轉成二進位:

000000 10001 10010 01000 00000 100000

2.

lw $s1, 32($s2) 請將此MIPS指令轉為機器指令。

解:

lw為I-type,所以欄位對應為:

35(lw opcode為35) $s2 $s1 32(此為立即值)

將暫存器換成10進位編號:

35 18 17 32

轉成二進位:

100011 10010 10001 0000000000100000

3.

sll $t2, $s0, 4 請將此MIPS指令轉為機器指令(10進位即可)。

解:

sll為R-type,所以欄位對應為:

0 0(rs欄位並未用到) 16 10 4(左移4位元) 0

results matching ""

    No results matching ""