1 -- notes about interrupt Vectors
1. Where is the interrupt vector table stored in the memory during system boot?
When the system is just booting, the memory size from 0x00000 to 0x0003ff is 1 kb, which is used to store the interrupt vector table. Each interrupt vector occupies 4 bytes and can store 256 interrupt vectors in total.
2. During system boot, in real mode, the address can only be 1 MB. Why should we use 4 bytes to address the interrupt?
I was wondering when I first saw it. We all know that during programming, the pointer is 4 bytes and can address 4 GB. Can we use less bytes in real mode? In fact, the actual mode memory address selection method is: Segment value * 16 + offset value, that is, the memory address. Of the four bytes, the two segment values and the two outer offset values are stored. Therefore, there are 4 bytes in total.
3. This document is written and compiled from the Internet. There are often conflicts between different documents. This will inevitably lead to some errors and will be revised later. 2 -- interrupt vector table
Memory Address (hexadecimal) |
Corresponding vector number (hexadecimal) |
Interrupted use |
Basic interrupt vector |
0x3c4-0x3ff |
F1-FF |
Unused |
0x218-0x3c3 |
86-f0 |
The function of the Basic Interpreter is provided when the basic program is running. |
0x200-0x217 |
80-85 |
Reserved for basic |
0x1e0-0x1ff |
78-7f |
Unused |
0x1dc-0x1df |
77 |
Hardware interruption 15 |
0x1d8-0x1db |
76 |
Hardware interruption 14 |
0x1d4-0x1d7 |
75 |
Hardware interruption 13 |
0x1d0-0x1d3 |
74 |
Hardware interruption 12 |
0x1cc-0x1cf |
73 |
Hardware interruption 11 |
0x1c8-0x1cb |
72 |
Hardware interruption 10 |
0x1c4-0x1c7 |
71 |
Hardware interruption 9 |
0x1c0-0x1c3 |
70 |
Hardware interruption |
0x1a0-0x1bf |
68-6f |
Unused |
0x180-0x19f |
60-67 |
Units reserved for user programs |
0x128-0x17f |
4a-5f |
Retained |
0x124-0x127 |
49 |
Pointing to the keyboard enhancement service conversion table |
0x120-0x123 |
48 |
PC, used to convert the PC's keyboard code into a standard keyboard code |
0x11c-0x11f |
47 |
Retained |
DOS interrupt vector |
0x118-0x11b |
46 |
Second hard disk parameter block |
0x114-0x117 |
45 |
Retained |
0x110-0x113 |
44 |
PC, used to point to the low-resolution graph character parameter table |
0x108-0x10f |
42-43 |
Unused |
0x104-0x107 |
41 |
Hard Disk parameter block |
0x0c0-0x0cb |
34-40 |
Unused |
0x0cc-0x0cf |
33 |
Mouse interruption |
0x0c0-0x0cb |
30-32 |
Unused |
0x0bc-0x0bf |
2f |
Multi-channel service interruption |
0x0b8-0x0bb |
2e |
Basic shell program loading |
0x0ac-0x0b7 |
2b-2d |
Unused |
0x0a8-0x0ab |
2a |
Microsoft Network Interface |
0x0a4-0x0a7 |
29 |
Fast character writing |
0x0a0-0x0a3 |
28 |
DOS Security usage |
0x09c-0x09f |
27 |
Terminate and resident programs |
0x098-0x09b |
26 |
Absolute disk write function |
0x094-0x097 |
25 |
Absolute disk read Function |
0x090-0x093 |
24 |
Severe error handling (cannot be called directly) |
0x08c-0x08f |
23 |
CTRL + break processing address (cannot be called directly) |
0x088-0x08b |
22 |
DOS return address when the program is terminated (cannot be called directly) |
0x084-0x087 |
21 |
Dossystem function call |
0x080-0x083 |
20 |
DOS interrupt return |
Data Table pointer |
0x07c-0x07f |
1f |
Graphic character extended code |
0x078-0x07b |
1e |
Floppy Disk parameter block |
0x074-0x077 |
1D |
Video parameter block |
Interruptions provided to users |
0x070-0x073 |
1c |
Soft Interrupt of Timer control |
0x06c-0x06f |
1B |
CTRL + break Soft Interrupt |
BiOS interruption |
0x068-0x06b |
1a |
Clock management |
0x064-0x067 |
19 |
Boot Loader-system self-lifting |
0x060-0x063 |
18 |
Basic entry code -- rom basic entry code |
0x05c-0x05f |
17 |
Printer output |
0x058-0x05b |
16 |
Keyboard I/O |
0x054-0x057 |
15 |
Cartridge I/O |
0x050-0x053 |
14 |
RS-232 serial communication port I/O |
0x04c-0x04f |
13 |
Disk I/O |
0x048-0x04b |
12 |
Memory Capacity Measurement |
0x044-0x047 |
11 |
Device Inspection |
0x040-0x043 |
10 |
Screen Display I/O |
8259 interrupt vector |
0x03c-0x03f |
F |
Lpt2 controller interrupt-parallel printer (irq7) |
0x038-0x03b |
E |
Disk controller interruption-soft disk (irq6) |
0x034-0x037 |
D |
Lpt2 controller interrupt-hard disk (Parallel Port) (irq5) |
0x030-0x033 |
C |
Asynchronous Communication (primary) -- serial communication interface 1 (irq4) |
0x02c-0x02f |
B |
Asynchronous Communication (secondary) -- serial communication interface 2 (irq3) |
0x028-0x02b |
A |
Color/graphics (irq2) |
0x024-0x027 |
9 |
Keyboard (irq1) |
0x020-0x023 |
8 |
Timer (irq0) |
8088 interrupt vector |
0x01c-0x01f |
7 |
Retained |
0x018-0x01b |
6 |
Retained |
0x014-0x017 |
5 |
Print Screen |
0x010-0x013 |
4 |
Overflow |
0x00c-0x00f |
3 |
Breakpoint command |
0x008-0x00b |
2 |
Unshielded interrupt |
0x004-0x007 |
1 |
Single Step (for Debug) |
0x000-0x003 |
0 |
Divide by zero |