在汇编语言中调用DOS命令 王建民 1993-11-19 (一)、直接找到DOS解释程序的入口,作为子程序调用。如DOS中CATALOG的入口地址为$A56E,我们可在汇编语言中直接用JSR$A56E命令调用。 (二)、对于有预置参数的DOS命令,可以模拟键入DOS命令后,由DOS解释执行的方法,在键盘缓冲区$200开始的单元,依次放入DOS命令及预置参数的ASCII码,再调用入口为$9FCD的DOS命令扫描子程序,即可达到调用DOS的目的。如DOS命令LOCKHELLO的ASCII码依次为:CCCFC3CBC8C5CCCCCF8D,可用如下汇编程序来实现这一功能。 程序中,$320单元存放DOS命令的ASCII码的总数(含回车键),从$321单元开始,依次放入DOS命令的ASCII码,且最后必须有CTRL_M(回车)的代码8K,这一点千万不可忽略。这样,我们就可以用JSR$0300来达到DOS命令LOCKHELLO的目的。对于其它的DOS命令,亦可仿照所示的汇编程序编写。 0300-LDY #$00 0302-LDA $0321,Y 0305-STA $0200,Y 0308-INY 0309-CPY $0320 030C-BNE $0302 030E-JSR $9FCD 0311-RTS 0320:0A CC CF C3 CB 0325:C8 C5 CC CC CF 8D (王建民)