• 微机原理上机第四次实验内容


    本次实验内容:

      排序实验

    实验目的:掌握用汇编语言编写气泡排序程序的思路和方法。

    实验内容:

      使用DEBUG程序,从首地址1000H的内存区开始存放50个数,要求设计程序将这些数由小到大排序,排序后的数,仍放在该区域中。

    代码:

      

    DATAS SEGMENT
        STRING1 DB 0DH,0AH,'Pai xu jie guo:',0DH,0AH,'$' 
        ;ORG 1000H
        ;MEM 0AAH,00BH,0BBH,02H,03H,45 DUP(0) ;存放50个数据进行排序用
     
    
    DATAS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS
    START:
        MOV AX,DATAS
        MOV DS,AX              ;以下为冒泡法排序
         MOV BX,49              ;给BX第一次比较的次数49
     L3:MOV CX,BX              
         MOV SI,1000H         ;把1000H地址赋给SI
     L1:MOV AL,[SI]    ;
         CMP AL,[SI+1]    ;两数比较大小
         JB L2    ;目的数据小于原数据则转L2段
         XCHG AL,[SI+1];交换数据
         MOV [SI],AL;I KNOW
     L2:INC SI    ;SI+1->SI
         LOOP L1
         DEC BX;BX-1
         JNZ L3;
     L4:LEA DX,STRING1
         MOV AH,09H
         INT 21H
        CALL DISPL
        MOV AH,4CH
        INT 21H
    DISPL PROC
        MOV SI,1000H
        MOV CX,50
    LOP:MOV AL,[SI]
        SHR AL,1;  右移
        SHR AL,1
        SHR AL,1
        SHR AL,1
        ADD AL,90H   ;把AL中的十六进制数高位转换为ASCII码
        DAA       
        ADC AL,40H
        DAA
        MOV DL,AL
           MOV AH,02H   
        INT 21H
        MOV AL,[SI]
        AND AL,0FH
        ADD AL,90H   ;把AL中的十六进制数低位转换为ASCII码
        DAA
        ADC AL,40H;
        DAA
        MOV DL,AL
        MOV AH,02H
        INT 21H
        MOV DL,' '
        MOV AH,02H
        INT 21H
        INC SI
        LOOP LOP
        RET
    DISPL ENDP
        CODES ENDS
        END START    
  • 相关阅读:
    SQLSERVER 数据连接字符串
    c#中 间隔两个小时执行一次
    移动开发者的自学宝典:十大在线编程学习网站
    C#j将DataTable转换成List
    C#将list转换为datatable
    SQL Server 高性能写入 摘抄
    解决控制面板删除不了的程序卸载
    卸载SQL 2008 R2 出现警告26003
    删除重复数据
    大数据量数据优化
  • 原文地址:https://www.cnblogs.com/elliottc/p/5054490.html
Copyright © 2020-2023  润新知