汇编乐曲编程 两只老虎

 ;***************************************************************************
;两只老虎乐曲
;author:野渡无人
;create date:2007-12-22
;***************************************************************************
stack segment para stack 'stack'
      db 64 dup('stack...')
stack ends
;*******************************************************************
dseg segment para 'data'
mus_freq   dw  262,294,330,262,262,294,330,262
    dw  330,349,392,330,349,392,392,440
    dw  392,349,330,262,392,440,392,349
           dw  330,262,294,196,262,294,196,262,-1
mus_time   dw  25,25,25,25,25,25,25,25,25,25
    dw  50,25,25,50,12,12,12,12,25,25
    dw  12,12,12,12,25,25,25,25,50,25,25,50
dseg ends
;*******************************************************************
cseg segment para 'code'
      assume cs:cseg,ss:stack,ds:dseg
;--------
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我不太明白你的问题。不过如果你是想让我展示一段汇编语言代码,来播放“两只老虎”这首儿歌的话,可以参考以下代码: ``` .model small .stack 100h .data note1 db 6dh, 0 note2 db 6dh, 0 note3 db 7dh, 0 pause db 0, 6dh, 0 .code mov ax, @data mov ds, ax ; 第一遍 mov dx, offset note1 call playnote mov dx, offset note1 call playnote mov dx, offset pause call playnote mov dx, offset note2 call playnote mov dx, offset note2 call playnote mov dx, offset pause call playnote mov dx, offset note3 call playnote mov dx, offset pause call playnote ; 第二遍 mov dx, offset note1 call playnote mov dx, offset note1 call playnote mov dx, offset pause call playnote mov dx, offset note2 call playnote mov dx, offset note2 call playnote mov dx, offset pause call playnote mov dx, offset note3 call playnote mov dx, offset pause call playnote ; 第三遍 mov dx, offset note1 call playnote mov dx, offset note1 call playnote mov dx, offset pause call playnote mov dx, offset note2 call playnote mov dx, offset note2 call playnote mov dx, offset pause call playnote mov dx, offset note3 call playnote mov dx, offset pause call playnote ; 退出程序 mov ah, 4ch int 21h playnote proc near push ax push bx push cx push dx mov ah, 86h mov al, 0 mov bx, 165 mov cx, 1 int 15h mov dx, 0 mov al, [bx] or al, al jz endplay mov ah, 86h mov cx, 52227 mov al, [bx] out dx, al mov al, ah out dx, al endplay: pop dx pop cx pop bx pop ax ret playnote endp end ``` 这段代码使用了 86h 中断来播放音符,其中 note1、note2、note3 和 pause 分别代表了 C、D、E 和休止符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值