linux - 在 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中获取更多代码,感谢您的帮助
解决方案
推荐阅读
- python - 有没有办法在 MacOS 上为 st_dev 获取有意义的挂载点?
- python - 返回金字塔问题的错误输出
- linux - 将ip重定向到域名
- ios - 如何在swiftui中的视图之间传递变量?
- svg - 在路径中心显示文本 SVG
- php - 我无法从 App Engine 将任何文件上传到 GCS 中的存储桶,但我可以从本地服务器使用 php 进行编码
- django - 'QuerySet' 对象没有属性 'view_count'
- python - Visual Studio Code 运行 venv python
- php - PHP从数据库中的一行获取多个数据
- xamarin.forms - 如何将屏幕分成 2 行,其中第一行占用不超过 50%(但可以占用更少)