我正在查看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文件名格式的文件扩展名。
然后,以下movw
和movb
指令将 2+1+2 字节从EXTEND
复制到FCB
,同时递增SI
和DI
(指令参考(。