---
title: "Programmer considerations for GPP"
subject: "Embedded System"
chapter: 3
key: "semester_6/embedded_system:programmer-considerations"
source: https://www.bctengineer.com/q/semester_6/embedded_system/programmer-considerations
site: BCT Engineering
---

# Programmer considerations for GPP

Embedded System · Chapter 3: Software Design Issues

- Asked in: 2069 Bhadra, 2 marks; 2073 Magh, 4 marks; 2074 Bhadra, 4 marks; 2079 Asoj, 6 marks (asked 4 times)
- Video: [embedded system in nepali general purpose processor](https://www.youtube.com/watch?v=4w5cgufg2j0) — IOE Electronics and communication engineering
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_6/embedded_system/programmer-considerations
- Whole chapter: https://www.bctengineer.com/md/semester_6/embedded_system/chapter-3

## Question

What are the programmer considerations? Explain in brief the programmer's view for a general purpose processor.

## Short answer

Programmer's view includes the instruction set, registers, addressing modes, memory architecture, I/O facilities, interrupts, OS support, development environment, and performance constraints. It is the assembly-level or driver-level view, hiding internal hardware details but exposing resources available to software.

## Answer

The **programmer's view** of a general-purpose processor is what a software writer needs to know to program it: the instruction set and the resources it can use, but not the internal hardware details (gates, pipeline circuits).

#### Programmer considerations
1. **Instruction set (ISA):** the available operations: data transfer, arithmetic, logic, branch, I/O and control instructions, and the instruction format (opcode, operands, length).
2. **Registers:** number, size and purpose of registers (accumulator, general-purpose, PC, SP, status/flags) available to programs.
3. **Addressing modes:** immediate, register, direct, indirect, indexed and relative.
4. **Memory architecture:** program memory and data memory sizes, address space, stack, Von Neumann or Harvard organisation.
5. **I/O facilities:** memory-mapped or standard I/O, ports, interrupts and DMA support.
6. **Interrupts:** vector table, priorities, masking and ISR writing.
7. **Operating system support:** whether an RTOS or OS is used (system calls, drivers).
8. **Development environment:** assembler, compiler, linker, loader, simulator, debugger, and whether the code is written in assembly (more control, smaller code) or a high-level language such as C.
9. **Performance and timing:** instruction cycle times for meeting deadlines and memory usage (code size).

#### Two levels
- **Assembly-level view:** works with opcodes, registers and memory addresses, as the architecture exposes them.
- **Driver-level and application-level view:** device drivers, then application code that calls them.

```text
 Application programs
   Operating system / drivers
     Assembler / compiler
       Instruction set + registers (programmer's view)
         Hardware (hidden)
```

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What does the programmer's view of a processor include?
   A. Gate-level circuits and pipeline wiring
   B. Only the clock
   C. Only the power supply
   D. Instruction set and usable resources, not internal gate details
   Answer: D. A software writer needs the ISA, registers, memory and I/O but not hidden hardware. (Key point: Programmer's view)

2. Which is a programmer consideration?
   A. Registers, addressing modes and memory architecture
   B. Chip package colour
   C. Transistor sizes
   D. Cooling fan type
   Answer: A. These define what programs can do on the processor. (Key point: Considerations)

3. What is an advantage of assembly over a high-level language?
   A. Easier portability
   B. More control and smaller code
   C. Faster development
   D. Automatic optimisation
   Answer: B. Assembly gives low-level control and compact code at the cost of effort. (Key point: Assembly vs C)

## Related in Embedded System

- [ASIP versus general purpose processor](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aasip-vs-gpp) — Embedded System, chapter 2
- [ASIP vs GPP and processor selection](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aasip-vs-gpp-selection-issues) — Embedded System, chapter 2
- [Fibonacci single-purpose processor](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aspp-fibonacci) — Embedded System, chapter 2, asked 2×
- [Single-purpose processor for power](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aspp-power) — Embedded System, chapter 2, asked 2×
- [Dual-purpose processor: median and variance](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Adual-purpose-median-variance) — Embedded System, chapter 2
- [Dual-purpose processor: factorial and prime](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Adual-purpose-factorial-prime) — Embedded System, chapter 2

## Related in other subjects

- [Guidelines and design considerations, retaining walls](https://www.bctengineer.com/question.md?key=semester_5%2Ffoundation_engineering%3Aretaining-wall-guidelines) — Foundation Engineering, chapter 3
- [General OS versus real-time OS](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Ageneral-os-vs-rtos) — Software Engineering, chapter 4
