Difficulty: Easy
Correct Answer: Correct
Explanation:
Introduction / Context: Assembly language is a human-readable representation of machine instructions. Historically, programmers sometimes converted these mnemonics to opcodes and addresses manually—a practice known as “hand assembly.” This still helps in understanding instruction encoding and debugging at the lowest level.
Given Data / Assumptions:
Concept / Approach: Hand assembly involves looking up opcodes, addressing modes, and operand encodings in the ISA manual, then writing the corresponding machine bytes. The process is architecture-agnostic; it applies to CISC, RISC, 8-bit, 16-bit, or 32-bit ISAs, though it becomes tedious for large programs.
Step-by-Step Solution:
Write the assembly source with labels and mnemonics.Resolve labels to addresses and compute displacements.Use the ISA reference to map each mnemonic and addressing mode to opcode bytes.Generate the machine code listing for use in ROM/RAM or for programming devices.Verification / Alternative check:
Compare hand-assembled bytes to the output of an assembler for the same source to confirm correctness.Why Other Options Are Wrong:
Incorrect: Assemblers are common, but they do not preclude manual translation.Valid only for RISC / Applies only to 8-bit MCUs: Hand assembly is independent of ISA type or word size.Common Pitfalls:
Miscalculating branch offsets or immediate values.Forgetting endianness when writing multibyte operands.Final Answer:
Correct
Discussion & Comments