JavaScript is required

Cho đoạn mã Assembler sau:MOV R1, #0F0HMOV @R1, #0FHMOV A, #0F0HADD A, @R1Kết quả của thanh ghi R1 là:

A.

0H

B.

FEH

C.

FFH

D.

F0H

Trả lời:

Đáp án đúng: D


Đoạn mã Assembler thực hiện các bước sau:

  1. MOV R1, #0F0H: Gán giá trị F0H (240 trong hệ thập phân) cho thanh ghi R1. Thanh ghi R1 bây giờ chứa địa chỉ F0H.
  2. MOV @R1, #0FH: Gán giá trị 0FH (15 trong hệ thập phân) cho ô nhớ có địa chỉ được lưu trong R1 (tức là địa chỉ F0H).
  3. MOV A, #0F0H: Gán giá trị F0H cho thanh ghi A.
  4. ADD A, @R1: Cộng giá trị của ô nhớ có địa chỉ được lưu trong R1 (tức là ô nhớ F0H, hiện đang chứa giá trị 0FH) vào thanh ghi A. Vậy A = A + (F0H) = F0H + 0FH = FFH.

Tuy nhiên, câu hỏi yêu cầu kết quả của thanh ghi R1. Lệnh MOV R1, #0F0H gán giá trị F0H cho R1 và không có lệnh nào khác thay đổi giá trị của R1. Do đó, giá trị của R1 vẫn là F0H.

Câu hỏi liên quan