标题:为什么我的这个小程序统计的0的个数有误?
只看楼主
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
 问题点数:0 回复次数:4 
为什么我的这个小程序统计的0的个数有误?

DATAS SEGMENT
BUF DW 00000000B,00000000B,11110000B,00001111B
n =$-BUF
OUTPUT DB 'The number of zero is '
X DW 0
Y1 DB 0AH,0DH,'The number of Positive is '
Y DW 0
Z1 DB 0AH,0DH,'The number of Negative is '
Z DW 0
OUTEND DB '$'
DATAS ENDS

STACKS SEGMENT
DB 200 DUP(?)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA BX,BUF
MOV CX,n

AGAIN:
TEST BX,BX
TEST BYTE PTR[BX],0FFH
JZ COUNTX
AND BYTE PTR[BX],80H
JZ COUNTY
JMP COUNTZ
JMP EXIT

OUTPUTN:ADD X,30H
ADD Y,30H
ADD Z,30H
LEA DX,OUTPUT
MOV AH,9
INT 21H
JMP EXIT

COUNTX: INC X
INC BX
DEC CX
JNZ AGAIN
JMP OUTPUTN
JMP EXIT
COUNTY: INC Y
INC BX
DEC CX
JNZ AGAIN
JMP OUTPUTN
JMP EXIT
COUNTZ: INC Z
INC BX
DEC CX
JNZ AGAIN
JMP OUTPUTN
JMP EXIT
EXIT: MOV AH,4CH
INT 21H
CODES ENDS
END START



为什么统计的0的个数有误?而且是比实际的数目大$-BUF个(上面的程序是比实际的大4)。
虚心请教!

搜索更多相关主题的帖子: STACKS SEGMENT The DATAS 
2007-05-09 16:06
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 
这个程序是判断BUF中存的二进制数,统计其中正、负、0的个数并输出。
2007-05-09 16:14
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
得分:0 
课本上应该有例题吧!

2007-05-09 17:49
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
得分:0 
呵呵 没错哈 运行出来是0的个数是6个
你是定义的dw撒 但是你在后面 bx 是加的一 安字节在算 所以 第一的个数有2个0 二的个数有2个0
三的个数有1个0 四的个数有1个0 就是6个0拉

   好好活着,因为我们会死很久!!!
2007-05-09 18:50
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 
恩,明白了。
发现自己类型意识、层次意识不够强。
3Q
2007-05-09 22:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-137942-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041579 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved