实在找不出错误的原因,,^_^

camelia 2004-05-10 06:23:42
程序很简单,,是定义十个分数,从中找出各个阶段的数,,但我返回就会出错

date segment
a db 76,69,84,90,73,88,99,63,100,80
s6 db 0 ;60~69
s7 db 0
s8 db 0
s9 db 0
s10 db 0
crlf db 13,10,'$'

date ends

code segment
main proc far
assume cs:code,ds:date

start:
mov ax,date
mov ds,ax
call sort

mov cx,5
lea si,s6
go_on:
mov dl,ds:[si]
add dl,30h
mov ah,02h
int 21h
lea dx,crlf
mov ah,09h
int 21h
inc si
loop go_on


mov ax,4c00h
int 21h

main endp


sort proc near

mov dx,10
lea si,a
mov cx,10
next:
cmp byte ptr [si],69
jbe add_s6
cmp byte ptr [si],79
jbe add_s7
cmp byte ptr [si],89
jbe add_s8
cmp byte ptr [si],99
jbe add_s9
jmp add_s10

add_s6:
inc s6
dec dx
cmp dx,0
jb exit
inc si
jmp next

add_s7:
inc s7
dec dx
cmp dx,0
jb exit
inc si
jmp next

add_s8:
inc s8
dec dx
cmp dx,0
jb exit
inc si
jmp next

add_s9:
inc s9
dec dx
cmp dx,0
jb exit
inc si
jmp next

add_s10:
inc s10
dec dx
cmp dx,0
jb exit
inc si
jmp next
exit:
ret
sort endp

code ends
end start






...全文
27 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vicallee 2004-05-11
  • 打赏
  • 举报
回复

jle
camelia 2004-05-10
  • 打赏
  • 举报
回复
仍然谢谢,,是jb和jl没区分开来,,
vicallee 2004-05-10
  • 打赏
  • 举报
回复
下面几个add_s7,,,add_s10之类的也是要改吧?
vicallee 2004-05-10
  • 打赏
  • 举报
回复
add_s6:
inc s6
dec dx
cmp dx,0
jb exit;99999999999999999999999999999这里是否应改为jbe exit????
inc si
jmp next

21,458

社区成员

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

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