80x86 汇编语言编程:排序与显示


编写完整的汇编语言源程序。


对任意给定的十个无符号数按由大到小排序,并把排序结果在显示器上显示。


要求用简化的段定义结构,采用子程序设计方法。谢谢 急求 !!!


题目链接:http://zhidao.baidu.com/question/583620100


做而论道编程如下:   2013-08-22 10:53 



.MODEL   SMALL

.STACK   200H


.DATA

    NUM1 DW   123, 12666, 1, 8, 3, 38, 28, 83, 178, 12


.CODE

START:

    MOV   AX, @DATA

    MOV   DS, AX


    LEA   SI, NUM1

    MOV   DI, 506H     ;显示屏的偏移地址

    MOV   CX, 10       ;数据段的10个数据

    CALL  DISP


    LEA   SI, NUM1

    MOV   CX, 10       ;数据段的10个数据

    CALL  SORT


    LEA   SI, NUM1

    MOV   DI, 646H     ;显示屏的偏移地址

    MOV   CX, 10       ;数据段的10个数据

    CALL  DISP


    MOV   AX, 4C00H

    INT   21H

;-----------------------------------

SORT:

    DEC   CX

S0: PUSH  CX

    MOV   DI, SI

S1: MOV   AX, [DI]

    CMP   AX, [DI + 2]

    JB    S2

    XCHG  AX, [DI + 2]

    MOV   [DI], AX

S2: ADD   DI, 2

    LOOP  S1

    POP   CX

    LOOP  S0

    RET

;-----------------------------------

DISP:

    PUSH  CX     

    CALL  DTOC         ;调用函数,在显示屏显示

    ADD   SI, 2

    ADD   DI, 2        ;指向下一个显示位置

    POP   CX

    LOOP  DISP

    RET

;-----------------------------------

DTOC:

    MOV   AX, [SI]

    MOV   BX, 10

    MOV   CX, 0

D_LOOP1:

    SUB   DX, DX       ;DX清零

    DIV   BX

    PUSH  DX

    INC   CX

    CMP   AX, 0

    JNZ   D_LOOP1

    MOV   AH, 2

D_LOOP2:

    POP   DX

    CALL  SHOW_STR     ;调用显示子程序

    LOOP  D_LOOP2

    RET

;-----------------------------------

SHOW_STR:              ;显示

    MOV   BX, 0B800H

    MOV   ES, BX

    ADD   DX, 4A30H    ;化为ASCII码

    MOV   ES:[DI], DX

    ADD   DI, 2        ;指向下一个显示位置

    RET

;-----------------------------------

END   START



本程序使用了简化的段定义结构,子程序设计方法。



做而论道编写的程序,可以满足题目的要求。


但是,做而论道所写的显示部分,有些特别。


提问者不太理解,所以,也就一直不采纳答案。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值