如题,程序实现统计一组数据中大于零,等于零,小于零的个数并分别放在GREATZ,ZERO.LITTLEZ中。
现在想实现程序运行后可以在屏幕上显示出(DOS编译环境)这三个项及其数值,初学汇编,有些无从下手,希望高手指点!
万分感谢!
STACK SEGMENT STACK 'STACK'
DW 100H DUP(?)
TOP LABEL WORD
STACK ENDS
DATA SEGMENT
BUFFER DW 5
DB 01H,06H,16H,0,12H
GREATZ DW ?
ZERO DW ?
LITTLEZ DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
XOR AX,AX
MOV GREATZ,AX
MOV ZERO,AX
MOV LITTLEZ,AX
MOV CX,BUFFER
LEA SI,BUFFER+1
ST_COUNT:
MOV AX,[SI]
ADD SI,2
AND AX,AX
JLE COUNT1
INC GREATZ
JMP COUNT3
COUNT1:
JL COUNT2
INC ZERO
JMP COUNT3
COUNT2:
INC LITTLEZ
COUNT3:
DEC CX
JNZ ST_COUNT
MOV AH,4CH
INT 21H
CODE ENDS
END START |