【汇编语言实战】switch选择

简介: 【汇编语言实战】switch选择

试用汇编语言编写程序,该程序具有如下菜单:

image.png

请输入选项(1~13): 待输入选项号后,输出所选择的选项功能描述

例如:输入1,则输出:选择排序。


C语言描述:


#include <stdio.h>
// 函数声明
void selectionSort();
void bubbleSort();
void insertionSort();
void quickSort();
void heapSort();
void permutation();
void hanoi();
void primeRing();
void setElements();
void integerPartition();
void eightQueens();
void maze();
void binarySearch();
int main() {
    int option;
   
    // 显示菜单
    printf("| [1] 选择排序   | [2] 冒泡排序      |\n");
    printf("| [3] 插入排序   | [4] 快速排序      |\n");
    printf("| [5] 堆排序     | [6]  全排列       |\n");
    printf("| [7] 汉诺塔问题 | [8] 素数环        |\n");
    printf("| [9] 插入排序   | [10] 判定集合元素 |\n");
    printf("| [11] 整数拆分  | [12] 八皇后问题   |\n");
    printf("| [13] 迷宫问题  | [14]二分查找      |\n");
    printf("请输入选项(1~14):");
    scanf("%d", &option);
   
    // 根据用户选择执行相应功能
    switch(option) {
        case 1:
            selectionSort();
            break;
        case 2:
            bubbleSort();
            break;
        case 3:
            insertionSort();
            break;
        case 4:
            quickSort();
            break;
        case 5:
            heapSort();
            break;
        case 6:
            permutation();
            break;
        case 7:
            hanoi();
            break;
        case 8:
            primeRing();
            break;
        case 9:
            insertionSort();
            break;
        case 10:
            setElements();
            break;
        case 11:
            integerPartition();
            break;
        case 12:
            eightQueens();
            break;
        case 13:
            maze();
            break;
        case 14:
            binarySearch();
            break;
        default:
            printf("无效选项!\n");
    }
    return 0;
}
// 下面是各个功能函数的实现,根据需要补充函数体
void selectionSort() {
    printf("选择排序\n");
}
void bubbleSort() {
    printf("冒泡排序\n");
}
void insertionSort() {
    printf("插入排序\n");
}
void quickSort() {
    printf("快速排序\n");
}
void heapSort() {
    printf("堆排序\n");
}
void permutation() {
    printf("全排列\n");
}
void hanoi() {
    printf("汉诺塔问题\n");
}
void primeRing() {
    printf("素数环\n");
}
void setElements() {
    printf("判定集合元素\n");
}
void integerPartition() {
    printf("整数拆分\n");
}
void eightQueens() {
    printf("八皇后问题\n");
}
void maze() {
    printf("迷宫问题\n");
}
void binarySearch() {
    printf("二分查找\n");
}



输出结果:



汇编语言:


include irvine32.inc
.data
menu db '[1] 选择排序   [2] 冒泡排序',0Dh,0Ah
     db '[3] 插入排序   [4] 快速排序',0Dh,0Ah
     db '[5] 堆排序     [6] 全排列',0Dh,0Ah
     db '[7] 汉诺塔问题 [8] 素数环',0Dh,0Ah
     db '[9] 整数素分解  [10] 判定集合元素',0Dh,0Ah
     db '[11] 整数拆分  [12] 八皇后问题',0Dh,0Ah
     db '[13] 迷宫问题  [14] 二分查找',0Dh,0Ah
     db '请输入选项(1~14):',0
strMsg1 db '选择排序',0
strMsg2 db '冒泡排序',0
strMsg3 db '插入排序',0
strMsg4 db '快速排序',0
strMsg5 db '堆排序',0
strMsg6 db '全排列',0
strMsg7 db '汉诺塔问题',0
strMsg8 db '素数环',0
strMsg9 db '整数素分解',0
strMsg10 db '判定集合元素',0
strMsg11 db '整数拆分',0
strMsg12 db '八皇后问题',0
strMsg13 db '迷宫问题',0
strMsg14 db '二分查找',0
funaddrs dd offset strMsg1
  dd offset strMsg2
  dd offset strMsg3
  dd offset strMsg4
  dd offset strMsg5
  dd offset strMsg6
  dd offset strMsg7
  dd offset strMsg8
  dd offset strMsg9
  dd offset strMsg10
  dd offset strMsg11
  dd offset strMsg12
  dd offset strMsg13
  dd offset strMsg14
.code
main proc
  mov  edx,offset menu
  call writestring
  call readint
  cmp eax,1
  jl  err
  cmp eax,14
  jg  err
  sub eax,1 
        mov edx,funaddrs[4*eax]
  call writestring
  jmp final
err:
final:
  exit
main endp
end main


目录
相关文章
|
23天前
|
C语言
【汇编语言实战】实现九九乘法表
【汇编语言实战】实现九九乘法表
19 2
|
23天前
|
C语言
【汇编语言实战】实现输出集合{1,2,...,n}全排列
【汇编语言实战】实现输出集合{1,2,...,n}全排列
18 1
|
23天前
|
C语言
【汇编语言实战】给定一个句子,将大写字母变为小写
【汇编语言实战】给定一个句子,将大写字母变为小写
16 1
|
23天前
|
C语言
【汇编语言实战】最小公倍数和最大公约数
【汇编语言实战】最小公倍数和最大公约数
31 1
|
23天前
|
C语言
【汇编语言实战】二分查找
【汇编语言实战】二分查找
14 1
|
23天前
|
C语言
【汇编语言实战】正整数的素数分解
【汇编语言实战】正整数的素数分解
18 1
|
23天前
|
C语言
【汇编语言实战】输入一个无符号整数求其逆序
【汇编语言实战】输入一个无符号整数求其逆序
21 2
|
23天前
|
C语言
【汇编语言实战】两个32位数的相加运算
【汇编语言实战】两个32位数的相加运算
24 2
|
23天前
|
C语言
【汇编语言实战】八皇后问题
【汇编语言实战】八皇后问题
20 2
|
23天前
|
C语言
【汇编语言实战】解迷宫问题
【汇编语言实战】解迷宫问题
19 2