我已经使用命令
创建了我的asm代码的列表文件cd c:\masm32\bin\
ml.exe /c /Fl"c:\path\file.lst" /Sc "c:\path\file.asm"
lst文件包含三列:第一列是特定行的十六进制地址,第三列是操作码,但我不理解第二列中值的含义。我认为这被称为"计时"并且值类似于:2
或10m
或甚至7m,3
。这个数字是什么意思,它们代表什么?
答案 0 :(得分:3)
使用
/Sc
命令行开关生成指令时序,每行都有以下语法:offset [[timing]] [[code]]
offset
是从当前代码段开头的偏移量。timing
显示处理器执行指令所需的周期数。timing
的值反映了CPU类型;例如,指定.386
指令会为80386处理器生成指令时序。如果语句生成代码或数据,则代码以十六进制表示法显示数值,如果该值在汇编时已知。如果在运行时计算该值,则汇编程序会指示计算该值所需的操作。在默认
.8086
指令下进行汇编时,如果指令访问存储器,则时序包括有效的地址值。 80186/486处理器不使用有效的地址值。有关有效地址计时的更多信息,请参阅参考手册中的“处理器”部分。
(source)
除非你真的要在80486或更早的处理器上执行代码,否则我不确定我对这些时序值有多信任。