NUM DB 10
DATA DB 10 ,0,12,-1,2,20,32,0,-14,25
X DB 0
Y DB 0
Z DB 0
DATAS ENDS
STACKS SEGMENT
此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV SI,OFFSET DATA
MOV CL,NUM
LOOP1:
MOV BL ,[SI]
CMP BL ,0H
JS SMALL
JE O
INC X
JMP GOON
O:INC Z
JMP GOON
SMALL:INC Y
GOON: INC SI
LOOP LOOP1
MOV AH,4CH
INT 21H
CODES ENDS
END START
(1)第3行指令 MOV BH,00 使首行指令MOV BX,0100 作废,
使 BX = 0000,导致后面的指令MOV AL,[BX]读入AL的不是成绩数据。
(2)在DEGUG 环境输入程序,数值不加后缀H,默认为16进数,
例如楼主程序中的 CMP AL,60,其中60默认为16进制数,即96D,
导致统计结果错误。
我修改的程序及运行结果如以下截图所示,供参考:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)