LONGEPASS
數位電子/程式語言/Q79
中等
正確率 -
Q79.

Atmega328P 程式碼如下,轉譯後的組語包含下列何者?數位電子 甲級 程式語言 第 79 題 題目 圖片

數位電子 · 甲級 · 程式語言 · Q79

難易度分析

3 / 5

此題需掌握 AVR 16 位元 I/O 註冊寫入順序、IN/OUT 語法與 LDI 指令用法,並辨識兩項正確選項,屬於中等複雜度。

正確答案 (複選):①, ②

  • ① 數位電子 甲級 程式語言 第 79 題 選項 ① 圖片:TCNT1 為 16 位元計數器,寫入 `0x1FF` 時,低位元組 0xFF 存入 TCNT1L,高位元組 0x01 存入 TCNT1H。此選項正確呈現將 `0x01` 載入 r17(高位)、`0xFF` 載入 r16(低位)的 LDI 指令,符合 16 位元暫存器寫入前的準備動作。
  • ② 數位電子 甲級 程式語言 第 79 題 選項 ② 圖片:讀取 16 位元 TCNT1 暫存器時,必須先讀 低位元組 TCNT1L 再讀 高位元組 TCNT1H,此為 AVR 硬體自動鎖定機制確保資料一致性。此選項的 IN 指令 順序正確,符合讀取 16 位元 I/O 暫存器的標準程序。

錯誤選項解析

  • ③ 數位電子 甲級 程式語言 第 79 題 選項 ③ 圖片:此選項使用 OUT 指令 將暫存器值寫入 TCNT1L/TCNT1H,但 OUT 指令的語法為 `OUT I/O暫存器, 通用暫存器`,此處順序雖正確,但題目包含讀取動作 `i = TCNT1`,應使用 IN 指令 而非 OUT 指令,故此選項不符合題意。
  • ④ 數位電子 甲級 程式語言 第 79 題 選項 ④ 圖片:OUT 指令 的正確語法為 `OUT I/O暫存器, 通用暫存器`,此選項將目的與來源顛倒,寫成 `OUT 通用暫存器, I/O暫存器`,屬於語法錯誤。AVR 組語中 OUT 指令不支援此種參數順序。
Learning Tip

"16 位元 I/O 暫存器存取為常考重點:寫入時使用 OUT 指令(先低後高),讀取時使用 IN 指令(先低後高)。注意 LDI 用於載入立即值到通用暫存器,IN/OUT 用於通用暫存器與 I/O 暫存器間的資料傳輸。容易混淆的是 IN/OUT 指令的參數順序:`IN Rd, A`(從 I/O 讀到 Rd)、`OUT A, Rr`(從 Rr 寫到 I/O)。"

學員答題分佈

①數位電子 甲級 程式語言 第 79 題 選項 ① 圖片0%
②數位電子 甲級 程式語言 第 79 題 選項 ② 圖片0%
③數位電子 甲級 程式語言 第 79 題 選項 ③ 圖片0%
④數位電子 甲級 程式語言 第 79 題 選項 ④ 圖片0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目