东南大学数字录音机.txt

上传人:b****3 文档编号:2582204 上传时间:2022-11-02 格式:TXT 页数:6 大小:6.89KB
下载 相关 举报
东南大学数字录音机.txt_第1页
第1页 / 共6页
东南大学数字录音机.txt_第2页
第2页 / 共6页
东南大学数字录音机.txt_第3页
第3页 / 共6页
东南大学数字录音机.txt_第4页
第4页 / 共6页
东南大学数字录音机.txt_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

东南大学数字录音机.txt

《东南大学数字录音机.txt》由会员分享,可在线阅读,更多相关《东南大学数字录音机.txt(6页珍藏版)》请在冰豆网上搜索。

东南大学数字录音机.txt

datasegment

ioport equ0ec00h-0280h

luport equioport+29ah;¼��ڵ�ַ

fangport equioport+290h;����ڵ�ַ

io8253a equioport+283h

io8253b equioport+280h

io8253e equioport+281h

io8255c equioport+28bh

io8255d equioport+288h

red equioport+2a0h

yellow equioport+2a8h

row equioport+2b0h ;rowchoose

order db01h,02h,04h,08h,10h,20h,40h,80h

data_qudb64000dup(?

);¼�����ݴ��������

news_1db'PressPA1torecord:

',24h;¼����ʾ

news_2db0dh,0ah,'Playing:

',24h;������ʾ

news_3db'success',24h

volumedb00h ;�������

nb db00h ;ѡ������

middle dw00h ;¼������ת��������

temp db00h ;����ǿ����ʾ����

colourdb00h ;ѡ������ɫ

countdb00h ;ѡ�������

num dw00h ;ѡ����ѡ

dataends

stackssegmentstack

db50dup(?

stacksends

codesegment

assumecs:

code,ds:

data,es:

data,ss:

stacks

begin:

movax,stacks

movss,ax

movax,data;��ʼ��

movds,ax

moves,ax

test_1:

mov dx,io8255c;��8255��A������

mov al,9bh

out dx,al

mov dx,io8255d;��8255��A������

delayPA1:

in al,dx

and al,02h;�жϿ����Ƿ�Ϊ���俪ʼ¼��PA11��ʼ¼��

jz delayPA1

movdx,offsetnews_1;��ʾ¼����ʾ

movah,9

int21h

calllu;����¼���ӳ���

movdx,offsetnews_2;��ʾ������ʾ

movah,9

int21h

delayPA2:

mov dx,io8255d;��8255��A������

in al,dx

test al,4h;�ж�PA2�Ƿ�Ϊ1Ϊ1��ʼ����

jz delayPA2;��PA2��Ϊ1,תdelayPA2

play:

callfang;���÷����ӳ���

mov dx,io8255d;��8255��A������

in al,dx

test al,10h;�ж�PA4�Ƿ�Ϊ1Ϊ1һֱ�ظ�����

jnz play;��PA3��Ϊ1����

movax,0c07h

int21h

cmpal,53h ;����S��ʽ�˳�

jzover

cmpal,73h ;����s��ʽ�˳�

jneplay

over:

movah,4ch;����DOS

int21h

luprocnear;¼���ӳ���

movdi,offsetdata_qu;���������׵�ַΪDI

movcx,64000;¼64000������

movcolour,00h

cld ;��DF=0

xunhuan:

movdx,luport;���A/D

outdx,al

calldelay;��ʱ

inal,dx;��A/D�����ݵ�AL

movtemp,al

stosb;����������,dfΪ0��ʹDI��1al��di��ַ��

stop:

mov dx,io8255c;��8255��A������

mov al,9bh

out dx,al

mov dx,io8255d;��8255��A������

in al,dx

testal,20h ;�ж�PA5����1����ͣ��Ϊ0����ִ��

jnz stop

incmiddle

testal,40h ;¼������ת

jnzlai

inccount

cmpcount,50

jzshow

jmpcontinue

show:

callwave

cmpnum,7

jzclear

jmpcontinue

clear:

movnum,0

continue:

loopxunhuan;ѭ��

ret

lai:

callfang

ret;�ӳ��򷵻�

luendp

;�ӳ��򷵻�

fangprocnear;�����ӳ���

movcx,middle;��64000������

movsi,offsetdata_qu;���������׵�ַΪSI

movnum,0

movcolour,01h

cld ;�巽���־��df=0

fang_yin:

movdx,fangport

lodsb;��������ȡ��������SI�洢��si��+1

callvol ;��������0-10����λ

movtemp,al

subal,30h ;�������������

mulvolume

pushbx

movbl,10

divbl

popbx

outdx,al;����

calldelay;��ʱ

stop1:

mov dx,io8255c;��8255��A������

mov al,9bh

out dx,al

mov dx,io8255d;��8255��A������

in al,dx

testal,20h ;�ж�PA5����1����ͣ��Ϊ0����ִ��

jnz stop1

inccount

cmpcount,10

jzshow1

jmpcontinue1

show1:

callwave

cmpnum,7

jzclear1

jmpcontinue1

clear1:

movnum,0

continue1:

loopfang_yin;ѭ��

movdx,offsetnews_3;��ʾ¼����ʾ

movah,9

int21h

ret;�ӳ��򷵻�;�ӳ��򷵻�

fangendp

delayPROCNEAR;��ʱ�ӳ���

push dx

mov al,10h;��8253ͨ��0������ʽ0

mov dx,io8253a

out dx,al

mov al,125;д���������ֵ125

mov dx,io8253b

out dx,al

mov dx,io8255c;��8255��A������

mov al,9bh

out dx,al

mov dx,io8255d;��8255��A������

delay1:

in al,dx

test al,1;�ж�PA0�Ƿ�Ϊ1

jz delay1;��PA0��Ϊ1,תde_lay

pop dx

ret;�ӳ��򷵻�

delayendp

volprocnear

pushax

pushdx

pushcx

movah,0bh ;�������벻�ȴ�

int21h

cmpal,0ffh

jzgo

jmpgos

;Nwait:

moval,39

; int21h

go:

movah,08

int21h

movnb,al

gos:

cmpnb,30h

jzvol1

cmpnb,31h

jzvol2

cmpnb,32h

jzvol3

cmpnb,33h

jzvol4

cmpnb,34h

jzvol5

cmpnb,35h

jzvol6

cmpnb,36h

jzvol7

cmpnb,37h

jzvol8

cmpnb,38h

jzvol9

cmpnb,39h

jzvol10

vol1:

movvolume,1

jmpexit

vol2:

movvolume,2

jmpexit

vol3:

movvolume,3

jmpexit

vol4:

movvolume,4

jmpexit

vol5:

movvolume,5

jmpexit

vol6:

movvolume,6

jmpexit

vol7:

movvolume,7

jmpexit

vol8:

movvolume,8

jmpexit

vol9:

movvolume,9

jmpexit

vol10:

movvolume,10

jmpexit

exit:

stc

popcx

popdx

popax

ret

volendp

waveprocnear

pushax

pushdx

pushcx

pushsi

cmptemp,31

jbelight1

cmptemp,63

jbelight2

cmptemp,95

jbelight3

cmptemp,127

jbelight4

cmptemp,159

jbelight5

cmptemp,191

jbelight6

cmptemp,223

jbelight7

cmptemp,255

jbelight8

light1:

moval,1h

jmpCrow

light2:

moval,3h

jmpCrow

light3:

moval,7h

jmpCrow

light4:

moval,0fh

jmpCrow

light5:

moval,1fh

jmpCrow

light6:

moval,3fh

jmpCrow

light7:

moval,7fh

jmpCrow

light8:

moval,0ffh

jmpCrow

Crow:

movdx,row

outdx,al

cmpcolour,00h

jzLyellow

movdx,red

jmpgood

Lyellow:

movdx,yellow

good:

movsi,num

moval,order[si] ;ѭ��ѡ��һ��ֱ����si����

outdx,al

popsi

popcx

popdx

popax

addnum,1

movcount,0

ret

waveendp

codeends

endbegin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1