题目:
数据基本定义如下:
NUM DW 0133H,0D5FH, 1234H, 1250H, 0120H, 0C50H, 1218H, 1220H
CUNT EQU ($-NUM)/TYPE NUM
NUM20 DB CUNT DUP(0)
NUM5 DB CUNT DUP(0)
NUM2 DB CUNT DUP(0)
NUM1 DB CUNT DUP(0)
试编制一个程序,分别对NUM中各数据统计出有多少个20,余下有多少个5,再余下有多少个2,再余下有多少个1。并将统计的个数分别存放在NUM20,NUM5,NUM2和NUM1的对应位置上。
代码如下:
DATA SEGMENT
NUM DW 0133H, 0D5FH, 1234H, 1250H, 0120H, 0C50H, 1218H, 1220H
CUNT EQU ($-NUM)/TYPE NUM
NUM20 DB CUNT DUP(0)
NUM5 DB CUNT DUP(0)
NUM2 DB CUNT DUP(0)
NUM1 DB CUNT DUP(0)
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV CX,CUNT
MOV SI,OFFSET NUM
MOV DI,0000H
LOP: MOV AX,[SI]
MOV BX,20
CALL DRI6
MOV NUM20[DI],DL
MOV BX,5
CALL DRI6
MOV NUM5[DI],DL
MOV BX,2
CALL DRI6
MOV NUM2[DI],DL
MOV NUM1[DI],AL
ADD SI,TYPE NUM
INC DI
LOOP LOP
INT 3
MOV AX,4C00H
INT 21H
DRI6 PROC
MOV DL,00H
LOP6: CMP AX,BX
JL EXIT0
SUB AX,BX
INC DL
JMP LOP6
EXIT0: RET
DRI6 ENDP
CODE ENDS
END START
关键句的注释解释一下,不用句句都写,谢谢大神们!