读书人

一个汇编语言的小异常

发布时间: 2012-02-07 17:45:37 作者: rapoo

一个汇编语言的小错误
代码:
EXTRN LOAD:FAR,SAVE:FAR
N EQU 20
DELTA EQU 5
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB N DUP(0)
NAME0 DB 'INPUT38.DAT ',0
NAME1 DB 'OUTPUT38.DAT ',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名起始地址
MOV CX,N ; 字节数
CALL LOAD ; 从 "input1.dat "中读取数据

LEA SI,SOURCE
LEA DI,RESULT


mov cx,N
NEXT: MOV AL,[SI]
CMP AL,-DELTA
jl LESS
CMP AL,DELTA
jg GREAT
MOV AL,0
JMP STORE
GREAT: SUB AL,DELTA
JMP STORE
LESS: ADD AL,DELTA
STORE: MOV [DI],AL
ADD DI,1  
ADD SI,1 
loop NEXT
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名起始地址
MOV CX,N ; 字节数
CALL SAVE ; 保存结果到 "output1.dat "文件中
RET
START ENDP
CODE ENDS
END START
编译时的提示:(40)(41)open parentheses or bracket
这两行是: ADD DI,1  
ADD SI,1


哪位高手帮看看,谢了!

[解决办法]
N EQU 20
DELTA EQU 5
这个是不是应该在数据段中定义,我想是这样的
LEA SI,NAME0 ; 原始数据文件名起始地址
这句后面是不是应加个LEA DI,NAME1;原始数据文件终止地址
LEA SI,SOURCE
LEA DI,RESULT
mov cx,N
这个和你代码段中的开始相互冲突

有其他的想法请和本人联系
QQ号码是:526524193

读书人网 >汇编语言

热点推荐