x86汇编语言程序设计-归并排序

本文介绍如何使用x86汇编语言编写showdecs函数,将8位二进制数转换为十进制并显示,以及通过递归方式实现归并排序算法msort.asm,对2n个整数进行排序并输出结果。
摘要由CSDN通过智能技术生成
	网上可供参考的x86汇编语言代码确实很少,所以我在写归并排序时也经历了不小的“磨难”~
	首先献上我的归并排序.c,这样一来,写出x86版本的归并排序就只用翻译c语言为汇编语言了(虽然这样也需要不小的工作量
#include <stdio.h>
void mergerArray(int p, int mid, int q, int start, int end, int arr[], int T[])
{
    int i = start;
    while(p<=mid && q<=end){
        if(arr[p] <= arr[q])
            T[i++] = arr[p++];
        else{
            T[i++] = arr[q++];
        }
    }
    
    while(p<=mid){
        T[i++] = arr[p++];
    }
    while(q<=end){
        T[i++] = arr[q++];
    }
    for(i=start; i<=end;i++){
        arr[i] = T[i];
    }
}

void mergerSort(int arr[], int start, int end, int T[])
{
    if(end>start){
        int mid = (end+start)/2;
        int p = start;
        int q = mid + 1;
        mergerSort(arr, start, mid , T);
        mergerSort(arr, mid+1, end, T);
        mergerArray(p, mid, q, start, end, arr, T);
    }
}

接下来,完成showdecs函数进而完成归并排序函数
[1] (showdecs.asm)把一组8位二进制数(无符号数)转换为十进制数并显示出来,实现后截屏。
运行截屏:

;msort.asm
data segment
	nums1 db 100,34,78,9,160,200,90,65
data ends

code segment
	assume cs:code

start:     
	mov ax,data
	mov ds,ax
	mov es,ax
	mov bx,off
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值