首页 > 解决方案 > 在 Linux x86_64 上使用 NASM 制作钢琴

问题描述

我最近想在 Linux 上使用 NASM 使用汇编制作钢琴,我在 DOS 16 位上获得了示例,我可以使用哪些服务以及我可以将频率值放在哪里?我已经宣布了如下频率:

C: DW 4560
D: DW 4063
E: DW 3619
F: DW 3416
G: DW 3043
A: DW 2711
B: DW 2415
C.: DW 2280

我尝试comapare并将其推入AX寄存器:

Cmp RAX,49
    Je Do_C
    Jmp Error

    Cmp RAX,50
    Je Re_D
    Jmp Error

    Cmp RAX,51
    Je Mi_E
    Jmp Error

    Cmp RAX,52
    Je Fa_F
    Jmp Error

    Cmp RAX,53
    Je Sol_G
    Jmp Error

    Cmp RAX,54
    Je La_A
    Jmp Error

    Cmp RAX,55
    Je Si_B
    Jmp Error

    Cmp RAX,56
    Je Do_C.
    Jmp Error

Do_C:
    Mov AX,word [C]
    Jmp Tone

Re_D:
    Mov AX,word [D]
    Jmp Tone

Mi_E:
    Mov AX,word [E]
    Jmp Tone

Fa_F:
    Mov AX,word [F]
    Jmp Tone

Sol_G:
    Mov AX,word [G]
    Jmp Tone

La_A:
    Mov AX,word [A]
    Jmp Tone

Si_B:
    Mov AX,word [B]
    Jmp Tone

Do_C.:
    Mov AX,word [C.]
    Jmp Tone

在我的Github中获取更多代码,感谢您的帮助

标签: linuxassemblyx86-64nasm

解决方案


推荐阅读