指令集與組合語言

下列何者是組合語言與機器語言之間的關係?

  1. A組合語言的指令會由組譯器幾乎一對一地轉換為機器語言的指令
  2. B組合語言與CPU的種類無關,是通用的,在任何CPU上都能直接執行
  3. C機器語言是在執行時逐行解譯組合語言的直譯器
查看答案與解析

正確答案:A. 組合語言的指令會由組譯器幾乎一對一地轉換為機器語言的指令

組合語言是用「add a0, a0, a1」這種人類可讀的符號(助憶符號)來撰寫機器語言的指令,再由組譯器轉換為指令的位元列。由於幾乎與指令一對一對應,ISA不同,組合語言也就不同。不過「li」或「mv」這類虛擬指令,組譯器會將其替換為一個以上的真正指令。將標籤換算為位址也是組譯器的工作。

  • A. 正確。是以人類可讀的符號來撰寫指令。
  • B. 組合語言依ISA而異。
  • C. 機器語言是CPU直接執行的位元列。
練習這個領域 前往領域頁面

指令集與組合語言的其他題目

  1. RISC-V的虛擬指令「nop」(什麼都不做),實際上會被組譯器替換為下列哪一個指令?
  2. 下列何者是RISC-V的「add」指令與「addi」指令的差異?
  3. 執行上述RISC-V程式碼之後,暫存器a2的值是多少?
  4. 下列何者是RISC-V指令「lw t0, 8(sp)」的動作?
  5. 在RISC-V的條件分支指令「beq a0, a1, label」中,分支目標label的位址是如何表示的?