MOV AX,DATA
MOV DS,AX
MOV ES,AX ; 置附加段寄存器
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名起始地址
MOV CX,N ; 字节数
CALL LOAD ; 从"input1.dat"中读取数据
; **** BEGIN ****
LEA SI,SOURCE
LEA DI,RESULT
CLD
MOVSB ; Y[0]=X[0]
MOV CX,N-1
FILTER:
XOR AX,AX
XOR BX,BX
XOR DX,DX
LODSB ; X[n]
mov bl,[di-1]
;MOV BL,______ ; Y[n-1]->BL
MOV DL,BL
ADD BX,DELTA ; Y[n-1]+delta, 符号位扩展
SUB DX,DELTA ; Y[n-1]-delta, 符号位扩展
CMP AX,BX
jle next
;J__ NEXT
mov [di], bl
;____________________
JMP CONT
NEXT: CMP AX,DX
jge store
;J__ STORE
mov [di],dl
;____________________
JMP CONT
STORE: mov [di],al
;____________________
CONT: INC DI
LOOP FILTER
; **** END ****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名起始地址
MOV CX,N ; 字节数