Delphi 內嵌組合語言中,函數返回值根據類型不同,存放在不同的寄存器或內存位置。掌握此對照表對正確編寫組合語言函數至關重要。
| 返回類型 | 寄存器/位置 |
|---|---|
| Char、Byte | AL |
| SmallInt、Word | AX |
| Integer、LongWord、AnsiString、Pointer、Class | EAX |
| Real48 | EAX (棧內返回值指針) |
| Int64 | EDX:EAX (高 32 位在 EDX,低 32 位在 EAX) |
| Single、Double、Extended、Comp | 協處理器棧頂 ST(0) |
| 短字符串、Variant | @Result 指向的臨時位置 |
提示: 64 位整數使用 EDX:EAX 配對,浮點數使用 x87 FPU 棧頂 ST(0),這與 Delphi 默認的 register 調用約定一致。