• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 汇编源码系列之sound

汇编源码系列之sound

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了sound,mk sound中国官网,p-sound无线话筒,bestsound音响,safe and sound等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div>

这个都是过去DOS时代的汇编源码,虽然已经过去了,但是对于学习汇编还是有帮助的,汇编语言只是程序员一门基础语言,大多人掌握即可,不一定要深入研究.......

; sound.asm
;
; This is a small sound example for the IBM PC
; It will play 12 notes of the octave starting at middle C.
;-----------------------------------------------------------------------------
; How to generate sound on the IBM PC :
;
; The 8255 (port 61H) bit 0 controls the 8253 timer
;           bit 1 controls the speaker
;
; The output channel 2 from the 8253 timer will be ANDed with the
; speaker control bit in order to turn on/off the speaker.
;
; Timer channel 2 internal count register (port 42h) is loaded in
; two successive OUT operations with the lower byte being loaded first.
; For this to work properly, timer command register has to be loaded first
; with B6H.
;
; Since the input clock to the timer chip is 1.19318 MHz, the counter value
; to generate the frequency X can be calculated by 1193180 / X.
;-----------------------------------------------------------------------------
; CX is used as a note counter with the frequency effectively being
; incremented by a half tone and the corresponding count being loaded
; into the count register on each iteration.
;
; No stack segment is needed for this small program, so don't panic
; when you receive the 'No stack segment' warning.
;
; Arne Asplem 880731 (MASM 4.0)
dseg  segment             ; data segment
notes  dw   262,277,294,311,330,349,370,392,415,440,466,494
dseg  ends
cseg  segment
sound  proc far
    assume cs:cseg, ds:dseg, ss:nothing
start: 
    mov   ax, dseg
    mov   ds, ax         ; set up data segment (DS) reg.
    xor   si, si
    mov   bx, 12         ; note count
; set up timer command register and counter register
    mov   al, 0b6h        ; set 8253 command register
    out   43h, al         ; for channel 2, mode 3
nloop:
    mov   ax, 34dch        ; low part of clock freq.
    mov   dx, 12h         ; hight part of clock freq.
    div   [notes + si]      ; get note from data segment
    out   42h, al         ; 8253 command register (low byte)
    mov   al, ah
    out   42h, al         ; 8253 command regsieter (high byte)
; turn on low bits in 8255 output port
    in   al, 61h         ; read current value of 8255 port
    or   al, 3          ; clear low bits
    out   61h, al         ; send new value to port
; loop while note is sounding
    mov   cx, 6d60h   
rpta:
    loop  rpta          ; 1/10 sec delay
; turn off speaker, check note count, set up next note
    xor   al, 3         
    out   61h, al         ; turn off speaker
    mov   cx, 0af0h
    
rptb:
    loop  rptb          ; 1/100 sec delay
    inc   si           ; increment note pointer
    inc   si
    dec   bx           ; decrement note counter
    
    jnz   nloop          ; loop until bx = 0
    mov   ax, 4c00h        ; terminate program
    int   21h
sound  endp
cseg  ends
    end   start
    

</div> </div> </div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 汇编源代码之MAKE SOUNDS(发声)
  • 汇编源码系列之sound

相关文章

  • 2017-06-28汇编源码系列之circle
  • 2017-06-28汇编源码之跑动的男孩
  • 2017-08-30IAR常见段名含义
  • 2017-06-28什么是进程
  • 2017-06-17CPU 状态控制指令
  • 2017-06-28汇编语言中‘子程序’的设计方法
  • 2017-06-17变量定义伪指令
  • 2017-06-28汇编实模式与保护模式切换实例
  • 2017-06-28用汇编编写屏幕保护程序
  • 2017-06-28汇编教程之树型视图控件

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • MASM-两个16位二进制数减法模拟
    • 逻辑运算指令
    • 汇编教程:汇编语言编程实例
    • DOS内部结构与BIOS的功能
    • 汇编教程之绘制文本
    • 汇编语言的艺术-准备工作(五)
    • 宏与子程序的区别
    • 宏汇编
    • 无条件转移指令
    • 汇编教程:控制转移(2)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有