-78- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
GUN.ASM code gun shot: silent: gun shoot sound: delay: shoot |
segment assume org proc mov call push mov loop pop loop int endp proc push mov mov in and xor out add mov ror mov and or loop dec jnz and out pop ret endp |
cs:code 100h far cx,20 shoot cx cx,0c000h silent cx shot 20h near cx dx,140h bx,0ffh al,61h al,11111100b al,2 61h,al dx,9248h cl,3 dx,cl cx,dx cx,0fffh cx,10h delay bx sound al,11111100b 61h,al cx |
;发出20声枪声 ;调用噪声子过程 ;枪声数存入堆栈 ;设置循环次数 ;空循环,产生枪声之间的间隔 ;取回枪声计数 ;发下一声枪声 ;结束程序 ;噪声子程序 ;保存CX寄存器 ;设置随机数的种子 ;设置每声枪响的长度 ;取61H端口当前值 ;低2位置0 ;改变Bit1位 ;输出至61H端口 ;随机数种子加9248H ;准备右循环移位数 ;随机数种子右循环移位 ;所得随机数置入CX寄存器 ;保证CX中的随机数不大于0FFFH ;保证CX中的随机数不小于10H ;以随机数为循环计数循环 ;外循环计数减1 ;循环发声 ;关闭定时器 ;恢复CX寄存器 ;子过程返回 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |