• 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

作者:匿名 字体:[增加 减小] 来源:互联网

匿名通过本文主要向大家介绍了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

相关文章

  • 什么是进程
  • 汇编语言与C语言的接口技术
  • 地址传送指令
  • 汇编语言的艺术-观念正误(四)
  • 汇编语言的艺术-准备工作(三)
  • 汇编源码系列之dskwatch
  • 循环程序的设计
  • 符号扩展指令
  • 对宏的再认识
  • 汇编教程之“绘制”文本串

文章分类

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

最近更新的内容

    • 汇编源代码之汇编语言制作的光带菜单及源程序(1.0)
    • 存储单元的地址和内容
    • 什么是进程
    • 汇编语言技术指标
    • 汇编创建简单的窗口
    • 条件汇编
    • 汇编源码系列之driver
    • 8086/8088指令系统
    • 汇编教程之处理鼠标按键消息
    • 比较指令 CMP

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

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