永发信息网

请帮我看看这个汇编的小程序行不行

答案:2  悬赏:30  手机版
解决时间 2021-04-23 21:17

把列出的数从大到小排列,有一个错误,我实在是找不出来了。

DSEG SEGMENT
BUFFER DB 23,12,45,32,127,3,9,58,81,72
N EQU 10
DSEG ENDS

CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV BX,OFFSET BUFFER
MOV SI,1

ABC:
MOV SI,BX+1

A:
MOV AL,[BX]
CMP AL,[BX+SI]
JBE B

XCHG AL,[BX+SI]
MOV [BX],AL

B:
INC SI
CMP SI,N
JBE A

INC BX
CMP BX,N-1
JBE ABC

MOV AH,4CH
INT 21H
CSEG ENDS
END START

最佳答案

DSEG SEGMENT
BUFFER DB 23,12,45,32,127,3,9,58,81,72
;BUFFER DB 2,4,6,8,10,1,3,5,7,9;这组数据更容易明白过程
;N EQU 9
N DW 10 ;这个数是要逐渐减少地
DSEG ENDS


CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG


START: MOV AX,DSEG
MOV DS,AX
MOV BX,OFFSET BUFFER
XOR SI,SI


MOV AL,[BX]
A: CMP AL,[BX+SI]
JB B
MOV DI,SI
MOV AL,[BX+SI]
B: INC SI
CMP SI,N
JB A


;INT 3这个测试点可以看到最小的值
MOV AH,[BX+DI]
MOV AL,[BX]
MOV [BX+DI],AL
MOV [BX],AH


INC BX
XOR SI,SI
MOV AL,[BX+SI]
DEC N
JNZ A


INT 3;此处停下能看到结果。
MOV AH,4CH
INT 21H
CSEG ENDS
END START


这个是选择排序的程序,不知道是否是要的,你原来的代码没看明白到底要什么算法。

全部回答

DSEG SEGMENT BUFFER DB 23,12,45,32,127,3,9,58,81,72 N EQU 10 DSEG ENDS

CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV BX,OFFSET BUFFER MOV SI,1

ABC: MOV SI,BX+1 ;在汇编里是不能直接把bx+1赋值给另一个寄存器的,比如你能够这样做:

;mov dx,bx inc dx mov si,dx 这样既不改变bx也能达到目的。

;我只指出了这个错误,你改过来后再调试下,你这个程序好像还有逻辑错误

;程序能运行,但是不能得到正确结果,请你自己再思考一下

A: MOV AL,[BX] CMP AL,[BX+SI] JBE B

XCHG AL,[BX+SI] MOV [BX],AL

B: INC SI CMP SI,N JBE A

INC BX CMP BX,N-1 JBE ABC

MOV AH,4CH INT 21H CSEG ENDS END START

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么从不利的工作中走出?怎么缓解工作压力?
玩具哪里有的买?
赞美青花瓷的古诗句,有关青花瓷的古诗句
囡囡电影资源
钢管舞的招生要求是什么?
人在什么时候情绪最低落?有什么办法解决?
表达生活惬意的句子,真的很希望有这样惬意的
开个副食店有多大的利润?
为什么我得电脑玩CSOL这么不流畅
朋友说话伤人的句子,如何说话婉转?什么样的
电脑重装后没声音了 怎么解决啊
我有一张面值10万的钱币,上面的文字是CONG H
喷潮什么意思
:学生时代你做过哪些可爱的傻事?
超级QQ的金豆有什么用?
推荐资讯
求玩股票的朋友教我如何看股票
求适合冬天听的歌,有寒冷的感觉或暖暖的感觉
能不能这样抱紧你入怀,让海风见证我们相爱 谁
家裡地下城進不去了.沒有任何提示就畫面就一
一个战士和一个幻师在相同装备的情况下谁会赢
如何更换新的QQ密保卡?
腾讯qq等级靓号购买。为什么付款失败
大Q吧改装很难 求技巧
求一个盗贼疾跑和火箭鞋的宏
喝酒那么难受为什么人们还要喝
什么在电脑上打这个&符号啊!
怎么才能捡钱
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?