汇编结构中的变址疑问
;程序名:T7_1.ASM;功 能:对学生成绩求总
;定义变量
COUNT = 30 ;学生总数
;定义学生各门课成绩结构SCORE
SCORE STRUC
NO DW ? ;学号
SNAME DB 8 DUP(?) ;姓名
CHC DB ? ;语文成绩
MATH DB ? ;数学成线
ENG DB ? ;英语成线
SCORE ENDS
;定义学号和总成绩结构ITME
ITME STRUC
NOS DW ? ;学号
SUM DW ? ;总成绩
ITME ENDS
;数据段
DSEG SEGMENT
BUFFER SCORE < > ;定义存放原始数据的缓冲区
STALE ITME COUNT DUP(<>) ;学生总成绩变量名定义
FNAME1 DB 'SCORE.DAT',0 ;存放原始数文档
FNAME2 DB 'SCORE.SUM',0 ;存放总成绩文档
DSEG ENDS
;代码段
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG ;设置段与数据段之间的关系
START:
MOV AX,DSEG ;数据段关联
MOV DS,AX
;打开SCORE.DAT文件
MOV DX,OFFSET FNAME1
MOV AX,3D00H
INT 21H
MOV BX,AX
MOV DI,COUNT ;设置循环数
MOV SI,OFFSET STALE ;设置存放总成绩的缓冲区
READ:
MOV DX,OFFSET BUFFER;存放成绩的缓冲区
MOV CX,TYPE BUFFER
MOV AH,3FH ;读取文件
INT 21H
XOR AH,AH ;清空AH
MOV AL,BUFFER.CHC ;成绩求总
ADD AL,BUFFER.MATH
ADC AH,0H
ADD AL,BUFFER.ENG
ADC AH,0H
MOV [SI].SUM,AX MOV AX,BUFFER.NO
MOV [SI].NOS,AX
ADD SI,TYPE ITME
DEC DI
JNZ READ
;创建文件SCORE.SUM
MOV DX,OFFSET FNAME2
MOV CX,0H ;普通文件
MOV AH,3CH
INT 21H
MOV BX,AX
;写入文件
MOV DX,OFFSET STALE
MOV CX,(TYPE ITME)*COUNT
MOV AH,40H
INT 21H
MOV AH,3EH
INT 21H
MOV AX,4C00H
INT 21H
CSEG ENDS
END START
(masm6.11)编译的时候下面这两段报错,我都是按80X86书上敲的..
MOV [SI].SUM,AX MOV [SI].NOS,AX