fix: Кодировка
This commit is contained in:
452
Labv1.cpp
452
Labv1.cpp
@ -1,226 +1,226 @@
|
||||
// <EFBFBD>ਬ<EFBFBD><EFBFBD> <20><><EFBFBD>ଫ<EFBFBD><E0ACAB><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> N 0
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><EFBFBD> <20>६<EFBFBD><E0A5AC><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ࠣ<EFBFBD><E0A0A3><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <EFBFBD><EFBFBD>㤥<EFBFBD><EFBFBD><EFBFBD> <20><> 000.0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, & <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
#include <dos.h>
|
||||
#include <bios.h>
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
|
||||
#define PortCan0 0x40
|
||||
|
||||
|
||||
void beep(unsigned iTone,unsigned iDlit); // <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨯ <20>㭪樨
|
||||
// <EFBFBD><EFBFBD>㪮<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨣ<><E1A8A3><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD>
|
||||
|
||||
void main(void)
|
||||
{
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
long int lCnt=0; // <EFBFBD>祩<EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD>稪 <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD>
|
||||
int iA=0x1234; // <EFBFBD>㬬<EFBFBD>-<2D>祩<EFBFBD><E7A5A9>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD>㥬<EFBFBD><E3A5AC> <20> <20><><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
/*************************************************************************\
|
||||
/* <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<EFBFBD>ন<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䨧<EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮬ */
|
||||
|
||||
// <EFBFBD> <20><>⨬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 0046<EFBFBD>h
|
||||
//<EFBFBD><EFBFBD><EFBFBD>塞 far-㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> ⨯<> char <20> <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD>㥬
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD>
|
||||
//<EFBFBD><EFBFBD><EFBFBD> <20> ⨯<> char *
|
||||
char far * pT=(char *)0x46C; // (1)
|
||||
printf ("\n <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠥<EFBFBD> 10 ࠧ <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮬ \n");
|
||||
for (int i=0; i<10; i++)
|
||||
printf (" \n %d ", * pT); // (1)
|
||||
printf ("\n <EFBFBD><EFBFBD><EFBFBD> <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
|
||||
getch(); // <EFBFBD>ணࠬ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
/******************************************\
|
||||
\* <EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><>ᬮ<EFBFBD><E1ACAE><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
// <EFBFBD><EFBFBD>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 40 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20><>
|
||||
printf ("\n <EFBFBD><EFBFBD>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 40 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20><> \n" );
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.5 <EFBFBD>
|
||||
printf ("\n <EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD> <20><> 横<><E6A8AA> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n" );
|
||||
|
||||
|
||||
while (bioskey(1)==0) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
printf (" \n <EFBFBD><EFBFBD><EFBFBD><EFBFBD>40 = %d ", inp(PortCan0)); //(2)
|
||||
// <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TD <20><>ᬮ<EFBFBD><E1ACAE><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD> <20>ॢ<EFBFBD><E0A5A2>頥<EFBFBD><E9A0A5><EFBFBD> <20>-<2D><><EFBFBD> inp()
|
||||
// <EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2> <20><>設<EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
delay(500); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>প<EFBFBD> <20><> <20><><EFBFBD>ᥪ㭤<E1A5AA> (500 <EFBFBD><EFBFBD>)
|
||||
}
|
||||
getch(); // <EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/**************************************************************************\
|
||||
<EFBFBD>ਬ<EFBFBD>砭<EFBFBD><EFBFBD>: *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> printf (...) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>, *
|
||||
<EFBFBD> ⠪<><E2A0AA> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA>. *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> bioskey(1) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> inp(uPort) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> Port *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> outp(uPort,iValue) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뢥<EFBFBD><EBA2A5><EFBFBD> <20><><EFBFBD><EFBFBD>稭<EFBFBD> iValue <EFBFBD> <20><><EFBFBD><EFBFBD> uPort *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> delay(uTime) <EFBFBD>࣠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD> <20><> uTime <20><><EFBFBD><EFBFBD><EFBFBD>ᥪ㭤 *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> getch() <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. *
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砥 <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *
|
||||
\**************************************************************************/
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⠥<EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
printf ("\n <EFBFBD><EFBFBD>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 40 <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD> \n" );
|
||||
|
||||
while (bioskey(1) == 0 ) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <EFBFBD>ਬ<EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD> (3)
|
||||
{
|
||||
asm { push ax // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯮᮡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al,0x40
|
||||
}
|
||||
|
||||
unsigned char Tmm = _AL; // <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭠ mov Tmm,al
|
||||
// !! <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⮬ <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TD
|
||||
|
||||
asm pop ax // <EFBFBD><EFBFBD>㣮<EFBFBD> ᯮᮡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
delay (500);
|
||||
printf (" \n <EFBFBD><EFBFBD><EFBFBD><EFBFBD>40 = %d ", Tmm );
|
||||
// <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><> <20><>室
|
||||
}
|
||||
getch();
|
||||
printf ("\n <EFBFBD><EFBFBD><EFBFBD> <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n ");
|
||||
getch();
|
||||
|
||||
/*************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><>ᬮ<EFBFBD><E1ACAE><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>ਬ<EFBFBD><E0A8AC>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塠<EFBFBD>⮢<EFBFBD><E2AEA2>
|
||||
<EFBFBD><EFBFBD>६<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0046<EFBFBD> c <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><> */
|
||||
|
||||
long far * pTime=(long *)0x46C; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>稪 ⨪<><E2A8AA>
|
||||
while (bioskey(1) == 0)
|
||||
{
|
||||
printf ("\n %ld",*pTime);
|
||||
delay(1000);
|
||||
}
|
||||
getch();
|
||||
// <EFBFBD><EFBFBD>⠥<EFBFBD> <20> <20><><EFBFBD><EFBFBD>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD>塠<EFBFBD>⮢<EFBFBD><E2AEA2> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0046C <20>।<EFBFBD>⢠<EFBFBD><E2A2A0> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
int Time;
|
||||
while (bioskey(1) == 0)
|
||||
{
|
||||
asm push ds // <EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD> <20><> <20><>直<EFBFBD> <20><><EFBFBD>砩 ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm push si
|
||||
// <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm mov ax,40h // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> hex-<2D><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD> ⠪ ...
|
||||
asm mov ds,ax
|
||||
asm mov si,0x6C // ... <EFBFBD><EFBFBD><EFBFBD> ⠪
|
||||
asm mov ax,[ds:si]
|
||||
asm mov Time,ax
|
||||
asm pop si // <EFBFBD> ⥯<><E2A5AF><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm pop ds // (<EFBFBD><EFBFBD> <20><>९<EFBFBD>⠩<EFBFBD><E2A0A9> <20><><EFBFBD>冷<EFBFBD> !!!)
|
||||
|
||||
printf ("\n %d",Time);
|
||||
delay(300);
|
||||
}
|
||||
|
||||
/****************************************************************
|
||||
<EFBFBD>ਬ<EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⨯<> <20>
|
||||
<EFBFBD>ॡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(<EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mov reg,mem, <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>९<EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> )
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><EFBFBD> <20>६<EFBFBD><E0A5AC><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ࠣ<EFBFBD><E0A0A3><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> */
|
||||
|
||||
beep(400,200); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⬥砥<E2ACA5> <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD>ࢠ<EFBFBD><E0A2A0> (5)
|
||||
for ( lCnt=0; lCnt<1000000; lCnt++)
|
||||
{
|
||||
a1: asm { mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
a2: mov ax,iA }
|
||||
}
|
||||
beep(400,200); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⬥砥<E2ACA5> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࢠ<EFBFBD><E0A2A0> (5)
|
||||
}
|
||||
|
||||
// <EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>㪮<EFBFBD><E3AAAE><EFBFBD><EFBFBD> ᨣ<><E1A8A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD> (5)
|
||||
void beep(unsigned iTone,unsigned iDlit)
|
||||
{ sound(iTone);
|
||||
delay(iDlit);
|
||||
nosound();
|
||||
}
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨫<EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD> <20><>ࢮ<EFBFBD> <20><>᪥ <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD><EFBFBD> <20><>⪠<EFBFBD><E2AAA0> a1 <EFBFBD> a2 <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>
|
||||
// <EFBFBD>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD> 3.15 +- 0.2 ᥪ㭤 (<28><><EFBFBD> <20>業<EFBFBD><E6A5AD> <20>訡<EFBFBD><E8A8A1>
|
||||
// <EFBFBD>ண<EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>७ 5 ࠧ <20> <20>뫮 <20>業<EFBFBD><E6A5AD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20>
|
||||
// <EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠢ<><E0A0A2> 2*<2A><><EFBFBD>)
|
||||
// <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>᪥ <20><><EFBFBD><EFBFBD>⮪ a1-a2 ࠡ<>⠫. <20>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD> 7.5 +- 0.2 ᥪ㭤. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOV REG,MEM
|
||||
// ࠢ<EFBFBD><EFBFBD> 10^7, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD><E0A5AC><EFBFBD> ࠢ<><E0A0A2> 4.35 +- 0.3 ᥪ㭤, <20>業<EFBFBD><E6A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD>
|
||||
// <EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.44 +- 0.03 <EFBFBD><EFBFBD><EFBFBD>.
|
||||
// <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TD <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᬥ饭<E1ACA5><E9A5AD><EFBFBD> [BP+disp]
|
||||
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> LAB0-0
|
||||
|
||||
1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠩<EFBFBD><EFBFBD> ⥪<><E2A5AA> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨ <20><>吝<EFBFBD><EFA7AD> <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20><> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>祬. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>짮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥪<EFBFBD><E2A5AA><EFBFBD><EFBFBD><EFBFBD> Help'<EFBFBD><EFBFBD>
|
||||
|
||||
2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> 㡥<><E3A1A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>訡<EFBFBD><E8A8A1>
|
||||
|
||||
3. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>, <20><><EFBFBD><EFBFBD><EFBFBD><EEA4A0><EFBFBD> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 㡥<><E3A1A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20>ந<EFBFBD>室<EFBFBD><E5AEA4>.
|
||||
|
||||
4. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20>⫠<EFBFBD>稪 IDE:
|
||||
<EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>窨 <20><>⠭<EFBFBD><E2A0AD><EFBFBD>. <20><> <20><EFBFBD><E0AEA2>
|
||||
<EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-⥪<><E2A5AA><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᤥ<><E1A4A5><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA> <20><><EFBFBD><EFBFBD> Run
|
||||
<EFBFBD> Debug/Breakpoints.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>⠭<EFBFBD><E2A0AD><EFBFBD>.
|
||||
<EFBFBD>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD> <20><><EFBFBD><EFBFBD> Debug/Evaluate/Modify,
|
||||
Debug/Inspect (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Alt/F4) <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Debug/Watches
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>९<EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><E2A5AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
⠪, <20><><EFBFBD> <20><><EFBFBD> ᤥ<><E1A4A5><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC> LAB0 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOV REG,MEM.
|
||||
|
||||
5. <EFBFBD>।<EFBFBD>⢠<EFBFBD><EFBFBD> <20>⫠<EFBFBD>稪<EFBFBD> TD <20> <20><><EFBFBD><EFBFBD> CPU (<28>㭪<EFBFBD> <20><><EFBFBD><EFBFBD> View/CPU) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> ॣ<><E0A5A3><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>㬠<EFBFBD><E3ACA0><EFBFBD>, <20><>-
|
||||
<EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>⠫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ଠ<EFBFBD>쭮<EFBFBD><ECADAE> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ணࠬ<EFBFBD><EFBFBD> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD>⠬)
|
||||
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䨧<><E4A8A7><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD>ᮬ:
|
||||
(<EFBFBD>०<EFBFBD><EFBFBD>, 祬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤠-<2D><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뫮 <20><> <20><><EFBFBD>㬠<EFBFBD><E3ACA0>: <20><><EFBFBD> <20><><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>(<28><> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ணࠬ<EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 䨧<><E4A8A7><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD>⢮, ᮮ<>-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
<EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
1. 0x46C
|
||||
0x80000
|
||||
0xF000:0xFFF0
|
||||
2. 0x0040:0x6D
|
||||
0x8000:0x0010
|
||||
0xFFFFE
|
||||
3. 0x41A
|
||||
0x80210
|
||||
0xFFFF:0x100
|
||||
4. 0x0040:0x1E
|
||||
0xD00000
|
||||
0x8000:0x200
|
||||
5. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 0x41A-0x43C
|
||||
0xD000:0x100
|
||||
0xFFFF:0xE
|
||||
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>ந<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/<2F>뢮<EFBFBD><EBA2AE> (<28><><EFBFBD>ਬ<EFBFBD><E0A8AC>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x40 <EFBFBD><EFBFBD><EFBFBD>쪮 ࠧ - <20><><EFBFBD><EFBFBD><E0AEA1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᭨<EFBFBD><E1ADA8> <20><><EFBFBD><EFBFBD><EFBFBD><EEA4A0><EFBFBD><EFBFBD> १<><E0A5A7><EFBFBD>-
|
||||
<EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 3 <EFBFBD> 61 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤠 <20><><EFBFBD><EFBFBD>);
|
||||
|
||||
6. <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<E1ABA8><E0AEA2> <20> <20><>몠 <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<><E6A8AA>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0AEA2> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD> <> <20><>ਠ<EFBFBD><E0A8A0> 横<><E6A8AA>.
|
||||
<EFBFBD>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD>⠢<EFBFBD><E2A0A2> <20>९<EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD>.
|
||||
*/
|
||||
// Пример оформления программы
|
||||
|
||||
// Работа N 0
|
||||
// Измерение времени выполнения фрагмента программы
|
||||
// Студенты гр 000.0 Иванофф, Петрофф, & Сидорофф
|
||||
//
|
||||
|
||||
#include <dos.h>
|
||||
#include <bios.h>
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
|
||||
#define PortCan0 0x40
|
||||
|
||||
|
||||
void beep(unsigned iTone,unsigned iDlit); // Это прототип функции
|
||||
// звукового сигнала, используемой при измерении времени
|
||||
|
||||
void main(void)
|
||||
{
|
||||
|
||||
// Объявление переменных
|
||||
long int lCnt=0; // Ячейка - счетчик повторений
|
||||
int iA=0x1234; // Думми-ячейка, используемая в исследуемой команде
|
||||
|
||||
/*************************************************************************\
|
||||
/* Как из Си посмотреть содержимое байта с известным физическим адресом */
|
||||
|
||||
// Если хотим напечатать содержимое байта с адресом 0046Сh
|
||||
//объявляем far-указатель на переменную типа char и инициализируем
|
||||
//этот указатель значением адреса, предварительно преобразовав
|
||||
//его к типу char *
|
||||
char far * pT=(char *)0x46C; // (1)
|
||||
printf ("\n Печатаем 10 раз значение байта с известным адресом \n");
|
||||
for (int i=0; i<10; i++)
|
||||
printf (" \n %d ", * pT); // (1)
|
||||
printf ("\n Для продолжения нажмите любую клавишу \n");
|
||||
getch(); // Программа ждет нажатия клавиши
|
||||
|
||||
|
||||
/******************************************\
|
||||
\* Как из Си посмотреть содержимое порта */
|
||||
|
||||
// Читаем содержимое порта с адресом 40 с помощью функции Си
|
||||
printf ("\n Читаем содержимое порта с адресом 40 с помощью функции Си \n" );
|
||||
// Цикл повторяется каждые 0.5 с
|
||||
printf ("\n Для выхода из цикла - нажмите любую клавишу \n" );
|
||||
|
||||
|
||||
while (bioskey(1)==0) // пока не будет нажата любая клавиша
|
||||
{
|
||||
printf (" \n Порт40 = %d ", inp(PortCan0)); //(2)
|
||||
// С помощью TD посмотрите, во что превращается ф-ция inp()
|
||||
// на уровне машинных команд
|
||||
delay(500); // Задержка на полсекунды (500 мс)
|
||||
}
|
||||
getch(); // Очищаем буфер клавиатуры
|
||||
/**************************************************************************\
|
||||
Примечания: *
|
||||
Функция printf (...) позволяет распечатать на экране значения переменных, *
|
||||
а также произвольный текст. *
|
||||
Функция bioskey(1) позволяет определить, нажата ли клавиша *
|
||||
Функция inp(uPort) позволяет считать байт из порта Port *
|
||||
Функция outp(uPort,iValue) позволяет вывести величину iValue в порт uPort *
|
||||
Функция delay(uTime) организует программную задержку на uTime миллисекунд *
|
||||
Функция getch() считывает один символ из буфера клавиатуры. *
|
||||
В данном случае это надо для очистки буфера клавиатуры *
|
||||
\**************************************************************************/
|
||||
|
||||
// Снова читаем тот же порт с помощью программы на встроенном ассемблере
|
||||
printf ("\n Читаем содержимое порта с адресом 40 ассемблером \n" );
|
||||
|
||||
while (bioskey(1) == 0 ) // Этот цикл будет повторяться,
|
||||
// пока не нажмем клавишу
|
||||
|
||||
// Примеры использования встроенного ассемблера (3)
|
||||
{
|
||||
asm { push ax // Один способ записи на встроенном ассемблере
|
||||
in al,0x40
|
||||
}
|
||||
|
||||
unsigned char Tmm = _AL; // Эта команда эквивалентна mov Tmm,al
|
||||
// !! Убедитесь в этом с помощью TD
|
||||
|
||||
asm pop ax // Другой способ записи на встроенном ассемблере
|
||||
delay (500);
|
||||
printf (" \n Порт40 = %d ", Tmm );
|
||||
// Если нажата клавиша - то выход
|
||||
}
|
||||
getch();
|
||||
printf ("\n Для продолжения - нажмите любую клавишу \n ");
|
||||
getch();
|
||||
|
||||
/*************************************************************
|
||||
Как посмотреть содержимое длинной (например)четырехбайтовой
|
||||
переменной с адреса 0046С c помощью средств Си */
|
||||
|
||||
long far * pTime=(long *)0x46C; // Указатель на счетчик тиков
|
||||
while (bioskey(1) == 0)
|
||||
{
|
||||
printf ("\n %ld",*pTime);
|
||||
delay(1000);
|
||||
}
|
||||
getch();
|
||||
// Читаем и печатаем содержимое двухбайтовой переменной
|
||||
// с адреса 0046C средствами встроенного ассемблера
|
||||
int Time;
|
||||
while (bioskey(1) == 0)
|
||||
{
|
||||
asm push ds // Сохраним на всякий случай регистры
|
||||
asm push si
|
||||
// Во встроенном ассемблере
|
||||
asm mov ax,40h // можно записывать hex-константы так ...
|
||||
asm mov ds,ax
|
||||
asm mov si,0x6C // ... или так
|
||||
asm mov ax,[ds:si]
|
||||
asm mov Time,ax
|
||||
asm pop si // А теперь восстановим регистры
|
||||
asm pop ds // (не перепутайте порядок !!!)
|
||||
|
||||
printf ("\n %d",Time);
|
||||
delay(300);
|
||||
}
|
||||
|
||||
/****************************************************************
|
||||
Пример выполнения задания типа И
|
||||
Требуется измерить время выполнения заданной команды
|
||||
(в примере - команда mov reg,mem, а Вы спросите у преподавателя
|
||||
какую команду Вам взять )
|
||||
|
||||
Измерение времени выполнения фрагмента программы */
|
||||
|
||||
beep(400,200); // Сигнал отмечает начало интервала (5)
|
||||
for ( lCnt=0; lCnt<1000000; lCnt++)
|
||||
{
|
||||
a1: asm { mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
mov ax,iA
|
||||
a2: mov ax,iA }
|
||||
}
|
||||
beep(400,200); // Сигнал отмечает конец интервала (5)
|
||||
}
|
||||
|
||||
// Функция подачи звукового сигнала заданной высоты и длительности (5)
|
||||
void beep(unsigned iTone,unsigned iDlit)
|
||||
{ sound(iTone);
|
||||
delay(iDlit);
|
||||
nosound();
|
||||
}
|
||||
|
||||
// Результаты выполнения
|
||||
// Запустили программу дважды
|
||||
// При первом пуске участок между метками a1 и a2 был закомментирован
|
||||
// Время выполнения составило 3.15 +- 0.2 секунд (для оценки ошибки
|
||||
// прогон был повторен 5 раз и было оценено среднее значение и
|
||||
// среднеквадратическое отклонение. Приведенный допуск равен 2*СКО)
|
||||
// При втором пуске участок a1-a2 работал. Время выполнения
|
||||
// составило 7.5 +- 0.2 секунд. Количество повторений команды MOV REG,MEM
|
||||
// равно 10^7, добавка времени равна 4.35 +- 0.3 секунд, оценка времени
|
||||
// выполнения команды 0.44 +- 0.03 мкс.
|
||||
// С помощью TD определили, что компилятор использовал адресацию
|
||||
// базовая со смещением [BP+disp]
|
||||
|
||||
/*
|
||||
Задание на выполнение работы LAB0-0
|
||||
|
||||
1. Прочитайте текст программы и выделите логически связные части,
|
||||
поймите, что делают эти части. Разбирая текст, обратите внимание на
|
||||
то, какие функции Си используются и зачем. Делая это, научитесь
|
||||
пользоваться контекстным Help'ом
|
||||
|
||||
2. Скомпилируйте программу и убедитесь, что в ней отсутствуют ошибки
|
||||
|
||||
3. Запустите программу, наблюдайте результат и убедитесь, что Вы пони-
|
||||
маете, что происходит.
|
||||
|
||||
4. Научитесь, используя встроенный отладчик IDE:
|
||||
Выполнить программу до заданной точки останова. На уровне
|
||||
исходного Си-текста это можно сделать, используя пункты меню Run
|
||||
и Debug/Breakpoints.
|
||||
Проверить/изменить содержимое переменных после останова.
|
||||
Используйте пункт меню Debug/Evaluate/Modify,
|
||||
Debug/Inspect (горячая клавиша Alt/F4) либо Debug/Watches
|
||||
Измерить время выполнения заданной преподавателем команды
|
||||
так, как это сделано в программе LAB0 с командой MOV REG,MEM.
|
||||
|
||||
5. Средствами отладчика TD в окне CPU (пункт меню View/CPU) научитесь:
|
||||
- наблюдать/изменять содержимое регистров процессора (подумайте, ка-
|
||||
кие регистры можно менять безболезнено (изменения в некоторых ре-
|
||||
гистрах могут привести к фатальным для нормального выполнения
|
||||
программы результатам)
|
||||
- наблюдать/изменять ячейку памяти с известным физическим адресом:
|
||||
(Прежде, чем писать куда-либо, хорошо было бы подумать: что это за
|
||||
адрес - адрес ОЗУ(не использует ли этот адрес еще какая-нибудь
|
||||
программа), адрес ПЗУ, существует ли физическое устройство, соот-
|
||||
ветствующее данному адресу...
|
||||
Варианты:
|
||||
1. 0x46C
|
||||
0x80000
|
||||
0xF000:0xFFF0
|
||||
2. 0x0040:0x6D
|
||||
0x8000:0x0010
|
||||
0xFFFFE
|
||||
3. 0x41A
|
||||
0x80210
|
||||
0xFFFF:0x100
|
||||
4. 0x0040:0x1E
|
||||
0xD00000
|
||||
0x8000:0x200
|
||||
5. область памяти - 0x41A-0x43C
|
||||
0xD000:0x100
|
||||
0xFFFF:0xE
|
||||
- читать/писать в произвольный порт ввода/вывода (например: считать
|
||||
порт 0x40 несколько раз - попробуйте объяснить наблюдаемый резуль-
|
||||
тат; записать число 3 в 61 порт, потом быстро записать туда нуль);
|
||||
|
||||
6. Определите в какие команды Ассемблера оттранслирован с языка СИ
|
||||
оператор цикла. Напишите на уровне Ассемблера свой вариант цикла.
|
||||
Сравните, результаты представте преподавателю.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user