|
![]() | 作者: scandisk [scandisk]
![]() |
登录 |
DATA SEGMENT FILENAME DB 'D:\PAL\1.RPG',0 FILEBUFF DB 6 DUP(0) FILEHAND DW 0000H RECORD1 DW 0000H NPC DW 0157H,0227H,0628H,0729H,08B8H,1184H,0D98H,0D99H ;有不动小怪特征的NPC的记录号 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET FILENAME MOV AH,3DH MOV AL,02H INT 21H ;打开文件 MOV FILEHAND,AX MOV AH,42H MOV AL,0 MOV BX,FILEHAND XOR CX,CX MOV DX,324CH INT 21H ;;移动文件指针到324CH MOV CX,5332 DXH: ;大循环开始 PUSH CX MOV AH,3FH MOV CX,6 LEA DX,FILEBUFF INT 21H ;从文件中读6个字节到文件缓冲区 INC RECORD1 ;每读取到一条记录,记录数加1 MOV CX,3 MOV AX,0000H LEA DI,FILEBUFF CLD REPNZ SCASW ;;扫描3个字,看是否有0000H JZ NEXT ; 有,则转入下一条记录 SUB DI,4 ; ;没有,则比较8888是否为05 CMP WORD PTR[DI],0005H JNE NEXT ;;不是05则转入下一条记录 MOV AX,RECORD1 LEA DI,NPC MOV CX,8 REPNZ SCASW JZ NEXT ;比较是否本条记录为NPC的脚本 LEA DI,FILEBUFF MOV WORD PTR[DI],0000H ;修改7777为0 MOV AH,42H MOV AL,1 MOV CX,0FFFFH MOV DX,-6 ;文件指针前移6个字节 INT 21H MOV AH,40H MOV CX,6 LEA DX,FILEBUFF INT 21H ;;将文件缓冲区中的字节写入文件 NEXT: MOV AH,42H MOV AL,1 XOR CX,CX MOV DX,26 INT 21H POP CX LOOP DXH EXIT: MOV AH,3EH INT 21H ;关闭文件 MOV AH,4CH INT 21H MAIN ENDP CODE ENDS END MAIN |
地主 发表时间: 20-04-02 03:55 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号