段地址分配问题
用MASM5.00,在DOS下调试,能够生成EXE文件,但是运行不出结果,不知道错在哪里?调用DOS功能函数显示结果,并将统计的三类元素结果放在数据块之后,这里我好像程序有问题,但是说不出错哪里了,请各位指点下。
DATA SEGMENT
ORG 100H;偏移量为100
BUF DB 259 DUP (?)
ZR DB ? ;0元素
ZH DB ? ;正元素
FU DB ? ;负元素
COUNT EQU $-(BUF-3);长度
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
start: mov ax, data
mov ds, ax
mov si, offset buf ;设置数据块首地
mov cx, COUNT ;设数据块长度
cld ;地址修改为增量
xor al, al ;数据块第一个数据为0
nexta: mov [si], al ;向内存送256个数据
mov bl, al
or bl, 0h
jz zero
test al, 80h
jz zheng
inc FU
jmp ff
inc si
inc al
loop nexta
mov si ,offset buf
mov dl ,[si]
mov ah, 02h
int 21h
mov ah, 4ch
int 21h
zero: mov si, offset buf ;这样做是不是不妥啊
inc ZR
mov bl, ZR
mov [si+257] , bl
zheng: mov si, offset buf
inc ZH
mov bl, ZH
mov [si+258], bl
ff: mov si, offset buf
mov bl, FU
mov [si+259], bl
CODE ENDS
end start