帮忙看看这个程序能不能实现功能
我编了一个用ADC0809和DAC0832进行录音和放音的程序录音时间是6.4秒,每100微秒进行一次采样转换;放音时间是循环的,每6.4秒一次循环,程序是这样的
stack segment stack'stack'
dw 32 dup(0)
stack ends
data segment
count db 02h
buffer db 255,0,255 dup(?)
data ends
code segment
main proc far
assume cs:code,ds:data,ss:stack
push ds
mov ax,0
mov ax,seg irq7is //设置中断程序地址
mov ds,ax
mov ax,251ah
int 21h
mov ax,data
mov ds,ax
in al,21h //设置屏蔽字,允许IRQ7中断
and al,7fh
out 21h,al
mov si,0 //设置存储空间的偏移量
mov cx,40h //设置录音的时间
again1:mov dx,384h
out dx,al //启动转换
jmp $ //等待中断信号
in al,dx //读入转换结果
mov buffer[si],al //存放在存储单元
inc si
loop again1 //循环
again3:mov cx,40h //设置放音时间
again2:push bx
mov al,buffer[si] //从存储单元读出数字量
mov dx,381h //送DAC的端口地址
mov dx,al //将数字量送端口
jmp $ //中断等待转换
dec si //取下一个数字量
loop again2
mov ah,0bh //判断是不是有键按下
int 21h
inc al
jnz again3 //循环放音
ret
irq7is:mov bx,count //中断控制
aa:dec bx
cmp bx,0
jne aa
mov al,20h
out 20h,al
in al,21h
or al,04h
out 21h,al
pop ax
inc ax
inc ax
push ax
iret
main endp
code ends
end main
不知道能不能实现
各位帮忙看看
给点指点