movb 如何将文件扩展名设置为 .asm?



我正在查看dos版本1.25源代码,我遇到了一个文件名ASM。我认为这是词法分析器的一部分。

我遇到了MOVB指令,并在注释中说这会将文件扩展名设置为"asm":

MOV [LSTFCB],AL
MOV [LSTDEV],AH ;Flag device for list ouput
MOV SI,EXTEND
MOV DI,FCB+9
MOVW
MOVB            ;Set extension to ASM
MOVW            ;Zero extent field

这是如何工作的?

标签EXTEND,其地址被移动到源索引 (SI( 寄存器,指向字符串'ASM',0,0(注意末尾的两个零字节(。目标索引(DI(寄存器指向偏移量9处的文件控制块,它对应于DOS 8.3文件名格式的文件扩展名。

然后,以下movwmovb指令将 2+1+2 字节从EXTEND复制到FCB,同时递增SIDI(指令参考(。

最新更新