DOSBox中TASM编写的387 FPU入栈指令调试显示异常排查
DOSBox下TASM .387 FPU指令Turbo Debugger显示异常问题
问题概述
在DOSBox环境中使用TASM开发实模式汇编程序(课程要求采用90年代开发环境),需借助.387指令集的FPU处理绘图坐标。程序其余功能运行正常,但遇到FPU栈显示异常问题:
- 已在程序起始处执行
finit初始化FPU - 尝试使用
fild(16/32位)、fld、fld1、fldz等指令向FPU栈加载数据,但Turbo Debugger的数值处理器视图中FPU栈始终显示为空,无任何变化 - 程序伪指令配置如下:
.model small .386 .387
所有段均标记USE16,调试时栈中存在固定或随机残留值,推测为其他程序遗留数据。
验证过程
- 编写最小测试程序,编译链接无报错,但Turbo Debugger中FPU栈仍显示为空
- 编写验证程序,将FPU中的数据写入内存后进行比对,程序可正常输出验证文本,确认FPU实际工作正常
结论
该问题并非FPU指令失效导致,而是Turbo Debugger的显示bug。
内容的提问来源于stack exchange,提问作者KaukoTolonen
相关产品推荐
相关产品推荐

