Difficulty: Easy
Correct Answer: F8
Explanation:
Introduction / Context:Assemblers support pseudo-operations (pseudo-ops) that direct data placement without generating CPU opcodes. The “.BYTE” directive reserves one byte and initializes it with a specified value. Understanding numeric bases in assembler syntax is crucial for correct binary images.
Given Data / Assumptions:
Concept / Approach:Translate the constant exactly as written. Hexadecimal F8 corresponds to decimal 248 and binary 11111000. The assembler emits this one byte into the output at the current location counter.
Step-by-Step Solution:1) Recognize directive: “.BYTE” → allocate 1 byte.2) Read constant: “h#F8” → hexadecimal F8.3) Emit value: the generated machine data is 0xF8.4) Present in hex form as required: “F8”.
Verification / Alternative check:Convert F8 hex to decimal: 15*16 + 8 = 248. In binary: 11111000 (8 bits), matching a single byte size.
Why Other Options Are Wrong:“0111EF” and “F8 16” are malformed or multi-byte sequences. “03 16” represents two bytes. “42 65 61 72” are ASCII for “Bear,” unrelated to the directive.
Common Pitfalls:Confusing directives that emit multiple bytes (e.g., .WORD) with .BYTE, or misreading the base prefix leading to an incorrect numeric value.
Final Answer:F8
Discussion & Comments