这道题做的我快疯了!

dongfengkuayue 2010-12-06 03:46:46
;将GRADE名次存入RANK并显示
assume cs:code,ds:data

data segment
grade dw 12,23,45,67,78,89,90,89,34,56
rank dw 10 dup(?)
data ends

code segment
start:mov ax,data
mov ds,ax

mov di,0
mov bx,0
lop1:mov ax,grade[bx]
mov dx,1
mov cx,10
lea si,grade
lop2:cmp ax,[si]
jge lop3
inc dx
lop3:add si,2
loop lop2
mov rank[bx],dx
add bx,2
inc di
cmp di,10
jb lop1

mov cx,10
lea si,rank
out1: MOV DL,[si]
AND DL,0FH
CMP DL,9
JBE NEXT1
ADD DL,7
NEXT1: ADD DL,30H
MOV AH,2
INT 21H ;显示低位ASCII码
add si,2
loop out1

code ends
end start

各位帮我看下哪里错了?
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
paullbm 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shzhfu 的回复:]
程序要完成的是:给了10个人的成绩,想输出每个人的名词。

正确答案是3楼的“最后没有正常结束程序返回DOS”。

另:输出的名词间没有被分隔开。
[/Quote]

看来误会楼主表达的意思了。。。

那加上这几次就行了
mov dl,32
mov ah,2
int 21h ;输出空格
loop out1 ;楼主原来的。
mov ah,4ch
int 21h ;正常退出

shzhfu 2010-12-06
  • 打赏
  • 举报
回复
程序要完成的是:给了10个人的成绩,想输出每个人的名词。

正确答案是3楼的“最后没有正常结束程序返回DOS”。

另:输出的名词间没有被分隔开。
paullbm 2010-12-06
  • 打赏
  • 举报
回复
理清思路来就行。可以自定义2个子程序,分别为排序和字符串显示。
liufenfangwan 2010-12-06
  • 打赏
  • 举报
回复
楼主应该把这个程序的功能说清楚点,或者直接把题目打上来
zara 2010-12-06
  • 打赏
  • 举报
回复
首先是程序的最后没有正常的“结束程序返回DOS”的功能调用
znxllyuan 2010-12-06
  • 打赏
  • 举报
回复
assume cs:code,ds:data

data segment
grade dw 12,23,45,67,78,89,90,89,34,56
rank dw 10 dup(?)
data ends

code segment
start:mov ax,data
mov ds,ax
mov ex,ax

lea si,grade
lea di,rank
mov cx,0ah
cld
rep movsw
这不就是传送么?

还有输出 十进制的形式输出还是16进制的呢?
znxllyuan 2010-12-06
  • 打赏
  • 举报
回复
你可以写个注释么 我怎么看不懂?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧