目录 上一页 下一页 下一章

-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

目录 上一页 下一页 下一章