永发信息网

汇编。三个数排序问题

答案:2  悬赏:50  手机版
解决时间 2021-07-30 14:46

.386
dseg segment
data dd 7fffffffh,6fffffffh,5fffffffh
len = 3
td = 4
dseg ends

sseg segment stack
db 128 dup(0)
sseg ends

cseg segment
assume ds:dseg,cs:cseg,ss:sseg

start:
mov ax,dseg
mov ds,ax
mov cx,len-1

loop1:
push cx
mov dl,0
mov bx,8

loop2:
mov eax,data[bx]
cmp eax,data[bx-td]
jge okey
xchg eax,data[bx-td]
mov dl,1
mov data[bx],eax

okey: sub bx,td

loop loop2

pop cx
cmp dl,0
jz sorted
loop loop1

sorted:
mov dl,41h
mov ah,02h
int 21h
mov ah,01h
int 21h
mov ah,4ch
int 21h
cseg ends
end start

可以运行,但是为什么排序后什么都显示不了,(现在改成排序后读入一个字符,但是运行EXE后直接就出来了,好像SORTED后的没有执行,为什么啊

最佳答案

.386
dseg segment
data dd 7fffffffh,6fffffffh,5fffffffh
len = 3
td = 4
dseg ends


sseg segment stack
db 128 dup(0)
sseg ends


cseg segment
assume ds:dseg,cs:cseg,ss:sseg


start:
mov ax,dseg
mov ds,ax
mov cx,len-1


loop1:
push cx
mov dl,0
mov ebx,8


loop2:
mov eax,data[ebx]


;注意32位寄存器间接寻址时,要用32位通用存用寄存器,


;否则只执行16位寻址,后面的代码就会全乱了。。。
cmp eax,data[ebx-td]
jge okey
xchg eax,data[ebx-td]
mov dl,1
mov data[ebx],eax


okey: sub ebx,td


loop loop2


pop cx
cmp dl,0
jz sorted
loop loop1


sorted:
mov dl,41h
mov ah,02h
int 21h
mov ah,01h
int 21h
mov ah,4ch
int 21h
cseg ends
end start

全部回答
不能直接输出整数,需要将整数转换为字符串才可以输出。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
做面膜有什麼好處?
开通情侣空间后,黄钻用户可不可以为对方装扮
死神最好看的是哪集
如何能让小宝宝睡的安心?
y450 pse 7350好吗?
独挑一枝花下一句,庄稼一枝花,的下一句是什么
新野县南阳逸群铝业全铝家具定制在哪里啊,我
洞庭湖夏日诗词,描写夏天的古诗
株洲哪有 实心插节 鱼竿(玻璃钢实心路亚竿)
请帮忙写个谜语,表达爱意的
通城县咸宁数码彩油漆这个地址在什么地方,我
没业绩我还能坚持多久?
男女之间会有纯洁的友情吗?
今天是星期天请问再过2的100次方是星期几?
每天喝牛好好不好。
推荐资讯
江夏区武汉豹澥街社区卫生服务中心-狂犬病暴
翻译经典对白!鲁鲁修的 !
深圳南山蛇口哪里可以学手工DIY?
如果恋人之间长期存在矛盾但彼此却听不进去的
急求服装市场调研报告
有结婚证但没有准生证,怀孕两月补办要罚款吗
一架飞机0.5小时飞行430千米,一只燕子每小时
源汇区漯河三合房产在哪里啊,我有事要去这里
我是农历1993年8月29的、占爱情
考试告别人答案算作弊么
QQ游戏人生官网?好友资格传递??
我们要开辩论会,我是正方“先有伯乐”,麻烦
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?