; 汇编语言: 访问和控制CPU
; 汇编语言: 大小写不敏感, 可以MOV moV Mov mOv mov MOv mOV
; nasm命令: nasm.exe exam.asm -l exam_list.txt -o exam.bin
; 本文件自定义规范:
; 指令全小写 mov
; 寄存器全部大写
; 16进制全大写: 0x123ABC
; 变量命名 TimeNow: DW
; 通用寄存器:
; 16位: AX, 拆分位高8位: AH, 低8位: AL
; 16位: BX, 拆分位高8位: BH, 低8位: BL
; 16位: CX, 拆分位高8位: CH, 低8位: CL
; 16位: DX, 拆分位高8位: DH, 低8位: DL
; 16位: SI DI BP SP
; 4个段寄存器
; 代码段寄存器: CS
; 数据段寄存器: DS
; x86赠送的自定义段寄存器: ES
; 栈段寄存器: SS
; 其他段寄存器
; 指令指针(Instruction Pointer)寄存器: IP
; IP需要配合CS使用[CS:IP]
; 不能通过指令修改IP, 只有CPU能修改IP的值(执行完指令后自动offset指令长度)
; 内存空间分段: [CS:IP]指向物理内存: CS * 16 + IP
; [0xA86B:0x99FF] = 0xA86B * 16 + 0x99FF = 0xF1331
; 每个段最大 65536 byte, 此时可分 16 个段
; 最多可分 65536 个段, 此时每个段 16 byte
; 需要自行控制指向正确物理内存. CPU只提供机制.
; 16位实模式下, 内存空间只有1MB, 即: 1024KB == 0xFFFFF byte == 1,048,576 byte