Object Pascal 编程深入解析:表达式、语法与应用
1. 内置汇编器表达式基础
1.1 表达式分类
内置汇编器将表达式分为三类:寄存器、内存引用和立即值。
- 寄存器表达式 :仅由寄存器名组成的表达式,如 AX、CL、DI 和 ES。作为操作数时,会让汇编器生成对 CPU 寄存器进行操作的指令。
- 内存引用 :表示内存位置的表达式,像 Object Pascal 的标签、变量、类型常量、过程和函数都属于此类。
- 立即值 :既不是寄存器也不与内存位置关联的表达式,包含 Object Pascal 的无类型常量和类型标识符。
1.2 示例分析
const
Start = 10;
var
Count: Integer;
asm
MOV EAX,Start { MOV EAX,xxxx }
MOV EBX,Count { MOV EBX,[xxxx] }
MOV ECX,[Start] { MOV ECX,[xxxx] }
MOV EDX,OFFSET Count { MOV EDX,xxxx }
end;
- 由于 Start 是立即值,第一条 MOV 被汇编为立即数移动指令。
- Count 是内存引用,第二条 MOV 被转换为内存移动指令。
- 第三条 MOV 中,方括号将 Start 转换为内存引用。