10 个经典汇编程序实例:从排序到字符串处理

实例 1:冒泡排序


BUBBLE_SORT PROC
    MOV CX, N-1         ; 外层循环
OUTER:
    MOV BX, 0
    PUSH CX
INNER:
    MOV AL, ARR[BX]
    CMP AL, ARR[BX+1]
    JLE NO_SWAP
    XCHG AL, ARR[BX+1]
    MOV ARR[BX], AL
NO_SWAP:
    INC BX
    LOOP INNER
    POP CX
    LOOP OUTER
    RET
BUBBLE_SORT ENDP

实例 2:字符串长度


STRLEN PROC
    MOV CX, 0
    MOV BX, OFFSET STR
NEXT:
    CMP BYTE PTR [BX], 0
    JE DONE
    INC CX
    INC BX
    JMP NEXT
DONE:
    MOV AX, CX
    RET
STRLEN ENDP

实例 3:十六进制转十进制


HEX2DEC PROC
    MOV CX, 0
    MOV BX, 10
CONVERT:
    MOV DX, 0
    DIV BX            ; AX ÷ 10
    PUSH DX           ; 余数入栈
    INC CX
    CMP AX, 0
    JNE CONVERT
PRINT:
    POP DX
    ADD DL, '0'
    MOV AH, 02h
    INT 21h
    LOOP PRINT
    RET
HEX2DEC ENDP

实例 4:阶乘


FACTORIAL PROC
    MOV AX, 1
    MOV CX, N
FACT_LOOP:
    MUL CX            ; AX * CX → DX:AX
    LOOP FACT_LOOP
    RET
FACTORIAL ENDP

实例 5:斐波那契数列


FIBONACCI PROC
    MOV AX, 0
    MOV BX, 1
    MOV CX, N
FIB_LOOP:
    MOV DX, AX
    ADD DX, BX        ; DX = AX + BX
    MOV AX, BX
    MOV BX, DX
    ; 打印 AX
    LOOP FIB_LOOP
    RET
FIBONACCI ENDP

更多实例

6. 字符串反转:双指针交换

7. 二进制转 ASCII:逐位提取

8. 最大公约数:辗转相除法

9. 数组求和:循环累加

10. 字符统计:频率数组

总结

这些实例覆盖了汇编编程的常见模式。动手敲一遍,你的汇编水平会有质的飞跃。

下一篇:《汇编语言实验指导:5 个动手实验从易到难》


原文链接:https://wenyiblog.top/2026/06/asm-17-examples/

首发于文艺技术笔记(wenyiblog.top),转载请注明出处。

posted @ 2026-06-22 19:28  软件工程师文艺  阅读(0)  评论(0)    收藏  举报