课后题吧

温柔似野鬼°
828次浏览
2021年01月28日 19:40
最佳经验
本文由作者推荐

课改心得体会-吉他指法图

2021年1月28日发(作者:古罗马的历史)
课后题吧,我这有

;

0--100d
之间的
3 0
个数存入以
GRADE
为首地址的
30
个数组中,
;GRADE+1
表示学号为
i+1
的学生的成绩。另一个数组
RANK

30


;
学生的名次表,其中
RANK+i< br>的内容是学号为
i+1
的学生的名次。

;
编写一程序,
根据
GRADE
中的学生成绩,
讲学生名 次填入
RANK
数组中。
(提
示:一个学生的名次等于成绩高于这个学生是人 数加
1


DATAS SEGMENT




;
此处输入数据段代码

GRADE DW 88,75,95,63,98,78,87,78,90,60;
自行定义

;
成绩

COUNT EQU ($$-GRADE)/2
RANK DW COUNT DUP (1)


;
排名,
初始值为
1

大家都第一名,
同一起跑线








DATAS ENDS

STACKS SEGMENT




;
此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT




ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:




MOV AX,DATAS




MOV DS,AX




;
此处输入代码段代码





MOV SI,0



;
要排名的学生号码





MOV CX,COUNT
L1:

MOV AX,GRADE[SI]

;
获得第
SI
号学生的成绩


MOV BX,RANK[SI]


;
获得第
SI
号学生的初始排名




MOV DX,CX



;
保存
CX

MOV DI,0



;
要比较的学生的号码


MOV CX,COUNT
L2:

CMP AX,GRADE[DI]

;
逐个比较


JNB L3

INC BX




;
低于某一个学生的成绩,则排名加
1
L3:

ADD DI,2

LOOP L2



MOV RANK[SI],BX


;
保存排名


ADD SI,2

MOV CX,DX

LOOP L1





MOV AH,4CH




INT 21H
CODES ENDS




END START














汇编高手进来帮帮忙!!!!!!!

2009-10-12 21:48
提问者:
mimimiha5

|

悬赏分:
5

|

浏览次数:
747


建立学生名次表
rank






grade
为首地址的
10< br>个字的数组中保存了学生的成绩,其中
grade+i
保存学号为
i+1

i
是从
0

9
的自然数)的学生的成绩。要求建立一个
10
个字

rank
数组,
并根据
grade中的学生成绩将学生的名次填入
rank
数组中,
其中
rank+i的内容是学号为
i+1
学生的名次
(提示:
一个学生的名次等于成绩高于 该
学生的人数加
1
)。


推荐答案

2009-10-14 21:30
不是高手路过,练练手:

data segment
grade dw 87,89,52,63,47,95,100,52,96,88
rank dw 10 dup(?)
output db 'ranking:',0dh,0ah,'$$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
xor si,si
xor di,di
mov cx,0ah
loop1:
mov ax,grade[si]
push cx
mov cx,0ah
loop2:
cmp ax,grade[di]
jae XXX
inc rank[si]
XXX:
inc di
inc di
loop loop2
inc rank[si]
inc si
inc si
xor di,di

课改心得体会-吉他指法图


课改心得体会-吉他指法图


课改心得体会-吉他指法图


课改心得体会-吉他指法图


课改心得体会-吉他指法图


课改心得体会-吉他指法图


课改心得体会-吉他指法图


课改心得体会-吉他指法图