首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

排名词解决方法

2012-02-16 
排名词以下是我写的一个排名次的算法,问题见代码中注释NUM3I1J1DATASSEGMENTGRADEDW1,2,3RANKDWNUMDUP(

排名词
以下是我写的一个排名次的算法,问题见代码中注释

NUM   =   3
I   =   1
J   =   1

DATAS   SEGMENT
        GRADE   DW   1,2,3
        RANK     DW   NUM   DUP(?)
DATAS   ENDS

CODES   SEGMENT
        ASSUME   CS:CODES,DS:DATAS
START:
        MOV   AX,DATAS
        MOV   DS,AX

        MOV   RANK[0],1

LPI:
MOV   RANK[2*I],I+1;无论是第几次运行到这里,I的植总是1
MOV   AX,GRADE[2*I]
J=I
LPJ:
J=J-1
CMP   AX,GRADE[2*J]
JL     TRYJ        
      JE     EQUAL
        DEC   RANK[2*I]
INC   RANK[2*J]
JMP   TRYJ
EQUAL:
MOV   AX,RANK[2*J]
MOV   RANK[2*I],AX
TRYJ:
MOV   AX,J
CMP   AX,0
JNZ   LPJ  

TRYI:
I=I+1
MOV   AX,I   ;
CMP   AX,NUM
JBE     LPI


   
        MOV   AH,4CH
        INT   21H
CODES   ENDS
        END   START

[解决办法]
I, J 应该定义成变量吧. 作为常量定义时, 它们值的改变是以编译时扫描到的顺序来决定的, 不是以执行次序来的.

热点排行