博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两首歌曲的汇编演示(发声代码)...
阅读量:2430 次
发布时间:2019-05-10

本文共 2189 字,大约阅读时间需要 7 分钟。

第一次作发声代码:

        title music -- a music of 'Mary  had a little lamb'
        extrn soundf :far  ;link  music+soundf
        stack   segment para stack 'stack'
                db 64 dup('stack...')
        stack ends

        dseg    segment para'data'

        mus_freg dw 330,294,262,294,3 dup(330)
                 dw 3 dup(294),330,392,392
                 dw 330,294,262,294,4 dup(330)
                 dw 294,294,330,294,262,-1
        mus_time dw 6 dup(25),50
                 dw 2 dup(25,25,50)
                 dw 12 dup(25),100
        dseg ends

        cseg segment para 'code'

                assume cs:cseg,ss:stack,ds:dseg
        music proc far
                mov ax,dseg
                mov ds,ax
                lea si,mus_freg
                lea bp,ds:mus_time
        freq:
                mov di,[si]
                cmp di,-1
                je music
               ; je end_mus
                mov bx,ds:[bp]
                call soundf
                add si,2
                add bp,2
                jmp freq
        end_mus:
                mov ax,4c00h
                int 21h
        music endp
        cseg ends
                end music
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       title music -- a music of 'Mary  had a little lamb'
        extrn soundf :far
        stack   segment para stack 'stack'
                db 64 dup('stack...')
        stack ends

        dseg    segment para'data'

        mus_freg dw 330,392,330,294,330,392,330,294,330
                 dw 330,392,330,294,262,294,330,392,294
                 dw 262,262,220,196,196,220,262,294,330,262
                 dw -1
        mus_time dw 3 dup(500),250,250,500,250,250,1000
                 dw 2 dup(500,500,250,250),1000
                 dw 3 dup(500,250,250),1000
        dseg ends

        cseg segment para 'code'

                assume cs:cseg,ss:stack,ds:dseg
        music proc far
                mov ax,dseg
                mov ds,ax
                lea si,mus_freg
                lea bp,ds:mus_time
        freq:
                mov di,[si]
                cmp di,-1
                je music
               ; je end_mus
                mov bx,ds:[bp]
                call soundf
                add si,2
                add bp,2
                jmp freq
        end_mus:
                mov ax,4c00h
                int 21h
        music endp
        cseg ends
                end music
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        title  soundf -- the speaker beeper   
        public soundf
        cseg    segment para 'code'
                assume cs:cseg
        soundf  proc far
                push ax
                push bx
                push cx
                push dx
                push di
                mov al,0b6h
                out 43h,al
                mov dx,12h
                mov ax,348ch
                div di
                out 42h,al
                mov al,ah
                out 42h,al
                in al,61h
                mov ah,al
                or al,3
                out 61h,al
        waitl:
                mov cx,6630
                call waitf
                mov al,ah
                out 61h,al
                pop di
                pop dx
                pop cx
                pop bx
                pop ax
                ret
        soundf endp
        waitf proc near
                push ax
        waitf1:
                in al,61h
                and al,10h
                cmp al,ah
                je waitf1
                mov ah,al
                loop waitf1
                pop ax
                ret
        waitf endp
       cseg ends
      ;---------------------------------------------------
       end
下载代码:

转载地址:http://zopmb.baihongyu.com/

你可能感兴趣的文章
如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招
查看>>
【C语言】C语言中常用函数源代码【strncpy ,strncat ,strncmp】
查看>>
【Java】【算法练习】题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后续遍历的结果。如果是输出yes,不是输出no,数组任意两个数字不相同。
查看>>
【Java】给定一个二叉树和其中的一个节点,请找出中序遍历的下一个节点且返回, 注意:树中的节点不仅包含左右子节点,同时包含父节点的指针。
查看>>
【Java】【多线程】—— 多线程篇
查看>>
【计算机网络】—— TCP/IP篇
查看>>
【Java】【算法】——算法篇
查看>>
【Java】【数据库】知识重点——数据库篇
查看>>
【Java】知识重点——消息队列篇
查看>>
【Java】学习总结 —— HashMap之put()方法实现原理
查看>>
【计算机网络】【TCP】如何讲清楚Tcp的三次握手和四次挥手?
查看>>
【Java】-- Java核心知识点总结
查看>>
【数据库】SQL之重点知识点总结
查看>>
【计算机网络】计算机网络知识总结
查看>>
【Java】【Web】JavaWeb相关知识总结 2018-9-17
查看>>
【数据库】突破单一数据库的性能限制——数据库-分库分表总结 2018-9-20
查看>>
Slurm——作业调度处理
查看>>
Lustre 维护
查看>>
Lustre 操作
查看>>
Lustre—配置和管理磁盘配额
查看>>