| 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: [email protected]