1. (Tóm tắt các câu trả lời trong bình luận của Jukka)
Mã khởi động được lưu trữ trong ROM (bộ nhớ không bay hơi) tại một địa chỉ cố định X.
Khi bạn kích hoạt tín hiệu "đặt lại" trong CPU, CPU sẽ khởi tạo các thanh ghi của nó thành các giá trị được mã hóa cứng nhất định. Con trỏ lệnh là một trong những thanh ghi được khởi tạo cho một số giá trị được mã hóa cứng. Về bản chất, nhà sản xuất CPU chọn địa chỉ X được mã hóa cứng này. Do đó, khi bạn đặt lại CPU, con trỏ lệnh được đặt lại về cùng một địa chỉ cố định X. CPU bắt đầu thực hiện các lệnh như bình thường: tìm nạp lệnh tiếp theo từ địa chỉ X , giải mã nó, thực hiện nó, vv
Sau đó, bất cứ ai kết hợp một máy tính hoàn chỉnh phải đảm bảo rằng có một cái gì đó hữu ích tại địa chỉ X (ví dụ: chip nhớ ROM có mã khởi động có ý nghĩa).
2. Xây dựng
CPU có cách làm việc rất đơn giản, được gọi là chu trình FETCH-EXECUTE:
(a) FETCH : Nó đi vào bộ nhớ và đưa ra lệnh ở địa chỉ [PC]. (PC là tên của một thanh ghi CPU bên trong; nó giữ địa chỉ của lệnh chúng ta cần thực hiện tiếp theo ..).
(b) Thực thi : PC thực thi lệnh mà nó vừa lấy từ bộ nhớ
(c) PC←PC + 1. (*)
(d) Quay trở lại (a).
Vòng lặp tìm nạp này xảy ra mọi lúc, bất kể chương trình bạn đang chạy. Đặc biệt, khi CPU khởi động (giả sử, khi sức mạnh của nó tăng từ 0 đến Vcc), CPU chỉ cần bắt đầu thực hiện vòng lặp trên.
Giá trị ban đầu của PC phụ thuộc vào CPU cụ thể. Có thể là CPU thức dậy với PC = 0 hoặc có thể là PC = 0xFFF0 (như xảy ra với họ X86 của Intel) hoặc với bất kỳ PC giá trị nào khác =PCi n i t. Nếu bạn nhấn nút đặt lại hoặc tắt và bật nguồn, CPU sẽ khôi phục PC về giá trị ban đầu.PCi n i t và CPU bắt đầu chạy chương trình trong bộ nhớ tại địa chỉ PCi n i t, thông qua vòng lặp tìm nạp.
Bây giờ đây là nhiệm vụ của nhà thiết kế máy tính để đảm bảo rằng BIOS nằm trong bộ nhớ tại địa chỉ PCi n i t. BIOS thường nằm trong bộ nhớ không bay hơi nên luôn có chương trình để chạy trong địa chỉ đó, ngay cả khi bạn vừa tắt và bật (điều này sẽ xóa RAM nhưng không phải là BIOS. BIOS, mặc dù có thể và xảy ra, ví dụ, khi thiết bị của bạn cập nhật "phần sụn").
(*) Tiến lên PC bằng +1 giả định rằng mỗi lệnh chiếm 1 địa chỉ của không gian bộ nhớ. Điều này hiếm khi xảy ra. Trong các hệ thống thực, chúng ta có thể thấy ở đây PC + 4 (như trong MIPS 32b) hoặc PC + x (vớix ∈ { 1 , . . . , 7 } phụ thuộc vào chính hướng dẫn) như trong họ X86, v.v.