计算机汇编masm,排序,从大到小实例

计算机汇编masm,排序,从大到小实例,第1张

在数据区中有N个数(N<=10),将它们按从大到小排列,装回原数据区

ASSUME CS:CODE, DS:DATA

DATA SEGMENT

DA DB 12, 0, 45, -7, -33, 99

DA_LEN EQU $ - DA

DATA ENDS

CODE SEGMENT

START:

MOV AX, DATA

MOV DS, AX

MOV CX, DA_LEN - 1

LP1:

MOV SI, 0

PUSH CX

LP2:

MOV AL, DA[SI]

CMP AL, DA[SI + 1]

JNB NEXT

XCHG AL, DA[SI + 1]

MOV DA[SI], AL

NEXT:

INC SI

LOOP LP2

POP CX

LOOP LP1

EXIT:

MOV AX, 4C00H

INT 21H

CODE ENDS

END START

你的退出语句错误,应该是mov ax,4c00h

另外,由于没有输出语句,所以程序没有结果显示出来,为便于检查结果,下面将你的程序改写为com文件格式的程序,便于在debug中调试检查结果是否正确:

CSEG    SEGMENT

        ASSUME CS:CSEG,DS:cseg,es:cseg

        org 100h

start:  jmp start1

A       DB  8,1,2,7,6,3,2,5,4,3

START1:

        push cs

        pop ds

        push cs

        pop es

        MOV CX,10

        DEC CX

LOOP1:  MOV DI,CX

        MOV BX,offset a

LOOP2:  MOV AL,es:[BX]

        CMP AL,es:[BX+1]

        JGE CONTINUE

        XCHG AL,es:[BX+1]

        MOV es:[BX],AL

CONTINUE: ADD BX,1

        LOOP LOOP2

        MOV CX,DI

        LOOP LOOP1

        MOV AH,1

        INT 21H

        int 20h

CSEG ENDS

     END START

在masm的文件夹下。

把要编译的程序写在记事本里,把后缀改成asm,放在masm的文件夹下。然后打开dosbox输入命令进入masm。使用命令进入masm文件夹下。进入C其实就是masm目录。使用masmasm命令生成obj文件0警告0错误代表成功。文件夹下可以看到生成obj程序。obj链接生成exe文件然后就可以执行了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8041507.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存