Language | Examples | Comments | C |
4th generation | code generators, AI | large projects, productivity | |
High-level | Fortran, Pascal, Basic | easy on humans, hw independent | |
Low-level | Assembler (mnemonics) | hard, but full control of hw | |
Machine | operation codes | ``understood'' by the CPU | |
Hardware | bits, 0/5V voltage levels |
data transfer | mov, in, out, xchg |
arithmetic | add, sub, inc, dec, mul, div |
logical | and, or, xor, not |
string manipulation | |
control transfer | jmp, call |
processor control |
16-bit segment | high 8 bits | low 8 bits | comments |
General registers: | |||
AX | AH | AL | accumulator register |
BX | BH | BL | |
CX | CH | CL | |
DX | DH | DL | |
Addressing registers: | |||
SI | - | - | |
DI | - | - | |
BP | - | - | |
Control registers: | |||
SP | - | - | |
IP | - | - | |
Flags | - | - | |
Segment registers: | |||
CS | - | - | Code Segment pointer |
DS | - | - | Data Segment pointer |
ES | - | - | |
SS | - | - |
segment (16 bits) |
|
||||||||||||||||||||
+ | |||||||||||||||||||||
offset (16 bits) |
|
||||||||||||||||||||
= | |||||||||||||||||||||
address (20 bits) |
00000 - 003FF | I/O |
00400 - 0047F | BIOS Ram |
00480 - 005FF | RAM for special purposes (ROM Basic) |
00600 - 9FFFF | Program memory |
A0000 - AFFFF | VGA video expansion |
B0000 - B0FFF | IBM monochome video |
B8000 - BFFFF | CGA video memory |
C0000 - CFFFF | reserved for video expansion |
D0000 - D7FFF | ROM, usually not all installed |
D8000 - DFFFF | " |
E0000 - E7FFF | " |
E8000 - EFFFF | " |
F0000 - F3FFF | reserved for ROM |
F4000 - F5FFF | " |
F6000 - FDFFF | Basic in ROM in the original IBM PC |
FE000 - FFFFF | BIOS ROM |
More to come...
For info, write to: physics@brocku.ca