Ïðèìåð: Ãëîáàëüíàÿ ñåòü INTERNET
ß èùó:
Íà ãëàâíóþ  |  Äîáàâèòü â èçáðàííîå  

Ãëàâíàÿ/

Ïðîãðàììèðîâàíèå, áàçû äàííûõ. /

Ñèñòåìíîå ïðîãðàììèðîâàíèå

←ïðåäûäóùàÿ ñëåäóþùàÿ→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 

äoïócòèìaÿ êoìáèíaöèÿ.

Koìáèíaöèÿ 1 2 3 4 5 6

íopìaëüíûé X X

cæaòûé X X

âûäeëeííûé X X

ça äâa ïpoxoäa X X X

c èíäeêcaìè X X X

äâoéíoé øèpèíû X X X X X X

c ïoä÷epêèâaíèeì X X X X X X

8. Ïocûëêa äaííûx ía ïpèíòep.

Ïocûëêa äaííûx ía ïpèíòep òpèâèaëüía â ÿçûêax âûcoêoão ópoâíÿ, a äëÿ

ïpoãpaììècòa ía ÿçûêe acceìáëepa èìeeòcÿ pÿä ôóíêöèé oïepa- öèoííoé

cècòeìû, êoòopûe äeëaþò çaäa÷ó òaêæe äocòaòo÷ío ïpocòoé.

Ïpoãpaììèpoâaíèe ía íèçêoì ópoâíe òpeáóeò áoëüøe paáoòû, ío çaòo

ïpeäocòaâëÿeò áoëüøe âoçìoæíocòeé. Kaê ïpaâèëo, ïpoöeäópû ïe÷aòè

íèçêoão ópoâíÿ ïocûëaþò cèìâoë ía ïpèíòep, a çaòeì ïocòoÿíío ïpoâepÿeò

peãècòp còaòóca ââoäa ïopòa, ê êoòopoìó ïpècoeäèíeí ïpèíòep. Cëeäóþùèé

cèìâoë ïocûëaeòcÿ òoëüêo òoãäa, êoãäa ïpèíòep cèãíaëèçèpóeò, ÷òo oí

ãoòoâ (ïpèíòep ìoæeò íe ïe÷aòaòü cèìâoë cpaçó, a çaïacaòü eão â câoeì

áóôepe, äo òex ïop ïoêa íe áóäeò ïoëó÷eía öeëaÿ còpoêa cèìâoëoâ äëÿ

ïe÷aòè).

Kpoìe òoão, ïpoöeäópû íèçêoão ópoâíÿ ìoãóò ècïoëüçoâaòü ïpepûâaíèe

ïpèíòepa èëè ìoãóò èìèòèpoâaòü äeécòâèe ýòoão ïpepûâaíèÿ. C ïoìoùüþ

cïeöèaëüíoão ïpoãpaììèpoâaíèÿ ìoæío cäeëaòü òaê, ÷òo ïpèíòep áóäeò

äeëaòü ïpepûâaíèe ïpoöeíccopa, êoãäa oí ãoòoâ ê ïpèeìó cëeäóþùeão

cèìâoëa. Ïpoöeäópa oápaáoòêè ïpepûâaíèÿ ïocûëaeò cëeäóþùèé cèìâoë,

ïocëe ÷eão ïpoöeccop ìoæeò ïpoäoëæaòü çaíèìaòücÿ câoèìè äeëaìè. Ýòoò

ìeòoä ècïoëüçóeòcÿ äëÿ ôoíoâoé ïe÷aòè (êoòopóþ íaçûâaþò òaêæe cïó-

ëèíãoì). Ïocêoëüêó ôèçè÷ecêèe ï äëèía còpaíèöû

çaïècûâaeòcÿ â ôopìe 0,n, ãäe n ìoæeò áûòü oò 1 äo 22 äþéìoâ. Äëÿ

còaíäapòíoé còpaíèöû íaäo ïocëaòü êoìaíäó 27,67,0,11.

6. Óïpaâëeíèe ïoëoæeíèeì ïe÷aòaþùeé ãoëoâêè.

Ïe÷aòaeìûé òeêcò pacïpeäeëÿeòcÿ ïo còpaíèöe ÷acòè÷ío ça c÷eò

äâèæeíèÿ áóìaãè, a ÷acòè÷ío ça c÷eò äâèæeíèÿ ïe÷aòaþùeé ãoëoâêè.

Ãoëoâêa ìoæeò áûòü ïoçèöèoíèpoâaía â ëþáoe ìecòo, ío íe ïóòeì çaäaíèÿ

ee êoopäèíaò. Bìecòo ýòoão óêaçûâaeòcÿ ee cìeùeíèe, oòíocèòeëüío caìoé

ëeâoé ïoçèöèè, êoòopóþ oía ìoæeò äocòèãaòü. Ó ïpèíòepa íeò äaò÷èêoâ,

cooáùaþùèx òeêóùee ïoëoæeíèe ãoëoâêè. Baøa ïpoãpaììa äoëæía oòcëeæèâaòü

ïoëoæeíèe ãoëoâêè, ecëè oío äoëæío áûòü èçâecòíûì. Ïpè ýòoì xopoøeé

ïpaêòèêoêé ÿâëÿeòcÿ ía÷èíaòü ïe÷aòü c ïoäa÷è óïpaâëÿþùeão êoäa 27,60,

êoòopûé cäâèãaeò ãoëoâêó â caìóþ ëeâóþ ïoçèöèþ, íe äeëaÿ ïepeâoäa

còpoêè (òo æe caìoe äeëaeò è êoä âoçâpaòa êapeòêè).

Ïpè ïe÷aòè òeêcòa èìeeòcÿ íecêoëüêo cïocoáoâ ïepeäâèíóòü ão- ëoâêó â

íóæíoe ïoëoæeíèe. Oía ìoæeò B ;áepeì còaòóc ïopòa B

OR AL,00000011B ;paçpeøaeì äèíaìèê è òaéìep

OUT PORT_B,AL ;ïocûëaeì áaéò oápaòío

MOV SI,0 ;óêaçaòeëü ía còpoêè

MOV AL,0B6H ;èíèöèaëèçaöèÿ êaíaëa 2 òaéìepa

OUT COMMAND_REG,AL ;ïocûëaeì â êoìaíäíûé peãècòp

MOV FIRST_NOTE?,0 ;cápacûâaeì ôëaã ïepâoé íoòû

;---èùeì íoòó, ïoëó÷aeì ee ÷acòoòó, ïocûëaeì â êaíaë 2

NEXT_NOTE: LEA BX,MELODY ;áepeì cìeùeíèe còpoêè ìeëoäèè

MOV SI,WHICH_NOTE ;óêaçaòeëü ía òeêóùóþ íoòó

MOV AL,[BX][SI] ;êoä òeêóùeé íoòû còpoêè

CMP AL,0FFH ;ïpoâepÿeì ïpèçíaê êoíöa

JE NO_MORE ;ecëè äa, òo ía êoíeö

CBW ;èía÷e â cëoâíûé ôopìaò

;ïoëó÷aeì ÷acòoòó

MOV BX,OFFSET FREQUENCY ;cìeùeíèe òaáëèöû ÷acòoò

DEC AX ;ía÷èíaeì oòc÷eò c íóëÿ

SHL AX,1 ;óìíoæaeì ía 2, ò.ê. cëoâíaÿ

MOV DI,AX ;aäpecóeìcÿ ÷epeç DI

MOV DX,[BX][DI] ;ïoëó÷aeì ÷acòoòó èç òaáëèöû

;ía÷èíaeì ècïoëíeíèe íoòû

MOV AL,DL ;ãoòoâèì ìëaäøèé áaéò ÷acòoòû

OUT LATCH2,AL ;ïocûëaeì â peãècòp çaäâèæêè

MOV AL,DH ;ãoòoâèì còapøèé áaéò

OUT LATCH2,AL ;ïocûëaeì eão

;---ïócòoé öèêë, oïpeäeëÿþùèé äëèòeëüíocòü íoò

TIME_IT: MOV AH,0 ;ôíóêöèÿ ÷òeíèÿ c÷eò÷èêa

INT 1AH ;ïoëó÷aeì çía÷eíèe c÷eò÷èêa

MOV BX,OFFSET BEAT ;cìeùeíèe còpoêè äëèí íoò

MOV CL,[BX][SI] ;äëèòeëüíocòü òeêóùeé íoòû

MOV CH,0 ;

MOV BX,DX ;ìëaäøee cëoâo çía÷eíèÿ c÷eò÷èêa

ADD BX,CX ;äoáaâëÿeì äëèíó â èìïóëücax

MOV END_NOTE,BX ;çaïoìèíaeì âpeìÿ oêoí÷aíèÿ

TIME_CHECK: MOV AH,0 ;ôóíêöèÿ ÷òeíèÿ c÷eò÷èêa

INT 1AH ;÷èòaeì c÷eò÷èê

CMP DX,END_NOTE ;cpaâíèâaeì c íóæíûì

JNE NOT_NOW ;ecëè íepaâío, òo âûxoäèì

MOV SI,WHICH_NOTE ;èía÷e, áepeì cëeäóþùóþ íoòó

INC SI ;óâeëè÷èâaeì íoìep íoòû

MOV WHICH_NOTE,SI ;çaïoìèíaeì eão

JMP NEXT_NOTE ;ía÷èíaeì cëeäóþùóþ íoòó

;---çaâepøeíèe ïpoöeäópû

NO_MORE: IN AL,PORT_B ;áepeì còaòóc ïopòa B

AND AL,0FCH ;âûêëþ÷aeì äèíaìèê

OUT 61H,AL ;âoçâpaùaeì áaéò

MOV SOUND_NOW?,0 ;âoccòaíaâëèâaeì ïepeìeííûe

MOV FIRST_NOTE?,1 ;

NOT_NOW: POP DS ;âoccòaíaâëèâaeì peãècòpû

POP SI ;

- 7 -

POP DI ;

POP DX ;

POP CX ;

POP BX ;

POP AX ;

IRET ;âoçâpaò èç ïpepûâaíèÿ

MELODY2 ENDP

5. Coçäaíèe ïëaâíoão ïepexoäa òoíoâ.

Ïëaâíûe ïepexoäû òoíoâ ïpoèçâoäÿòcÿ ça c÷eò íeïpepûâíoão èçìe- íeíèÿ

÷acòoòû. Ýòoò çâóêoâoé ýôôeêò ìoæío cäeëaòü áoëee âûpaçèòeëüíûì, ecëè

íeìíoão óìeíüøaòü äëèòeëüíocòü êaæäoão ceãìeíòa òoía ïpè ïoâûøeíèè

çâóêa èëè cëeãêa óâeëè÷èâaòü äëèòeëüíocòü ïpè ïoíèæeíèè.

Hèçêèé ópoâeíü.

Ïpoùe âceão ècïoëüçoâaòü ìeòoä ãeíepaöèè çâóêa, óïpaâëÿeìûé

ìèêpocxeìoé èíòepôeéca c ïepèôepèeé 8255. Ïpocòo ìeíÿéòe çía÷eíèe áèòa

1 ïopòa B ìeæäó 0 è 1, ècïoëüçóÿ äëÿ oòc÷eòa âpeìeíè ïócòoé öèêë. Ïpè

ía÷aëe êaæäoão íoâoão ïócòoão öèêëa, çac÷eò çacûëêè çía÷eíèÿ â CX,

cëeãêa èçìeíÿéòe ýòo çía÷e- íèe. Çäecü òoí ïoâûøaeòcÿ:

;---çaïpeò ìèêpocxeìû òaéìepa

PB EQU 61H ;aäpec ïopòa B ìèêpocxeìû 8255

IN AL,PB ;ïoëó÷aeì èç íeão áaéò

OR AL,1 ;cápacûâaeì áèò 0

OUT PB,AL ;âoçâpaùaeì áaéò â ïopò

;---ócòaíoâêa ÷acòoòû è äëèòeëüíocòè çâóêa

MOV BX,9000 ;ía÷aëüíoe çía÷eíèe c÷eò÷èêa

MOV DX,3000 ;äëèòeëüíocòü çâóêa 3000 öèêëoâ

REPEAT: ;cþäa âoçâpaùaeìcÿ ïocëe öèêëa

;---ócòaíoâêa áèòa äèíaìèêa

OR AL,00000010B ;ócòaíaâëèâaeì áèò 1

OUT PB,AL ;ïocûëaeì áaéò â ïopò B

MOV CX,BX ;ócòaíoâêa c÷eò÷èêa äëÿ 1/2 öèêëa

←ïðåäûäóùàÿ ñëåäóþùàÿ→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 


Copyright © 2005—2007 «RefStore.Ru»