循环程序嵌套(微机原理)
建立学生名次表
以grade为首地址的10个字的数组中保存学生的成绩,其中 grade+i保存学号为i+1的学生的成绩。要求建立一个10个字的rank 数阻,并根据grade 中的学生成绩将学生名次填入rank数组中,其中rank+i的内容是学号为i+l学生的名次。(一个学生的名次等于成绩高于该学生的人数加1)。
代码实现
data segment
grade db 50h,60h,90h,80h,70h,10h,20h,30h,66h,81h
org 0010h
rank db 10 dup(?)
data ends
stks segment stack'stack'
dw 20 dup(?)
stks ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bx,stks
mov ss,bx
mov si,offset grade
mov di,offset rank
mov cx,10
mov dl,1
lp1:
mov al,[si]
push cx
mov cx,10
lea bx,grade
mov dl,1
lp2:
cmp al,[bx]
jnb next
inc dl
next:
add bx,1
loop lp2
mov [di],dl
inc di
pop cx
inc si
loop lp1
code ends
end start
运行结果