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


    本次实验内容:

      排序实验

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

    实验内容:

      使用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    
  • 相关阅读:
    实验报告2
    实验三 网络欺骗技术
    实验3
    心理魔术
    实验报告
    实验4
    实验5
    实验四恶意代码
    网络对抗技术 实验一
    实验二
  • 原文地址:https://www.cnblogs.com/elliottc/p/5054490.html
Copyright © 2020-2023  润新知