init
This commit is contained in:
131
ASMOUSE.CPP
Executable file
131
ASMOUSE.CPP
Executable file
@ -0,0 +1,131 @@
|
||||
/****************************************************************************
|
||||
** <20><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> <20> <20><>誮<EFBFBD>,**
|
||||
** <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> <20>++ <20> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD>. **
|
||||
****************************************************************************/
|
||||
|
||||
#include <conio.h>
|
||||
#include <stdio.h>
|
||||
#include <dos.h>
|
||||
#include <iostream.h>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>, <20>࠭<EFBFBD>騥 <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20> <20>ਧ<EFBFBD><E0A8A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>.
|
||||
unsigned int MouseX, MouseY, MouseB;
|
||||
|
||||
char IfMouse ();
|
||||
void ShowMouse ();
|
||||
void HideMouse ();
|
||||
void ReadMouse ();
|
||||
void SetMouseXY (unsigned int X, unsigned int Y);
|
||||
void SetMinMaxX (unsigned int Min, unsigned int Max);
|
||||
void SetMinMaxY (unsigned int Min, unsigned int Max);
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㯭<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
char IfMouse ()
|
||||
{
|
||||
unsigned int Result;
|
||||
asm mov ax, 0
|
||||
asm int 0x33
|
||||
asm mov Result, ax
|
||||
return Result;
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
void ShowMouse ()
|
||||
{
|
||||
asm mov ax, 0x1
|
||||
asm int 0x33
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
void HideMouse ()
|
||||
{
|
||||
asm mov ax, 0x2
|
||||
asm int 0x33
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>ਧ<EFBFBD><E0A8A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ReadMouse ()
|
||||
{
|
||||
asm mov ax, 0x3
|
||||
asm int 0x33
|
||||
asm mov MouseB, bx
|
||||
asm mov MouseX, cx
|
||||
asm mov MouseY, dx
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>㣨<EFBFBD> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD>
|
||||
void SetMouseXY (unsigned int X, unsigned int Y)
|
||||
{
|
||||
asm mov ax, 0x4
|
||||
asm mov cx, X
|
||||
asm mov dx, Y
|
||||
asm int 0x33
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD> <20> <20><><EFBFBD>ᨬ<EFBFBD><E1A8AC>쭮<EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
||||
//<2F>࠭<EFBFBD><E0A0AD> <20><EFBFBD><E0AEAC><EFBFBD>⪠, <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//<2F> <20><>ਧ<EFBFBD><E0A8A7>⠫쭮<E2A0AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
void SetMinMaxX (unsigned int Min, unsigned int Max)
|
||||
{
|
||||
asm mov ax, 0x7
|
||||
asm mov cx, Min
|
||||
asm mov dx, Max
|
||||
asm int 0x33
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD> <20> <20><><EFBFBD>ᨬ<EFBFBD><E1A8AC>쭮<EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
||||
//<2F>࠭<EFBFBD><E0A0AD> <20><EFBFBD><E0AEAC><EFBFBD>⪠, <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//<2F> <20><><EFBFBD>⨪<EFBFBD><E2A8AA>쭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
void SetMinMaxY (unsigned int Min, unsigned int Max)
|
||||
{
|
||||
asm mov ax, 0x8
|
||||
asm mov cx, Min
|
||||
asm mov dx, Max
|
||||
asm int 0x33
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ࠬ<EFBFBD><E0A0AC> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
main(){
|
||||
clrscr();
|
||||
IfMouse();
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㯭<EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>.\n";
|
||||
delay(3000);
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFA2A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD>প<EFBFBD> 3 ᥪ.\n";
|
||||
delay(3000);
|
||||
ShowMouse();
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>祧<EFBFBD><E7A5A7><EFBFBD> - <20><><EFBFBD><EFBFBD>প<EFBFBD> 3 ᥪ.\n";
|
||||
delay(3000);
|
||||
HideMouse();
|
||||
cout<<"<EFBFBD><EFBFBD>१ 3 ᥪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFA2A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.\n";
|
||||
delay(3000);
|
||||
ShowMouse();
|
||||
ReadMouse();
|
||||
cout<<"\n<EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #1:\n";
|
||||
cout<<"<EFBFBD>-<2D><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD>: "<<MouseX<<"\n";
|
||||
cout<<"<EFBFBD>-<2D><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> "<<MouseY<<"\n";
|
||||
delay(3000);
|
||||
cout<<"<EFBFBD><EFBFBD>१ 3 ᥪ <20><><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>=120 <20> <20>=120\n";
|
||||
delay(3000);
|
||||
SetMouseXY(120,120);
|
||||
ReadMouse();
|
||||
cout<<"\n<EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #2:\n";
|
||||
cout<<"<EFBFBD>-<2D><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD>: "<<MouseX<<"\n";
|
||||
cout<<"<EFBFBD>-<2D><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> "<<MouseY<<"\n";
|
||||
delay(3000);
|
||||
cout<<"\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.\n";
|
||||
delay(3000);
|
||||
ReadMouse();
|
||||
//if ((MouseB&1)==1) cout<<"\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
|
||||
if (MouseB==1) cout<<"\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
|
||||
else cout<<"\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
|
||||
delay(3000);
|
||||
cout<<"\n<EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>:\n";
|
||||
cout<<"100<X<300\n";
|
||||
cout<<"0<Y<10\n";
|
||||
SetMinMaxX(100,300);
|
||||
SetMinMaxY(0,10);
|
||||
cout<<"\n<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> ࠡ<><E0A0A1><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n";
|
||||
getch();
|
||||
return 0;
|
||||
}
|
||||
BIN
ASMOUSE.EXE
Executable file
BIN
ASMOUSE.EXE
Executable file
Binary file not shown.
BIN
KEYVIEW.COM
Executable file
BIN
KEYVIEW.COM
Executable file
Binary file not shown.
76
LABV10.CPP
Executable file
76
LABV10.CPP
Executable file
@ -0,0 +1,76 @@
|
||||
// "<22><><EFBFBD><EFBFBD><EFBFBD> IBM PC <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன"
|
||||
// Labv10
|
||||
|
||||
#include <iostream.h>
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
#include <dos.h>
|
||||
#include <bios.h>
|
||||
#define Port8042 0x60
|
||||
|
||||
long far * pTime=(long far*)0x46C; // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>稪 ⨪<><E2A8AA>
|
||||
|
||||
// <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><>砫<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int far * pHeadPtr=(int far *)0x41A; // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.<2E><>.
|
||||
int far * pTailPtr=(int far *)0x41C; // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> 㪠<><E3AAA0>⥫<EFBFBD> 墮<><E5A2AE><EFBFBD> <20><><EFBFBD>.<2E><>.
|
||||
unsigned char far * pBuf;
|
||||
|
||||
void main()
|
||||
{
|
||||
// 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD> N1.
|
||||
clrscr();
|
||||
|
||||
cout << "\n 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD> N1:\n";
|
||||
cout << "\n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
cout << "\n <20><EFBFBD><E0AEA1> - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n";
|
||||
char cScan,cAsci;
|
||||
int iAdres;
|
||||
do
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> <20><><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>, <20><><EFBFBD>ਬ<EFBFBD><E0A8AC> ds:si <20><><EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> 0x40:0x1A
|
||||
asm{
|
||||
push ds //
|
||||
push si // <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push di //
|
||||
mov ax,0x40 //
|
||||
mov ds,ax // <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> ᥣ<><E1A5A3><EFBFBD><EFBFBD>
|
||||
mov si,0x1A // <20> 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov di,0x1C // <20> <20><> 墮<><E5A2AE>
|
||||
}
|
||||
wait_kbd:
|
||||
asm{
|
||||
mov ax,[si] // <20>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> -
|
||||
cmp ax,[di] // <20>.<2E>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
je wait_kbd
|
||||
// <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> ॣ<><E0A5A3><EFBFBD><EFBFBD> di <20><><EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> 0x1C
|
||||
// <20>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD>
|
||||
mov si,[si]
|
||||
}
|
||||
iAdres=_SI;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm mov ax,[si]
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> _AL <20> _AH ᮤ<>ঠ<EFBFBD> ᪠<>-<2D><><EFBFBD> <20> ASCII-<2D><><EFBFBD>
|
||||
asm pop di
|
||||
asm pop si
|
||||
asm pop ds
|
||||
cScan=_AH;
|
||||
cAsci=_AL;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = %x <20><><EFBFBD><EFBFBD> = %d ASCII = %d \n",iAdres,cScan,cAsci);
|
||||
} while(getch() != 32);
|
||||
cout << "\n <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ࢮ<EFBFBD><E0A2AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. Press any key...\n";
|
||||
getch();
|
||||
|
||||
delay(1000);
|
||||
asm in al,0x60
|
||||
cScan=0; // ??????
|
||||
printf(" <20><><EFBFBD><EFBFBD> = %x \n",cScan);
|
||||
// goto met;
|
||||
//
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20>⫨稥 ASCII <20><><EFBFBD><EFBFBD><EFBFBD>: <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20> <20><>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> 横<><E6A8AA><EFBFBD><EFBFBD><EFBFBD><E1AAAE> <20>⥭<EFBFBD><E2A5AD> ᪠<> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 60
|
||||
// <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20>⫨稥 ᪠<> <20><><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
40
LABV11.CPP
Executable file
40
LABV11.CPP
Executable file
@ -0,0 +1,40 @@
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> 11
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> ०<><E0A5A6><EFBFBD> sVGA
|
||||
*/
|
||||
#include <dos.h>
|
||||
#include <mem.h>
|
||||
#include <conio.h>
|
||||
|
||||
void set_mode(int mode)
|
||||
{
|
||||
asm{
|
||||
mov ax,0x4f02;
|
||||
mov bx,mode ;
|
||||
int 0x10;
|
||||
}
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
set_mode(0x0112);
|
||||
unsigned char c=0;
|
||||
for (int i=2; i<640*4;i+=4)
|
||||
{
|
||||
asm {
|
||||
mov ax,0xa000;
|
||||
mov es,ax;
|
||||
mov si,i
|
||||
mov bh,c
|
||||
mov bl,c
|
||||
mov es:[si],bl
|
||||
|
||||
}
|
||||
|
||||
c++;
|
||||
}
|
||||
getch();
|
||||
set_mode(0x3);
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>浪<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥<><E6A2A5> <20> 111 <20> 112 ०<><E0A5A6><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20>뢮<EFBFBD><EBA2AE> <20><><EFBFBD><EFBFBD>⮭<EFBFBD><E2AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
57
LABV5.CPP
Executable file
57
LABV5.CPP
Executable file
@ -0,0 +1,57 @@
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> N LAB5
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#include <stdio.h>
|
||||
#include<conio.h>
|
||||
#include<iostream.h>
|
||||
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20>맮<EFBFBD><EBA7AE> <20>㭪樨 <20> <20><>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Call
|
||||
<EFBFBD> Assembler. <20><><EFBFBD> <20>⮬ <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ਭ樯<E0A8AD> <20><>ࠢ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><>⥬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <><E1ABA5><EFBFBD>饩 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD><EFBFBD>饩 <20><> Call. (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᥣ<EFBFBD><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>맮<EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD>)
|
||||
<EFBFBD><EFBFBD>室 <20><> <20>㭪樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RET.
|
||||
*/
|
||||
|
||||
//<2F>㭪<EFBFBD><E3ADAA><EFBFBD>, <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABAE><EFBFBD><EFBFBD><EFBFBD>, <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20><>। <20><>१ <20>⥪
|
||||
void addition(long sl_1,long sl_2, long &sum)
|
||||
{
|
||||
/* asm{
|
||||
mov AX,[BP+4] //AX - <20><><EFBFBD><EFBFBD>訥 p<><70>p<EFBFBD><70><EFBFBD> <20><>p<EFBFBD><70><EFBFBD><EFBFBD> <><E1ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov DX,[BP+8] //DX - <20><><EFBFBD><EFBFBD>訥 p<><70>p<EFBFBD><70><EFBFBD> <20><><EFBFBD>ண<EFBFBD> <><E1ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov SI,[BP+12] //SI - <20>㬬<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p<><70>p冷<70>
|
||||
add AX,DX //<><E1ABAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p<><70>p冷<70>
|
||||
mov [SI],AX //p<><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᢥ<EFBFBD><E1A2A5><EFBFBD> <20> SI
|
||||
mov AX,[BP+6] //AX - <20><><EFBFBD>p訥 p<><70>p<EFBFBD><70><EFBFBD> <20><>p<EFBFBD><70><EFBFBD><EFBFBD> <><E1ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov DX,[BP+10] //DX - <20><><EFBFBD><EFBFBD>訥 p<><70>p<EFBFBD><70><EFBFBD> <20><><EFBFBD>ண<EFBFBD> <><E1ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<><E1ABAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>p<EFBFBD><70><EFBFBD> p<><70>p冷<70>
|
||||
mov [SI+2],AX //p<><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SI
|
||||
}*/
|
||||
sum=sl_2;
|
||||
}
|
||||
|
||||
void main ( void )
|
||||
{
|
||||
long a,b;
|
||||
long sum;
|
||||
|
||||
cout<<"\n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࢮ<EFBFBD> <><E1ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
||||
cin>>a;
|
||||
cout<<" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <><E1ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
||||
cin>>b;
|
||||
|
||||
addition(a,b,sum);
|
||||
|
||||
cout<<"a + b = "<<sum;
|
||||
getch();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <><E1ABAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32-<2D> ࠧ<>來<EFBFBD><EFA4AD> <20><>ᥫ <20><> <20><>
|
||||
// 2 <20><><EFBFBD>ନ<EFBFBD><E0ACA8> <><E1ABAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC><EFBFBD> <20><> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD> (ᬮ<><E1ACAE><EFBFBD> <20>ਬ<EFBFBD><E0A8AC>)
|
||||
// 3 <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᥣ<EFBFBD><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20>맮<EFBFBD> <20><><EFBFBD>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᥣ<EFBFBD><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>맮<EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3><E0A0AC> (<28><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD>)
|
||||
// <20><>⥬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Tiny - Large
|
||||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
||||
// 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC> <20><>१ ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
46
LABV6.CPP
Executable file
46
LABV6.CPP
Executable file
@ -0,0 +1,46 @@
|
||||
/* LAB6
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><> ⥬<>
|
||||
"<22>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>"
|
||||
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20>맮<EFBFBD><EBA7AE> <20>㭪樨 - <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> INT.
|
||||
<EFBFBD> <20><>裡 <20> <20>⨬ <20>⥪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>쪮 <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD> <20>⥪<EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> IP, <20>S (ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>),<2C><> <20>㤠 <20><><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD>, <20> 䫠<><E4ABA0>.
|
||||
<EFBFBD><EFBFBD>室 <20><> INT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IRet,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뭨<EFBFBD><EBADA8><EFBFBD><EFBFBD> <20><> <20>⥪<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD> CS, IP <20> 䫠<><E4ABA0><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20>맮<EFBFBD><EBA7AE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>,䫠<><E4ABA0><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> i <20> t
|
||||
<EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 0, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD> <20>맮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>㣨<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>,
|
||||
<EFBFBD> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>.
|
||||
*/
|
||||
#include<stdio.h>
|
||||
#include<dos.h>
|
||||
#include<iostream.h>
|
||||
#include <conio.h>
|
||||
|
||||
void interrupt (*old)(...); // <20><><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void interrupt cmp_int(...) // <20> <20><><EFBFBD> <20><><EFBFBD> <20><>ࠡ<EFBFBD><E0A0A1>稪
|
||||
{
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD> ";
|
||||
getch();
|
||||
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{ int aa;
|
||||
aa=1;
|
||||
old=getvect(0xf0);
|
||||
disable();
|
||||
setvect(0xf0,cmp_int);
|
||||
enable();
|
||||
// aa=aa/0;
|
||||
geninterrupt(0xf0);
|
||||
|
||||
puts("v1=v2");
|
||||
setvect(0xf0,old);
|
||||
return;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><>ࠡ<EFBFBD>⪨ <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
// 2 <20>맮<EFBFBD><EBA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><>⥬ <20>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD>樨 <20>ᮡ<EFBFBD><E1AEA1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int3, <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20> <20>ᯮ<EFBFBD>. TD
|
||||
}
|
||||
41
LABV7.CPP
Executable file
41
LABV7.CPP
Executable file
@ -0,0 +1,41 @@
|
||||
/* LAB-7
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><> ⥬<>
|
||||
"<22><> ᯫ<><E1AFAB><EFBFBD><EFBFBD>饩 <20><><EFBFBD><EFBFBD>⮩"
|
||||
|
||||
*/
|
||||
#include<stdio.h>
|
||||
#include<dos.h>
|
||||
#include<iostream.h>
|
||||
#include <conio.h>
|
||||
#include <float.h>
|
||||
|
||||
void main(void)
|
||||
{ int aa;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饩 <20><><EFBFBD><EFBFBD>⮩ <20><> <20><EFBFBD><E0AEA2> <20><>
|
||||
float bb,ad;
|
||||
aa=1; bb=5.0;ad=3.1;
|
||||
bb=aa;
|
||||
cout<<"\n Ci "<<bb;
|
||||
// cin>>bb;
|
||||
getch();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饩 <20><><EFBFBD><EFBFBD>⮩ <20><> <20><EFBFBD><E0AEA2> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm { finit
|
||||
fld ad
|
||||
fld bb
|
||||
fadd
|
||||
fstp bb
|
||||
}
|
||||
cout<<" Acc "<<bb;
|
||||
getch();
|
||||
|
||||
return;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1 <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD> <20><><EFBFBD><E1ABA0> <20> <20><> <20><> <20><EFBFBD><E0AEA2> <20><>
|
||||
// 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD> (<28><> <20>ਬ<EFBFBD><E0A8AC>): <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>,
|
||||
// <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> <20><> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> FPU, <20><><EFBFBD><EFBFBD>㬬<EFBFBD><E3ACAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> FPU <20> TD. <20><><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> FPU ?
|
||||
// 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> FPU <20><><EFBFBD><EFBFBD> (NaN), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> TD. <20>맮<EFBFBD><EBA7AE><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20>⮬<EFBFBD> <20>ᮡ<EFBFBD><E1AEA1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ᥫ <20> <20><>: x=x/y. <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20> TD
|
||||
}
|
||||
72
LABV9.CPP
Executable file
72
LABV9.CPP
Executable file
@ -0,0 +1,72 @@
|
||||
/* Lab: Ass, BIOS and Ci functions
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥬<EFBFBD><E2A5AC> Labv9
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
*/
|
||||
#include <graphics.h>
|
||||
#include <dos.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <conio.h>
|
||||
|
||||
#include <time.h>;
|
||||
|
||||
union REGS r;
|
||||
|
||||
void main()
|
||||
{
|
||||
// <20><>⠭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>०<EFBFBD><E0A5A6><EFBFBD>
|
||||
int j,i,ii,color=0;
|
||||
r.h.ah=0x0;
|
||||
r.h.al=0x13;
|
||||
//_asm int 0x10;
|
||||
int86(0x10,&r,&r);
|
||||
// <20>뢮<EFBFBD> 梥⭮<E6A2A5><E2ADAE> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
for( j =1 ; j <319 ; j ++)
|
||||
{ color=color+1;
|
||||
_AH=0x0c;
|
||||
_AL=color;
|
||||
if(color==256) color=0;
|
||||
_BH=0;
|
||||
_DX=50;
|
||||
_CX=j;
|
||||
geninterrupt(0x10);
|
||||
}
|
||||
getch();
|
||||
|
||||
//<2F><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><E0AEA2><EFBFBD><EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ii=clock();
|
||||
for( i = 0 ; i < 255 ; i++)
|
||||
{ _AH=0x10;
|
||||
_AL=0x10;
|
||||
_BX=i; // <20><><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
_CH=i; /* G */
|
||||
_CL=i; /* B */
|
||||
_DH=i; /* R */
|
||||
geninterrupt(0x10);
|
||||
} /* */
|
||||
color=256;
|
||||
i=clock()-ii;
|
||||
|
||||
// <20>뢮<EFBFBD> <20><><EFBFBD><EFBFBD>⮭<EFBFBD><E2AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
for( j =1 ; j <319 ; j ++) /* */
|
||||
{ color=color-1;
|
||||
_AH=0x0c;
|
||||
_AL=color;
|
||||
if(color==0) color=256;
|
||||
_BH=0;
|
||||
_DX=100; // <20><>ப<EFBFBD> <20>뢮<EFBFBD><EBA2AE>
|
||||
_CX=j;
|
||||
geninterrupt(0x10);
|
||||
}
|
||||
// printf("<22>६<EFBFBD> <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><E0AEA2><EFBFBD><EFBFBD> ⠡<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : %d",i);
|
||||
getch();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⮭<EFBFBD><E2AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮬
|
||||
// 2 <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> ०<><E0A5A6><EFBFBD> <20><>אַ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20>뢮<EFBFBD><EBA2AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><>稭<EFBFBD><E7A8AD> <20> a0000)
|
||||
// 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD> <20>뢮<EFBFBD><EBA2AE> <20> <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD> ⠡<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> i=clock()
|
||||
// 4 <20>ਤ㬠<E0A8A4><E3ACA0><EFBFBD> <20><><EFBFBD><EFBFBD>ࠪ<EFBFBD><E0A0AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>뢥<EFBFBD><EBA2A5> <20><><EFBFBD>쪮
|
||||
// 梥⮢<E6A2A5><E2AEA2> <20><><EFBFBD><EFBFBD>쥢 <20> 横<><E6A8AA><EFBFBD><EFBFBD>᪨ <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD><EFBFBD> ⠡<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
return;
|
||||
}
|
||||
BIN
LOGOW2.BMP
Executable file
BIN
LOGOW2.BMP
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
17
Lab_asm.asm
Executable file
17
Lab_asm.asm
Executable file
@ -0,0 +1,17 @@
|
||||
DOSSEG
|
||||
.MODEL TINY
|
||||
.STACK 100h
|
||||
.DATA
|
||||
Message DB 13,10,'Hi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! ',13,10,'$'
|
||||
.CODE
|
||||
mov ax,@Data
|
||||
mov ds,ax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DS <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah,9 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx,OFFSET Message ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
|
||||
int 21h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!" <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah,4ch ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int 21h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
END
|
||||
226
Labv1.cpp
Executable file
226
Labv1.cpp
Executable file
@ -0,0 +1,226 @@
|
||||
// <20>ਬ<EFBFBD><E0A8AC> <20><><EFBFBD>ଫ<EFBFBD><E0ACAB><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> N 0
|
||||
// <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ࠣ<EFBFBD><E0A0A3><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <20><>㤥<EFBFBD><E3A4A5><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); // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨯ <20>㭪樨
|
||||
// <20><>㪮<EFBFBD><E3AAAE><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)
|
||||
{
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
long int lCnt=0; // <20>祩<EFBFBD><E7A5A9> - <20><><EFBFBD><EFBFBD>稪 <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD>
|
||||
int iA=0x1234; // <20>㬬<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>ᮬ */
|
||||
|
||||
// <20> <20><>⨬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 0046<34>h
|
||||
//<2F><><EFBFBD>塞 far-㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> ⨯<> char <20> <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD>㥬
|
||||
//<2F><><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>
|
||||
//<2F><><EFBFBD> <20> ⨯<> char *
|
||||
char far * pT=(char *)0x46C; // (1)
|
||||
printf ("\n <20><><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 <20><><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(); // <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
/******************************************\
|
||||
\* <20><><EFBFBD> <20><> <20><> <20><>ᬮ<EFBFBD><E1ACAE><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
// <20><>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 40 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20><>
|
||||
printf ("\n <20><>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 40 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20><> \n" );
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.5 <20>
|
||||
printf ("\n <20><><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) // <20><><EFBFBD><EFBFBD> <20><> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
printf (" \n <20><><EFBFBD><EFBFBD>40 = %d ", inp(PortCan0)); //(2)
|
||||
// <20> <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()
|
||||
// <20><> <20><EFBFBD><E0AEA2> <20><>設<EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
delay(500); // <20><><EFBFBD><EFBFBD>প<EFBFBD> <20><> <20><><EFBFBD>ᥪ㭤<E1A5AA> (500 <20><>)
|
||||
}
|
||||
getch(); // <20><><EFBFBD>頥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/**************************************************************************\
|
||||
<20>ਬ<EFBFBD>砭<EFBFBD><E7A0AD>: *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> printf (...) <20><><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>, *
|
||||
<20> ⠪<><E2A0AA> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA>. *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> bioskey(1) <20><><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) <20><><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) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뢥<EFBFBD><EBA2A5><EFBFBD> <20><><EFBFBD><EFBFBD>稭<EFBFBD> iValue <20> <20><><EFBFBD><EFBFBD> uPort *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> delay(uTime) <20>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD> <20><> uTime <20><><EFBFBD><EFBFBD><EFBFBD>ᥪ㭤 *
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> getch() <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. *
|
||||
<20> <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> *
|
||||
\**************************************************************************/
|
||||
|
||||
// <20><><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 <20><>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 40 <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD> \n" );
|
||||
|
||||
while (bioskey(1) == 0 ) // <20><><EFBFBD><EFBFBD> 横<> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
// <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20>ਬ<EFBFBD><E0A8AC><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 // <20><><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; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭠ mov Tmm,al
|
||||
// !! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⮬ <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TD
|
||||
|
||||
asm pop ax // <20><>㣮<EFBFBD> ᯮᮡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
delay (500);
|
||||
printf (" \n <20><><EFBFBD><EFBFBD>40 = %d ", Tmm );
|
||||
// <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><> <20><>室
|
||||
}
|
||||
getch();
|
||||
printf ("\n <20><><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();
|
||||
|
||||
/*************************************************************
|
||||
<20><><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>
|
||||
<20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0046<34> c <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><> */
|
||||
|
||||
long far * pTime=(long *)0x46C; // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>稪 ⨪<><E2A8AA>
|
||||
while (bioskey(1) == 0)
|
||||
{
|
||||
printf ("\n %ld",*pTime);
|
||||
delay(1000);
|
||||
}
|
||||
getch();
|
||||
// <20><>⠥<EFBFBD> <20> <20><><EFBFBD><EFBFBD>⠥<EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD>塠<EFBFBD>⮢<EFBFBD><E2AEA2> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20> <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 // <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><> <20><>直<EFBFBD> <20><><EFBFBD>砩 ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm push si
|
||||
// <20><> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm mov ax,40h // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> hex-<2D><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD> ⠪ ...
|
||||
asm mov ds,ax
|
||||
asm mov si,0x6C // ... <20><><EFBFBD> ⠪
|
||||
asm mov ax,[ds:si]
|
||||
asm mov Time,ax
|
||||
asm pop si // <20> ⥯<><E2A5AF><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm pop ds // (<28><> <20><>९<EFBFBD>⠩<EFBFBD><E2A0A9> <20><><EFBFBD>冷<EFBFBD> !!!)
|
||||
|
||||
printf ("\n %d",Time);
|
||||
delay(300);
|
||||
}
|
||||
|
||||
/****************************************************************
|
||||
<20>ਬ<EFBFBD><E0A8AC> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⨯<> <20>
|
||||
<20>ॡ<EFBFBD><E0A5A1><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>
|
||||
(<28> <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>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> )
|
||||
|
||||
<20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ࠣ<EFBFBD><E0A0A3><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> */
|
||||
|
||||
beep(400,200); // <20><><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); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⬥砥<E2ACA5> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࢠ<EFBFBD><E0A2A0> (5)
|
||||
}
|
||||
|
||||
// <20>㭪<EFBFBD><E3ADAA><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();
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>⨫<EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> <20><>ࢮ<EFBFBD> <20><>᪥ <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD><EFBFBD> <20><>⪠<EFBFBD><E2AAA0> a1 <20> a2 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>
|
||||
// <20>६<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>
|
||||
// <20>ண<EFBFBD><E0AEA3> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>७ 5 ࠧ <20> <20>뫮 <20>業<EFBFBD><E6A5AD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20>
|
||||
// <20>।<EFBFBD><E0A5A4><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>)
|
||||
// <20><><EFBFBD> <20><><EFBFBD> <20><>᪥ <20><><EFBFBD><EFBFBD>⮪ a1-a2 ࠡ<>⠫. <20>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>⠢<EFBFBD><E2A0A2><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
|
||||
// ࠢ<><E0A0A2> 10^7, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD><E0A5AC><EFBFBD> ࠢ<><E0A0A2> 4.35 +- 0.3 ᥪ㭤, <20>業<EFBFBD><E6A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD>
|
||||
// <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.44 +- 0.03 <20><><EFBFBD>.
|
||||
// <20> <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>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᬥ饭<E1ACA5><E9A5AD><EFBFBD> [BP+disp]
|
||||
|
||||
/*
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> LAB0-0
|
||||
|
||||
1. <20><><EFBFBD><EFBFBD><EFBFBD>⠩<EFBFBD><E2A0A9> ⥪<><E2A5AA> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨ <20><>吝<EFBFBD><EFA7AD> <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<20><><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><>
|
||||
<20><>, <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>
|
||||
<20><><EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥪<EFBFBD><E2A5AA><EFBFBD><EFBFBD><EFBFBD> Help'<27><>
|
||||
|
||||
2. <20><><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. <20><><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>-
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20>ந<EFBFBD>室<EFBFBD><E5AEA4>.
|
||||
|
||||
4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD> <20>⫠<EFBFBD>稪 IDE:
|
||||
<20>믮<EFBFBD><EBAFAE><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.
|
||||
<20><EFBFBD><E0AEA2><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 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Alt/F4) <20><><EFBFBD><EFBFBD> Debug/Watches
|
||||
<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><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. <20>।<EFBFBD>⢠<EFBFBD><E2A2A0> <20>⫠<EFBFBD>稪<EFBFBD> TD <20> <20><><EFBFBD><EFBFBD> CPU (<28>㭪<EFBFBD> <20><><EFBFBD><EFBFBD> View/CPU) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EEA4A0>/<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><>-
|
||||
<20><><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><>-
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <20> <20><>⠫<EFBFBD><E2A0AB><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ଠ<EFBFBD>쭮<EFBFBD><ECADAE> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>ணࠬ<E0AEA3><E0A0AC> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD>⠬)
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EEA4A0>/<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>ᮬ:
|
||||
(<28>०<EFBFBD><E0A5A6>, 祬 <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><>
|
||||
<20><><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>
|
||||
<20>ணࠬ<E0AEA3><E0A0AC>), <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 䨧<><E4A8A7><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD>⢮, ᮮ<>-
|
||||
<20><><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. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 0x41A-0x43C
|
||||
0xD000:0x100
|
||||
0xFFFF:0xE
|
||||
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>ந<EFBFBD><E0AEA8><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>
|
||||
<20><><EFBFBD><EFBFBD> 0x40 <20><><EFBFBD>쪮 ࠧ - <20><><EFBFBD><EFBFBD><E0AEA1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᭨<EFBFBD><E1ADA8> <20><><EFBFBD><EFBFBD><EFBFBD><EEA4A0><EFBFBD><EFBFBD> १<><E0A5A7><EFBFBD>-
|
||||
<20><><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 3 <20> 61 <20><><EFBFBD><EFBFBD>, <20><>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤠 <20><><EFBFBD><EFBFBD>);
|
||||
|
||||
6. <20><>।<EFBFBD><E0A5A4><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>.
|
||||
*/
|
||||
87
Labv12.CPP
Executable file
87
Labv12.CPP
Executable file
@ -0,0 +1,87 @@
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD> 䠩<><E4A0A9>
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> 12
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
|
||||
typedef unsigned int WORD;
|
||||
typedef unsigned long DWORD;
|
||||
struct BITMAPFILEHEADER {
|
||||
WORD bfType;
|
||||
DWORD bfSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
WORD bfReserved1;
|
||||
WORD bfReserved2;
|
||||
DWORD bfOffBits;
|
||||
};
|
||||
struct BITMAPINFOHEADER{
|
||||
DWORD biSize;
|
||||
DWORD biWidth;
|
||||
DWORD biHeight;
|
||||
WORD biPlanes;
|
||||
WORD biBitCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD> <20> <20><><EFBFBD>ᥫ<EFBFBD>
|
||||
DWORD biCompression;
|
||||
DWORD biSizeImage;
|
||||
DWORD biXPelsPerMeter;
|
||||
DWORD biYPelsPerMeter;
|
||||
DWORD biClrUsed;
|
||||
DWORD biClrImportant;
|
||||
};
|
||||
|
||||
|
||||
void main(int c,char **a)
|
||||
{
|
||||
FILE *in, *out;
|
||||
highvideo();
|
||||
BITMAPFILEHEADER bfh;
|
||||
BITMAPINFOHEADER bih;
|
||||
/* FILE *po;
|
||||
if(argc==0) return 0;
|
||||
if(argc==2) { mode=257;} else mode=atoi(argv[2]);
|
||||
po=fopen(argv[1],"rb");
|
||||
fread(&bfh,14,1,po);
|
||||
fread(&bih,40,1,po);
|
||||
if(bih.biBitCount!=8) return 1;
|
||||
if(bih.biClrUsed==0){ cmax=256; }
|
||||
else cmax=bih.biClrUsed;
|
||||
*/
|
||||
cputs("(c) Rex Software'99 Bmp Universal Invertor v1.0");
|
||||
normvideo();
|
||||
cputs("");
|
||||
|
||||
int n,bpp;
|
||||
if (c!=2)
|
||||
{
|
||||
puts("\nNeeds some bmps");
|
||||
return ;
|
||||
}
|
||||
|
||||
in = fopen(a[1], "rb");
|
||||
if ((out = fopen("inversed.bmp", "wb"))== NULL)
|
||||
{
|
||||
puts("Cannot open output file"); return ;
|
||||
}
|
||||
cprintf("\n");
|
||||
cputs("Please wait");
|
||||
for (int i=0;i<54;i++) {
|
||||
int c=fgetc(in);
|
||||
fputc(c,out);
|
||||
if (i==28) bpp=c;}
|
||||
if (bpp==8)
|
||||
{
|
||||
for (i=0;i<1024;i++) fputc(255-fgetc(in),out);
|
||||
|
||||
while (!feof(in)) fputc(fgetc(in),out);
|
||||
}
|
||||
if (bpp==24)
|
||||
{ for (int i=0;i<54;i++) fputc(fgetc(in),out);
|
||||
while (!feof(in)) fputc(255-fgetc(in),out);}
|
||||
|
||||
fcloseall();
|
||||
printf("\n%s is %d bit-per-pixel color depth bitmap\n",a[1],bpp);
|
||||
puts("Successsfully retrieved to Inversed.bmp");
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD>ਧ<EFBFBD>樨 <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>.
|
||||
2. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> 䠩<><E4A0A9> (8 - 24 <20><><EFBFBD><EFBFBD>)
|
||||
<EFBFBD><EFBFBD>易⥫쭮 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>.
|
||||
*/
|
||||
175
Labv13.cpp
Executable file
175
Labv13.cpp
Executable file
@ -0,0 +1,175 @@
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> 13
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> ०<><E0A5A6><EFBFBD> sVGA, VESA
|
||||
*/
|
||||
#include <dos.h>
|
||||
#include <bios.h>
|
||||
#include <conio.h>
|
||||
#include <stdio.h>
|
||||
#define LOWORD(l) ((int)(1))
|
||||
#define HIWORD(l) ((int)((l) >> 16))
|
||||
#define MYMODE1 113h //800x600x32k
|
||||
#define MYMODE2 101h //640x480x256
|
||||
#define MYMODE3 105h //1024x768x256
|
||||
|
||||
int pattern_ust=1;
|
||||
int current_b=0;
|
||||
|
||||
/* struct Vesainfo {
|
||||
int attr_m;
|
||||
char attr_a;
|
||||
char attr_b;
|
||||
int h_ust;
|
||||
int size;
|
||||
unsigned segm_a;
|
||||
unsigned segm_b;
|
||||
void far (*fun)();
|
||||
int byte_str;
|
||||
int resx;
|
||||
int resy;
|
||||
char xchsize;
|
||||
char ychsize;
|
||||
char kolvo;
|
||||
char bit_pix;
|
||||
char kolvobank;
|
||||
char memmod;
|
||||
char size_bank;
|
||||
char pages;
|
||||
char reserved;
|
||||
char red_mask_s;
|
||||
char red_mask_p;
|
||||
char green_mask_s;
|
||||
char green_mask_p;
|
||||
char blue_mask_s;
|
||||
char blue_mask_p;
|
||||
char reserved_mask_s;
|
||||
char reserved_mask_p;
|
||||
char colour_info;
|
||||
char reserved2[216];
|
||||
}mine; */
|
||||
|
||||
|
||||
struct SvgaModeInfo
|
||||
{
|
||||
unsigned state;
|
||||
char a_window_state;
|
||||
char b_window_state;
|
||||
unsigned window_multiplicity;
|
||||
unsigned window_size;
|
||||
unsigned a_window_segment;
|
||||
unsigned b_window_segment;
|
||||
void far (*fun)();
|
||||
unsigned string_width;
|
||||
unsigned width;
|
||||
unsigned height;
|
||||
char symbol_height;
|
||||
char symbol_width;
|
||||
char switches_count;
|
||||
char bits_per_pixel;
|
||||
char banks_count;
|
||||
char memory_model;
|
||||
char bank_size;
|
||||
char pages_count;
|
||||
char reserved1;
|
||||
char red_mask;
|
||||
char red_bit;
|
||||
char green_mask;
|
||||
char green_bit;
|
||||
char blue_mask;
|
||||
char blue_bit;
|
||||
char reserved_mask;
|
||||
char reserved_bit;
|
||||
char palette_state;
|
||||
char lfb[10];
|
||||
char resrved2[206];
|
||||
}mine;
|
||||
|
||||
void Bank_ust(int begin)
|
||||
{
|
||||
if (begin==current_b)
|
||||
return;
|
||||
current_b=begin;
|
||||
begin *= pattern_ust;
|
||||
asm{
|
||||
mov ax,4F05h
|
||||
mov bx,0
|
||||
mov dx,begin
|
||||
push dx
|
||||
int 10h
|
||||
pop dx
|
||||
mov bx,1
|
||||
int 10h
|
||||
};
|
||||
}
|
||||
|
||||
inline int RGBcolour(int red,int green,int blue)
|
||||
{
|
||||
return ((red >> 3)<<10) | ((green >> 3)<<5) | (blue >> 3);
|
||||
}
|
||||
void set_text_mode()
|
||||
{
|
||||
asm mov ax,0x0003
|
||||
asm int 0x10
|
||||
}
|
||||
void draw(int x,int y,int colour)
|
||||
{
|
||||
long ttt;
|
||||
asm{
|
||||
mov dx,y //bank number
|
||||
shr dx,6
|
||||
mov bx,0
|
||||
};
|
||||
mine.fun();
|
||||
ttt = (y*1024%65536)+x;
|
||||
_SI = (unsigned int)ttt;
|
||||
asm{
|
||||
mov ax,colour
|
||||
mov bx,0xA000
|
||||
mov es,bx
|
||||
mov es:[si],al
|
||||
};
|
||||
}
|
||||
|
||||
void paint(int begx,int begy,int endx,int endy,int colour)
|
||||
{
|
||||
int x,y;
|
||||
for(y=begy;y<=endy;y++)
|
||||
for(x=begx;x<=endx;x++)
|
||||
draw(x,y,colour);
|
||||
|
||||
}
|
||||
void main()
|
||||
{
|
||||
int colour,x,y;
|
||||
asm{
|
||||
//information
|
||||
mov cx,MYMODE3
|
||||
lea di,mine
|
||||
mov ax,ds
|
||||
mov es,ax
|
||||
|
||||
mov ax,0x4F01
|
||||
|
||||
int 10h
|
||||
};
|
||||
asm{ //setting of this mode
|
||||
mov ax,4F02h
|
||||
mov bx,MYMODE3
|
||||
int 10h
|
||||
};
|
||||
x=0;
|
||||
y=0;
|
||||
for(colour=1;colour<255;colour++){
|
||||
if(x>1024){
|
||||
x=0;
|
||||
y=y+48;
|
||||
}
|
||||
paint(x,y,x+64,y+48,colour);
|
||||
x=x+64;
|
||||
}
|
||||
getch();
|
||||
set_text_mode();
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1. <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⮭<EFBFBD><E2AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> 2 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 2. <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>.
|
||||
//
|
||||
184
Labv14.cpp
Executable file
184
Labv14.cpp
Executable file
@ -0,0 +1,184 @@
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> 14
|
||||
<20><>ꥤ<EFBFBD><EAA5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><>ࠫ<EFBFBD><E0A0AB><EFBFBD>쭮<EFBFBD><ECADAE> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(<28><>⨬<EFBFBD><E2A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
void NullProc(void){}
|
||||
void ExTime(void (*PP)(void))
|
||||
{
|
||||
long far* pTime = (long*)0x46C; //<2F><><EFBFBD><EFBFBD>稪 ⨪<><E2A8AA>
|
||||
long Time0, Time1, Time2, i;
|
||||
|
||||
void (*NP)(void);
|
||||
NP = NullProc;
|
||||
Time0 = *pTime;
|
||||
for (i = 1; i<1000000L; i++)
|
||||
{
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
NP();
|
||||
}
|
||||
Time1 = *pTime;
|
||||
for (i = 1; i<1000000L; i++)
|
||||
{
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
PP();
|
||||
}
|
||||
Time2 = *pTime;
|
||||
Time2 = (((Time2 - Time1) - (Time1 - Time0))*(6553500L/1193180L));
|
||||
printf("%ld <20><>\n",Time2);
|
||||
}
|
||||
void P1(void) //ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
asm{
|
||||
mov ax,bx
|
||||
mov dx,ax
|
||||
stc
|
||||
adc bx,cx
|
||||
stc
|
||||
sbb dx,ax
|
||||
|
||||
add ax,bx
|
||||
mov cx,ax
|
||||
sub dx,bx
|
||||
mov bx,dx
|
||||
}
|
||||
}
|
||||
void P2(void) //ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>
|
||||
{
|
||||
asm{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
void P3(void) //<2F><>㣨<EFBFBD> <20><><EFBFBD>稭<EFBFBD> <20><>ᯠ७<E1AFA0><E0A5AD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
asm{
|
||||
mov cl,3 //<2F><><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD>
|
||||
inc bx
|
||||
mov cl,3
|
||||
dec bx
|
||||
mov cl,3
|
||||
inc bx
|
||||
mov cl,3
|
||||
dec bx
|
||||
|
||||
inc bx //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᤢ<><E1A4A2><EFBFBD> <20> cl <20> <20><><EFBFBD><EFBFBD><EFBFBD>⢥ <20><><EFBFBD><EFBFBD>稪<EFBFBD>
|
||||
ror ax,cl
|
||||
dec bx
|
||||
rol ax,cl
|
||||
|
||||
inc dx //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>䨪ᠬ<E4A8AA> <20>. <20>. <20> U - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ax,ds:[bx]
|
||||
mov ax,ss:[bx]
|
||||
mov ax,es:[bx]
|
||||
mov ax,cs:[bx]
|
||||
mov cl,3
|
||||
mov cl,3
|
||||
mov cl,3
|
||||
dec dx
|
||||
|
||||
inc dx //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᤢ<><E1A4A2><EFBFBD> <20>. <20>. <20> U - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ror ax,1
|
||||
rol ax,1
|
||||
dec dx
|
||||
}
|
||||
}
|
||||
void P4(void) //<2F><><EFBFBD>稭<EFBFBD> <20><>ᯠ७<E1AFA0><E0A5AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>
|
||||
{
|
||||
asm{
|
||||
|
||||
}
|
||||
}
|
||||
void main(void)
|
||||
{
|
||||
clrscr();
|
||||
printf("Program1 - ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
ExTime(P1);
|
||||
printf("Program2 - ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>\n");
|
||||
ExTime(P2);
|
||||
printf("Program3 - <20><>㣨<EFBFBD> <20><><EFBFBD>稭<EFBFBD> <20><>ᯠ७<E1AFA0><E0A5AD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
ExTime(P3);
|
||||
printf("Program4 - <20><><EFBFBD>稭<EFBFBD> <20><>ᯠ७<E1AFA0><E0A5AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>\n");
|
||||
ExTime(P4);
|
||||
getch();
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1. <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD>稭<EFBFBD> <20><>ᯠ७<E1AFA0><E0A5AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 2. <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>᭨<EFBFBD><E1ADA8> <20>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ࠣ<EFBFBD><E0A0A3><EFBFBD>⮢ <20>ணࠬ<E0AEA3>.
|
||||
//
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Pentium <20><><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
⠪<EFBFBD><EFBFBD>. <20><><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㤮<><E3A4AE><EFBFBD>⢮<EFBFBD><E2A2AE><EFBFBD><EFBFBD> <><E1ABA5><EFBFBD>騬 <20><EFBFBD><E1ABAE><EFBFBD><EFBFBD>:
|
||||
|
||||
-<2D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><>易<EFBFBD><EFA7A0> <20><><EFBFBD><EFBFBD> <<3C><><EFBFBD><EFBFBD><EFBFBD>묨> <20> <20><><EFBFBD>, <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC>⥩ ⨯<> <20>⥭<EFBFBD><E2A5AD>- <20><>-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (read-after-write or write-after-wnte) ,
|
||||
-<2D><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ঠ<EFBFBD><E0A6A0> ᬥ饭<E1ACA5><E9A5AD> (displacement) <20>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD>;
|
||||
-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>䨪ᠬ<E4A8AA> (<28><> <20>᪫<EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> OF <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD> JCC)
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20> U-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>묨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮, <20><><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ப<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> ⠪<>. <20>᪫<EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> <><EFA2AB><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ALU mem, reg <20> ALU reg, mem, <20>ॡ<EFBFBD><E0A5A1>騥 <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> ⠪⮢ <20><><EFBFBD>
|
||||
<EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮮ⢥<E1AEAE><E2A2A5>⢥<EFBFBD><E2A2A5><EFBFBD>. <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD>⢠
|
||||
<EFBFBD>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥
|
||||
楫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᬠ<EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>⢥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ᯠ७<EFBFBD>:
|
||||
-mov reg, reg/mem/imnl
|
||||
-mov mem, reg/imm (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD>) ;
|
||||
-alu reg, reg/mero/imm (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>䬥<EFBFBD><E4ACA5><EFBFBD><EFBFBD>᪨<EFBFBD>
|
||||
- alu meln , reg/ imm <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>権) ;
|
||||
- inc reg/mem (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD>,
|
||||
- dec reg/mem (<28><><EFBFBD>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD>) ;
|
||||
-push reg/mem (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>
|
||||
- pop reg (<28> <20>⥪<EFBFBD><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) ;
|
||||
-lea reg,mem (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧪<EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>) ;
|
||||
-jmp/call/jcc near (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>) ;
|
||||
-n<><6E> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) .
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1ABAE><EFBFBD><EFBFBD> <20> <20><EFBFBD><E1ABAE><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>6쥤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>⢥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ᯠ७<E1AFA0> <20><> <><E1ABA5><EFBFBD>饩 <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD>⥫쭮<E2A5AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SHIFT/ROT <20><> ᤢ<><E1A4A2><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20> SHIFT <20><> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD>쭮<EFBFBD>
|
||||
<EFBFBD><EFBFBD> ࠧ<>冷<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᯠਢ<E1AFA0><E0A8A2><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ( <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>).
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 ᯠਢ<E1AFA0><E0A8A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><>१ ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 䫠<><E4ABA0>, <20><> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC>⥩ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><>
|
||||
⨯<EFBFBD> <20><><EFBFBD><EFBFBD>樠権: RAR - "<22>⥭<EFBFBD><E2A5AD> <20><> <20>⥭<EFBFBD><E2A5AD>", WAR - "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>⥭<EFBFBD><E2A5AD>" <20>
|
||||
WAW - "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", RAW - "<22>⥭<EFBFBD><E2A5AD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>". <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᨬ<EFBFBD><EFBFBD>⥩ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>. RAR, <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,
|
||||
ᮮ⢥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC>⥩, <20><><EFBFBD><E1AAAE><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砥 <20><><EFBFBD>冷<EFBFBD>
|
||||
<EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>. <20><><EFBFBD><EFBFBD>⢨⥫쭮<E2A5AB> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <><EFA2AB><EFBFBD><EFBFBD><EFBFBD>
|
||||
⮫쪮 "<22>⥭<EFBFBD><E2A5AD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" (RAW), ⠪ <20><><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD><E1A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><>譨<EFBFBD> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<EFBFBD>⥭<EFBFBD><EFBFBD>" (WAR) <20> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" (WAW). <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> WAR <20><><EFBFBD>⮨<EFBFBD> <20>
|
||||
⮬, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20> <20>祩<EFBFBD><E7A5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥭<EFBFBD><E2A5AD>. <20><>譨<EFBFBD> <20><><EFBFBD><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD>쪨<EFBFBD> <20><><EFBFBD>稭<EFBFBD><E7A8AD>: <20><> <20><>⨬<EFBFBD><E2A8AC><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><>࠭<EFBFBD>祭<EFBFBD><E7A5AD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢠ ॣ<><E0A5A3><EFBFBD>, <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>稥 <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD>
|
||||
横<EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
*/
|
||||
256
Labv15.cpp
Executable file
256
Labv15.cpp
Executable file
@ -0,0 +1,256 @@
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> ࠡ<><E0A0A1><EFBFBD> 15
|
||||
Saund Blaster
|
||||
FM ᨭ⥧
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1. <20>ந<EFBFBD>ࠩ<EFBFBD><E0A0A9> <20><><EFBFBD><EFBFBD><EFBFBD>, <20>맮<EFBFBD><EBA7AE><EFBFBD><EFBFBD> ᯥ<><E1AFA5><EFBFBD>䥪<EFBFBD><E4A5AA>
|
||||
2. <20><><EFBFBD>ࠩ<EFBFBD><E0A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <dos.h>
|
||||
#include <conio.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
|
||||
#define KEYON 0x20 // key-on bit in regs b0 - b8
|
||||
#define FM 8 // SB (mono) ports (e.g. 228H and 229H)
|
||||
|
||||
unsigned IOport=544; // Sound Blaster port address
|
||||
|
||||
void mydelay(unsigned long clocks)
|
||||
// time = clocks / 2386360
|
||||
{
|
||||
unsigned long elapsed=0;
|
||||
unsigned int last,next,ncopy,diff;
|
||||
|
||||
/* Read the counter value. */
|
||||
outp(0x43,0); /* want to read timer 0 */
|
||||
last=inp(0x40); /* low byte */
|
||||
last=~((inp(0x40)<< 8) + last); /* high byte */
|
||||
|
||||
do {
|
||||
/* Read the counter value. */
|
||||
outp(0x43,0); /* want to read timer 0 */
|
||||
next=inp(0x40); /* low byte */
|
||||
ncopy=next=~((inp(0x40)<< 8) + next); /* high byte */
|
||||
|
||||
next-=last; /* this is now number of elapsed clock pulses since last read */
|
||||
|
||||
elapsed += next; /* add to total elapsed clock pulses */
|
||||
last=ncopy;
|
||||
} while (elapsed<clocks);
|
||||
}
|
||||
|
||||
void FMoutput(unsigned port, int reg, int val)
|
||||
/* This outputs a value to a specified FM register at a specified FM port. */
|
||||
{
|
||||
outp(port, reg);
|
||||
mydelay(8); /* need to wait 3.3 microsec */
|
||||
outp(port+1, val);
|
||||
mydelay(55); /* need to wait 23 microsec */
|
||||
}
|
||||
|
||||
|
||||
|
||||
void fm(int reg, int val)
|
||||
/* This function outputs a value to a specified FM register at the Sound
|
||||
* Blaster (mono) port address.
|
||||
*/
|
||||
{
|
||||
FMoutput(IOport+FM, reg, val);
|
||||
}
|
||||
|
||||
|
||||
void outdsp (unsigned char ch)
|
||||
{
|
||||
while (inportb(0x022C)&0x80);
|
||||
outportb(0x022C,ch);
|
||||
}
|
||||
|
||||
void midimain(void)
|
||||
{
|
||||
int i,val1,val2;
|
||||
|
||||
int block,b,m,f,fn;
|
||||
|
||||
clrscr();
|
||||
|
||||
printf("Program compiled for Sound Blaster 1.0 - 2.0 .\n");
|
||||
|
||||
|
||||
fm(1,0); /* must initialize this to zero */
|
||||
|
||||
fm(0xC0,1); /* parallel connection */
|
||||
|
||||
/***************************************
|
||||
* Set parameters for the carrier cell *
|
||||
***************************************/
|
||||
|
||||
fm(0x23,0x21); /* no amplitude modulation (D7=0), no vibrato (D6=0),
|
||||
* sustained envelope type (D5=1), KSR=0 (D4=0),
|
||||
* frequency multiplier=1 (D4-D0=1)
|
||||
*/
|
||||
|
||||
fm(0x43,0x0); /* no volume decrease with pitch (D7-D6=0),
|
||||
* no attenuation (D5-D0=0)
|
||||
*/
|
||||
|
||||
fm(0x63,0xff); /* fast attack (D7-D4=0xF) and decay (D3-D0=0xF) */
|
||||
fm(0x83,0x05); /* high sustain level (D7-D4=0), slow release rate (D3-D0=5) */
|
||||
|
||||
|
||||
/*****************************************
|
||||
* Set parameters for the modulator cell *
|
||||
*****************************************/
|
||||
|
||||
fm(0x20,0x20); /* sustained envelope type, frequency multiplier=0 */
|
||||
fm(0x40,0x3f); /* maximum attenuation, no volume decrease with pitch */
|
||||
|
||||
/* Since the modulator signal is attenuated as much as possible, these
|
||||
* next two values shouldn't have any effect.
|
||||
*/
|
||||
fm(0x60,0x44); /* slow attack and decay */
|
||||
fm(0x80,0x05); /* high sustain level, slow release rate */
|
||||
|
||||
|
||||
/*************************************************
|
||||
* Generate tone from values looked up in table. *
|
||||
*************************************************/
|
||||
|
||||
printf("440 Hz tone, values looked up in table.\n");
|
||||
fm(0xa0,0x41); /* 440 Hz */
|
||||
fm(0x20,0x40);
|
||||
|
||||
fm(0xb0,0x32); /* 440 Hz, block 0, key on */
|
||||
|
||||
|
||||
|
||||
|
||||
getche();
|
||||
|
||||
fm(0xb0,0x12); /* key off */
|
||||
|
||||
|
||||
/*********************************************************
|
||||
* Generate a range of octaves by changing block number. *
|
||||
*********************************************************/
|
||||
|
||||
printf("Range of frequencies created by changing block number.\n");
|
||||
for (block=0; block<=7; block++) {
|
||||
printf("f=%5ld Hz (press Enter)\n",(long)440*(1 << block)/16);
|
||||
fm(0xB0,((fn >> 8) & 0x3) + (block << 2) | KEYON);
|
||||
getche();
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************
|
||||
* Generate a range of frequencies by changing frequency number. *
|
||||
*****************************************************************/
|
||||
|
||||
printf("Range of frequencies created by changing frequency number.\n");
|
||||
block=4;
|
||||
for (fn=0; fn<1024; fn++) {
|
||||
fm(0xA0,(fn & 0xFF));
|
||||
fm(0xB0,((fn >> 8) & 0x3) + (block << 2) | KEYON);
|
||||
delay(1);
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* Attenuate the signal by 3 dB. *
|
||||
*********************************/
|
||||
|
||||
getche();
|
||||
fm(0xB0,((fn >> 8) & 0x3) + (block << 2) | KEYON);
|
||||
printf("Attenuated by 3 dB.\n");
|
||||
fm(0x43,4); /* attenuate by 3 dB */
|
||||
getche();
|
||||
|
||||
fm(0xB0,((fn >> 8) & 0x3) + (block << 2));
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
unsigned int x;
|
||||
FILE *fp;
|
||||
char buf,key;
|
||||
unsigned long playtime,showtime;
|
||||
unsigned char gstring[80];
|
||||
|
||||
|
||||
int main ( int argc, char *argv[] )
|
||||
{
|
||||
//----------------
|
||||
// Initialize DSP for Voice
|
||||
//-------------
|
||||
outportb(0x0226,0x01);
|
||||
delay(3);
|
||||
outportb(0x0226,0x00);
|
||||
for(x=0;x<100;x++)
|
||||
{
|
||||
if(inportb(0x022E)&0x80)
|
||||
{
|
||||
if(inportb(0x022A)==0xAA) break;
|
||||
}
|
||||
}
|
||||
if(x==100)
|
||||
{
|
||||
printf("Sound Blaster not found at 0220h\n");
|
||||
exit(1);
|
||||
}
|
||||
//------------
|
||||
// Menu
|
||||
//-----------------
|
||||
clrscr();
|
||||
printf("1) Play original\n2) Play reduced\n3) FM Synth\n4) Exit\n");
|
||||
key=getch();
|
||||
if (key=='4') exit(0);
|
||||
if (key=='3') midimain();
|
||||
//------------
|
||||
// Read file & play
|
||||
//-----------------
|
||||
clrscr();
|
||||
printf("Program compiled for Sound Blaster ver. 1.0 (8bit 44100Hz mono).\n\n");
|
||||
if (key=='1') printf("Normal play.\n");
|
||||
if (key=='2') printf("Reduced play.\n");
|
||||
printf("Playing .wav ...\n\n");
|
||||
if(argc==1)
|
||||
{
|
||||
printf(".WAV file not specified\n");
|
||||
exit(1);
|
||||
}
|
||||
strcpy(gstring,argv[1]);
|
||||
strcat(gstring,".WAV");
|
||||
if((fp=fopen(gstring,"rb"))==0)
|
||||
{
|
||||
strcpy(gstring,argv[1]);
|
||||
if((fp=fopen(gstring,"rb"))==0)
|
||||
{
|
||||
printf("Error opening .WAV file [%s]\n",argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
printf("FILE: [%s]\n",gstring);
|
||||
fseek(fp,36L,SEEK_SET);
|
||||
while (inportb(0x022C)&0x80);
|
||||
outdsp(0xD1); //speaker on
|
||||
playtime=0;
|
||||
while (fread(&buf,1,1,fp)!=0)
|
||||
{
|
||||
if(key=='2') fread(&buf,1,1,fp);
|
||||
if(key=='2') mydelay(15);
|
||||
if(key=='2') playtime++;
|
||||
if(key=='2') showtime=playtime/100000;
|
||||
if(key=='2') if (showtime*100000== playtime) printf("Time: %u \r",showtime);
|
||||
outdsp(0x10);
|
||||
outdsp(buf);
|
||||
mydelay(15);
|
||||
playtime++;
|
||||
showtime=playtime/100000;
|
||||
if (showtime*100000== playtime) printf("Time: %u r",showtime);
|
||||
|
||||
}
|
||||
outdsp(0xD3); //speaker off
|
||||
fclose(fp);
|
||||
return 0;
|
||||
};
|
||||
289
Labv2.cpp
Executable file
289
Labv2.cpp
Executable file
@ -0,0 +1,289 @@
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> LAB2
|
||||
// <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD>⥬<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
|
||||
int main (void)
|
||||
{ int aa;
|
||||
|
||||
clrscr();
|
||||
/*
|
||||
********************************************************
|
||||
1 2 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 ࠡ<><E0A0A1><EFBFBD> <> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
||||
1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> JL.
|
||||
JL metka.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD> <20><><EFBFBD><EFBFBD>室 <20><> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<20> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD>饣<EFBFBD> <20>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(<28><><EFBFBD><EFBFBD>室 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD><EFBFBD><EFBFBD>, <20> 䫠<><E4ABA0> SF=0 <20> OF =0)
|
||||
|
||||
asm {
|
||||
cmp ax, 13
|
||||
JL metka
|
||||
..... ; <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
metka:
|
||||
...... ; <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
2. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ROL
|
||||
Rol ax, 1
|
||||
Rol bx, cl
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<><E6A8AA><EFBFBD><EFBFBD><EFBFBD><E1AAAE> ᤢ<><E1A4A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20> <20><><EFBFBD>ன <20><><EFBFBD>࠭<EFBFBD> - CL, <20><> <20><> ࠧ<>冷<EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD><EFBFBD><EFBFBD> ᤢ<><E1A4A2>, <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> CL.
|
||||
|
||||
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LEA.
|
||||
<20><> <20>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ண<EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
||||
<20><>ࢮ<EFBFBD><E0A2AE> <20><><EFBFBD>࠭<EFBFBD><E0A0AD>.
|
||||
lea ax, a;
|
||||
|
||||
4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NOP
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨
|
||||
|
||||
5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AND
|
||||
and ax,bx
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AAAE> 㬭<><E3ACAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD> <20><><EFBFBD> 㬭<><E3ACAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EEADAA><EFBFBD>) <20><> <20><><EFBFBD>ன
|
||||
१<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
/*
|
||||
********************************************************
|
||||
4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><>ப<EFBFBD><E0AEAA>묨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOVS.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>뫪<EFBFBD> <20><>ப<EFBFBD>.
|
||||
<20><><EFBFBD>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>뫪<EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> 䫠<><E4ABA0> DF - 䫠<><E4ABA0> <20><><EFBFBD>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>権 <20> <20><><EFBFBD>⠬<EFBFBD> - MOVSB
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>権 <20><> <><E1ABAE><EFBFBD><EFBFBD> - MOVSW
|
||||
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 䫠<><E4ABA0>.
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>뫠<EFBFBD><EBABA0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><E3A5AC> ॣ<><E0A5A3><EFBFBD> SI - sourse
|
||||
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><E3A5AC> ॣ<><E0A5A3><EFBFBD> DI - destination.
|
||||
|
||||
*/
|
||||
// <20><><EFBFBD><EFBFBD> <20>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <20>ਬ<EFBFBD><E0A8AC> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
int A[10]={2,1,2,3,4,5,6,7,8,9};
|
||||
int B[10]={1,1,0,0,0,0,0,0,0,0};
|
||||
|
||||
asm {
|
||||
cld //<2F><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> 䫠<> <20><><EFBFBD>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
|
||||
lea si,A
|
||||
lea di,B
|
||||
// mov dx,di
|
||||
};
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>ᯥ<EFBFBD><E1AFA5>⠩<EFBFBD><E2A0A9> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>
|
||||
// <20><> <20><>।<EFBFBD><E0A5A4><EFBFBD>
|
||||
// printf ("\n <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD> is, di = %x %x ", _SI, _DI);
|
||||
asm mov cx,1 ; // ????
|
||||
asm movsb ; // ?????
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>ᯥ<EFBFBD><E1AFA5>⠩<EFBFBD><E2A0A9> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>
|
||||
// <20><> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD>諠? <20><><EFBFBD><EFBFBD>쪮 <> <20><>।<EFBFBD><E0A5A4><EFBFBD>?
|
||||
|
||||
printf ("\n <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD> is, di = %x %x ", _SI, _DI);
|
||||
printf ("\n <20>뢮<EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD> <20> <20><> <20><>ப<EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD>");
|
||||
for (int i=0; i<10; i++)
|
||||
{
|
||||
printf (" \n %d ", B[i]);
|
||||
}
|
||||
|
||||
getch();
|
||||
|
||||
//********************************************************
|
||||
// 5 <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD>᪠ <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD>
|
||||
printf (" \n <20><><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD> ");
|
||||
/* asm
|
||||
asm
|
||||
e1: asm {
|
||||
mov ax, 0xb800
|
||||
mov es, ax
|
||||
mov
|
||||
cmp es:[di],al
|
||||
jnz e2 };
|
||||
printf (" \n <20><>諨 ᨬ<><E1A8AC><EFBFBD> ");
|
||||
e2: asm add di, 2
|
||||
asm loop e1
|
||||
printf (" \n <20><> <20><>諨 ᨬ<><E1A8AC><EFBFBD> ");
|
||||
getch();
|
||||
|
||||
*/
|
||||
// return (0);
|
||||
//***************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ******************
|
||||
//
|
||||
// 1 <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 2 <20><><EFBFBD>ᬮ<EFBFBD><E1ACAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> TD. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮<EFBFBD><E2A2AE><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ଠ<EFBFBD><E0ACA0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
/*
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>䨪<EFBFBD> <20><><EFBFBD> <20><><EFBFBD>⡠<EFBFBD><E2A1A0> <20><><EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD>࠭<EFBFBD>
|
||||
<20> <20> <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20> <20> <20>
|
||||
<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ
|
||||
<20> 1 <20>and ax,bx <20> - <20> <20> <20> - <20> - <20>
|
||||
<20> 2 <20>rep and bx,ax<61> <20> <20> <20> <20> <20>
|
||||
<20> 3 <20>add ax,16 <20> - <20> <20> <20> - <20> <20>
|
||||
4 add al,[bx+si]
|
||||
*/
|
||||
|
||||
// 4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><>ப<EFBFBD><E0AEAA>묨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 10 <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD>
|
||||
// 5. <20><><EFBFBD>ࠡ<EFBFBD>⠩<EFBFBD><E2A0A9> <20><><EFBFBD><EFBFBD>-<2D>奬<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <20><><EFBFBD>᪠ ᨬ<><E1A8AC><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD>
|
||||
// 6. <20>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>宯<EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 00FF.
|
||||
// <20><><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LDS BX,PtriA
|
||||
|
||||
/*
|
||||
|
||||
<20>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i8086
|
||||
|
||||
<20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㯭<EFBFBD> <20><><EFBFBD><EFBFBD>ୠ<EFBFBD><E0ADA0><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>-
|
||||
. <20><> 㤮<><E3A4AE><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>㯯<EFBFBD>: 1)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2)<29><>-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 3)ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4)㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD> 䫠<><E4ABA0><EFBFBD><EFBFBD>(<28>ਧ<EFBFBD><E0A8A7>-
|
||||
<EFBFBD><EFBFBD><EFBFBD>).
|
||||
1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>뢠<EFBFBD><EBA2A0> ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD> <20><>饣<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD>). <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20> <20><><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <><E1ABAE> ⠪ <20>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>. <20> <20><><EFBFBD>࠭<EFBFBD> - <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <20>⤥<EFBFBD><E2A4A5><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>
|
||||
ᯥ樠<E1AFA5><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> (<28><>.⠡<>.)
|
||||
2) <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
<20>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> 16-ࠧ<>來<EFBFBD><EFA4AD> <20><><EFBFBD><EFBFBD>ᮢ). <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
⠪<><E2A0AA> ᯥ樠<E1AFA5><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> (<28><>.⠡<>.)
|
||||
3) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> (㪠<>뢠<EFBFBD><EBA2A0> <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD>⮢ - <20><><EFBFBD><EFBFBD>⪮<EFBFBD>
|
||||
<20><> 64 <20> <20><><EFBFBD><EFBFBD> <20> 1<> <20><><EFBFBD>: ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CS, ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20>⥪<EFBFBD> SS <20> <20><><EFBFBD>
|
||||
ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - DS <20> ES extra)
|
||||
4) <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD> 䫠<><E4ABA0><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 ॣ<><E0A5A3><EFBFBD> 8086
|
||||
|
||||
AX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D>뢮<EFBFBD> <>
|
||||
AL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>) <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-<2D>뢮<EFBFBD> <20><><EFBFBD>⮢
|
||||
AH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>) <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢
|
||||
BX <20><><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>, <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (?)
|
||||
CX <20><><EFBFBD><EFBFBD>稪 <09><><EFBFBD><EFBFBD><EFBFBD>樨 <20> 楯<>窠<EFBFBD><E7AAA0>, 横<><E6A8AA>
|
||||
CL <20><><EFBFBD><EFBFBD>稪 (<28><>) <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> ᤢ<><E1A4A2><EFBFBD> <20> <20><><EFBFBD><EFBFBD>樨
|
||||
DX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <>,
|
||||
<09><>ᢥ<EFBFBD><E1A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D>뢮<EFBFBD>
|
||||
SP <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20>⥪<EFBFBD> <09>⥪<EFBFBD><E2A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨
|
||||
BP <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
||||
SI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>筨<EFBFBD><E7ADA8> <09><><EFBFBD><EFBFBD><EFBFBD>樨 <20> 楯<>窠<EFBFBD><E7AAA0>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD>
|
||||
DI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD>樨 <20> 楯<>窠<EFBFBD><E7AAA0>,
|
||||
|
||||
<20>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䫠<><E4ABA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
|
||||
<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>Ĵ
|
||||
OF DF IF TF SF ZF AF PF CF
|
||||
|
||||
CF ( Carry Flag ) - 䫠<> <20><>७<EFBFBD><E0A5AD><EFBFBD>;
|
||||
PF ( Parity Flag ) - 䫠<> <20><>⭮<EFBFBD><E2ADAE><EFBFBD>;
|
||||
AF ( Auxiliary Carry Flag ) - 䫠<> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD>⥫쭮<E2A5AB><ECADAE> <20><>७<EFBFBD><E0A5AD><EFBFBD>;
|
||||
ZF ( Zero Flag ) - 䫠<> <20><><EFBFBD><EFBFBD>;
|
||||
SF ( Sign Flag ) - 䫠<> <20><><EFBFBD><EFBFBD><EFBFBD>;
|
||||
TF ( Trap Flag ) - 䫠<> <20><><EFBFBD><EFBFBD>誨;
|
||||
IF ( Interrupt-Enable Flag ) - 䫠<> ࠧ<><E0A0A7>襭<EFBFBD><E8A5AD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>;
|
||||
DF ( Direction Flag ) - 䫠<> <20><><EFBFBD>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>;
|
||||
OF ( Overflow Flag ) - 䫠<> <20><>९<EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- 5 -
|
||||
|
||||
<20>_<EFBFBD>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>᭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢮) <20>।<EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD> ᮡ<><E1AEA1>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 1<> <20><><EFBFBD><EFBFBD>(<28> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>ய<EFBFBD><E0AEAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
i80286 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>). <20><><EFBFBD> ᬥ<><E1ACA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ࠧ<EFBFBD><E0A0A7><EFBFBD> <><E1ABAE>. <20><><EFBFBD><EFBFBD>ᮬ <><E1ABAE>
|
||||
<EFBFBD><EFBFBD><EFBFBD>⠥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><> 8086 <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD> 16 <20><><EFBFBD>.<><E1ABAE><EFBFBD><EFBFBD>, <20><>稭<EFBFBD><E7A8AD>騬<EFBFBD><E9A8AC><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD> <><E1ABAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 20 <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>-
|
||||
<EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>稭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 16 <20><><EFBFBD>. <20><><EFBFBD> <20><>ନ-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䨧<><E4A8A7><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>堭<EFBFBD><E5A0AD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD>-
|
||||
<EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢮ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20> <20><><EFBFBD><EFBFBD>㯭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>१ 4 "<22><><EFBFBD><EFBFBD>"
|
||||
(ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7> 64 <20> <20><><EFBFBD><EFBFBD>. <20><>砫<EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20> <20><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⠬ <20> <><E1ABAE><EFBFBD> <20> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD>⮢, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> <20>⭮-
|
||||
<EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᥣ<EFBFBD><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<20>_<EFBFBD><5F>騩 <20><>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5><EFBFBD>騩:
|
||||
|
||||
[<5B><><EFBFBD>䨪<EFBFBD>] <20><><EFBFBD> [<5B><><EFBFBD>⡠<EFBFBD><E2A1A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨] [ᬥ饭<E1ACA5><E9A5AD>] [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD>࠭<EFBFBD>]
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1AAAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮<EFBFBD><E2A2AE><EFBFBD><EFBFBD>.
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
||||
<EFBFBD>_<EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><EFBFBD>.. <20><><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD>.
|
||||
<20>)<29><><EFBFBD>䨪<EFBFBD> <20><>७<EFBFBD><E0A5AD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>७<EFBFBD><E0A5AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ந<EFBFBD>室<EFBFBD><E5AEA4> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>.<2E> <20><><EFBFBD>䨪<EFBFBD> <20><>७<EFBFBD><E0A5AD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD>
|
||||
ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20>롨ࠥ<EBA1A8><E0A0A5><EFBFBD> <20><> 㬮<>砭<EFBFBD><E7A0AD>.
|
||||
<20>)<29><><EFBFBD>䨪<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><><EFBFBD><EFBFBD>⢨<EFBFBD> <20><><EFBFBD> <20><>ப<EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>_<EFBFBD><EFBFBD><EFBFBD><EFBFBD>. - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>樨. <20><><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD>. 0-<2D> <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><> <20><> <20><><EFBFBD><EFBFBD>)
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0>, <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <><E1ABAE><EFBFBD> ( =1) <20><><EFBFBD> <20>
|
||||
<20><><EFBFBD>⮬ ( =0). 1-<2D> <20><><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>堤<EFBFBD><E5A0A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<>뢠<EFBFBD><EBA2A0>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20>ਥ<EFBFBD><E0A8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD>_<EFBFBD><EFBFBD><EFBFBD>⡠<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨<EFBFBD>.. <20><><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD>. <20><><EFBFBD>⡠<EFBFBD><E2A1A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0>, <20><><EFBFBD>
|
||||
<20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><> 8086 <20>
|
||||
<20><><EFBFBD>宯<EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD><EFBFBD>筠. <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> (ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD>쭮<EFBFBD>
|
||||
<20>祩<EFBFBD><E7A5A9> <20><><EFBFBD> (<28><><EFBFBD> ᯮᮡ<E1AFAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD>).
|
||||
<20><><EFBFBD>ன <20><><EFBFBD>࠭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20> ⥫<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> (ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>). <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>筨<EFBFBD><E7ADA8><EFBFBD> ⠪ <20> <20>ਥ<EFBFBD><E0A8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20>᪫<EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨: <20><><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
⮫쪮 <20><><EFBFBD><EFBFBD>筨<EFBFBD><E7ADA8><EFBFBD>). <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⡠<EFBFBD><E2A1A0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
||||
7 6 5 4 3 2 1 0
|
||||
! mod ! reg ! r/m !
|
||||
!-----!-----!-----!-----!-----!-----!-----!----!
|
||||
|
||||
<20><><EFBFBD><EFBFBD> mod <20> r/m <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࢮ<EFBFBD><E0A2AE> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> (<28><><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>). <20><><EFBFBD><EFBFBD> reg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>ண<EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20> <20><><EFBFBD>堤<EFBFBD><E5A0A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<09><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD> mod:
|
||||
11 - <20><><EFBFBD>࠭<EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
(<28><><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD><EFBFBD> mod <20><><EFBFBD>࠭<EFBFBD> <20> <20><><EFBFBD>, <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>, <20><>
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD> mod <20> r/m, ᮤ<>ঠ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD>)
|
||||
10 - ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
- 6 -
|
||||
|
||||
01 - ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
00 - ᬥ饭<E1ACA5><E9A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD> reg <20> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD> r/m <20><><EFBFBD> mod=0 (<28>.<2E>. <20><><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <><E1ABA5><EFBFBD>騥:
|
||||
|
||||
reg <20><><EFBFBD> r/m <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
000 AL AX
|
||||
001 CL CX
|
||||
010 DL DX
|
||||
011 BL BX
|
||||
100 AH SP
|
||||
101 CH BP
|
||||
110 DH SI
|
||||
111 BH DI
|
||||
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> mod <20> r/m <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> ᯮᮡ
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5><EFBFBD>騬 <20><>ࠧ<EFBFBD><E0A0A7>:
|
||||
|
||||
r/m mod=00 mod=01 <20><><EFBFBD> 10
|
||||
000 BX+SI BX+SI+ᬥ饭<E1ACA5><E9A5AD>
|
||||
001 BX+DI BX+DI+ᬥ饭<E1ACA5><E9A5AD>
|
||||
010 BP+SI BP+DI+ᬥ饭<E1ACA5><E9A5AD>
|
||||
011 BP+DI BP+DI+ᬥ饭<E1ACA5><E9A5AD>
|
||||
100 SI SI+ᬥ饭<E1ACA5><E9A5AD>
|
||||
101 DI DI+ᬥ饭<E1ACA5><E9A5AD>
|
||||
110 direct BP+ᬥ饭<E1ACA5><E9A5AD>
|
||||
111 BX BX+ᬥ饭<E1ACA5><E9A5AD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD> (<28><><EFBFBD> mod-01) <20><><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD> mod=10).
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD>⢥<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠧ<EFBFBD><E0A0A7>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><> 1 <20><> 7 <20><><EFBFBD>⮢.
|
||||
|
||||
*/
|
||||
};
|
||||
69
Labv3.cpp
Executable file
69
Labv3.cpp
Executable file
@ -0,0 +1,69 @@
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LAB3
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <20><><EFBFBD>ᨢ<EFBFBD> <20> ᯮᮡ<E1AFAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
||||
|
||||
// <20><>४⨢<E0A5AA> <20>९<EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> 䠩<><E4A0A9><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᠭ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨯<EFBFBD> <20>-権
|
||||
// <20> 楫<><E6A5AB> ᮮ<>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ⨯<><E2A8AF> <20>-権 <20> <20><> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD>
|
||||
#include <dos.h>
|
||||
#include <bios.h>
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
// #pragma inline // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
int iB=0x1234;
|
||||
int A[90]={0,1,2,3,4,5,6,7,8,9};
|
||||
|
||||
// <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> - <20>㭪<EFBFBD><E3ADAA><EFBFBD>
|
||||
// void - <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
||||
void main(void)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
int iA=0x5678;
|
||||
clrscr();
|
||||
printf ("\n <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD> \n");
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD>ᨢ <20><> <20><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
for (int i=0; i<10; i++)
|
||||
{
|
||||
// ??????? <20><>⠢<EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
printf (" \n %d ", A[i]);
|
||||
}
|
||||
getch();
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD>ᨢ <20><> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm mov si,0
|
||||
e2:
|
||||
asm {
|
||||
lea bx,A
|
||||
mov cx,10
|
||||
mov ax,0
|
||||
};
|
||||
e1: asm mov [bx],ax // ???? <20>롥<EFBFBD><EBA1A5><EFBFBD><EFBFBD> ᯮᮡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
||||
asm add bx,2
|
||||
asm loop e1
|
||||
// ??? <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ
|
||||
asm add si,10 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 蠣 <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
asm mov ax,100
|
||||
asm cmp ax,si
|
||||
asm ja e2
|
||||
// ??? <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> <20><>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ
|
||||
for (i=0; i<20; i=i+4)
|
||||
{ printf (" \n ");
|
||||
for (int j=0; j<4; j++)
|
||||
{ printf (" "); // ???? <20><>⠢<EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
getch();
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>୮<EFBFBD><E0ADAE> <20><><EFBFBD>ᨢ<EFBFBD> <20><> <20><> <20> <20><><EFBFBD>
|
||||
// <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> <20><> <20><>࠭ <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢ <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
// 2. <20><><EFBFBD>⠩<EFBFBD><E2A0A9> <20><><EFBFBD>ᨢ <20><>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>,
|
||||
// <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> ᯮᮡ<E1AFAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
||||
// - <20><>ᢥ<EFBFBD><E1A2A5><EFBFBD>-ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>᭠<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> ᯮᮡ<E1AFAE><E1AEA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨.
|
||||
// 3. <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD> <20> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>ᯮ<EFBFBD>짮<EFBFBD>. TD
|
||||
// 4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ࠧ<><E0A0A7><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
141
Labv4.cpp
Executable file
141
Labv4.cpp
Executable file
@ -0,0 +1,141 @@
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ୠ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Lab 4
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD>. <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
|
||||
#include<iostream.h>
|
||||
#include<conio.h>
|
||||
#include<stdio.h>
|
||||
|
||||
void main()
|
||||
{
|
||||
long int cl2,cl1,c1,c2;
|
||||
unsigned long int t1,t2,t3;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD> <20><><EFBFBD><EFBFBD>稪<EFBFBD>
|
||||
/* asm{
|
||||
mov ax,00110110B // 00 11 011 0
|
||||
out 43h,ax
|
||||
mov ax,0000000000000000B
|
||||
out 40h,al
|
||||
mov al,ah
|
||||
out 40h,al
|
||||
}
|
||||
*/
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢<EFBFBD><E2AEA2> <20>ணࠬ<E0AEA3><E0A0AC> 1
|
||||
// <20> ⨪<><E2A8AA> (<28> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><> 0-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD><EFBFBD>)
|
||||
// <20><><EFBFBD><EFBFBD>稪 ⨪<><E2A8AA> <20>祩<EFBFBD><E7A5A9> 46<34> - <20><><EFBFBD><EFBFBD>訩 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm{
|
||||
mov ax,0x46
|
||||
mov es,ax
|
||||
mov bx,0xC
|
||||
mov ax,[es:bx]
|
||||
mov cx,[es:(bx+2)]
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>砫쭮<E7A0AB> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD>襥 <20> <20><><EFBFBD><EFBFBD>襥 ???
|
||||
// cl2= ; cl1= ;
|
||||
c1=cl2+cl1*0x10000;
|
||||
|
||||
//<2F><><EFBFBD>⮢<EFBFBD><E2AEA2> <20>ணࠬ<E0AEA3><E0A0AC> 1
|
||||
asm mov cx,1000
|
||||
met1: asm {
|
||||
push cx
|
||||
mov cx,1000
|
||||
}
|
||||
met2: asm {
|
||||
loop met2
|
||||
pop cx
|
||||
loop met1
|
||||
}
|
||||
|
||||
//
|
||||
asm{
|
||||
mov ax,0x46
|
||||
mov es,ax
|
||||
mov bx,0xC
|
||||
mov ax,[es:bx]
|
||||
mov cx,[es:(bx+2)]
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>筮<EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> ???
|
||||
// cl2=_AX; cl1= ;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 楫<><E6A5AB> -
|
||||
c2=cl2+cl1*0x10000;
|
||||
|
||||
// clrscr();
|
||||
// printf("\n<><6E>ࢮ<EFBFBD> - %d\n",c1);
|
||||
// printf("<22><><EFBFBD> - %d\n",c2);
|
||||
cout<<"\n<EFBFBD>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢<EFBFBD><E2AEA2> <20>ணࠬ<E0AEA3><E0A0AC> 1\n";
|
||||
cout<<"COUNTs: "<<c2-c1<<"\n";
|
||||
printf("\n <20><><EFBFBD><EFBFBD>쪮 <20><><EFBFBD><EFBFBD><EFBFBD>ᥪ㭤 ??");
|
||||
getch();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20>६<EFBFBD><E0A5AC><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢<EFBFBD><E2AEA2> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
// <20><> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> 43h - <20><><EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9>
|
||||
// <20><><EFBFBD><EFBFBD> 40h - <20><><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD><EFBFBD>
|
||||
|
||||
asm{
|
||||
mov ax,00000110B // 00 00 011 0
|
||||
out 43h,ax // <20><>⠥<EFBFBD> <20><><EFBFBD><EFBFBD>訩, <20><>⮬ <20><><EFBFBD><EFBFBD>訩
|
||||
in al,40h
|
||||
// mov bl,al
|
||||
in al,40h
|
||||
// mov ah,al
|
||||
// mov al,bl
|
||||
}
|
||||
t1=_AX;
|
||||
|
||||
|
||||
//<2F><><EFBFBD>⮢<EFBFBD><E2AEA2> <20>ணࠬ<E0AEA3><E0A0AC> 2
|
||||
asm mov cx,1
|
||||
met11: asm {
|
||||
push cx
|
||||
mov cx,1000
|
||||
}
|
||||
met22: asm {
|
||||
loop met22
|
||||
pop cx
|
||||
loop met11
|
||||
}
|
||||
|
||||
asm{
|
||||
mov ax,00000110B // 00 00 011 0
|
||||
out 43h,ax // <20><>⠥<EFBFBD> <20><><EFBFBD><EFBFBD>訩, <20><>⮬ <20><><EFBFBD><EFBFBD>訩
|
||||
in al,40h
|
||||
// mov bl,al
|
||||
in al,40h
|
||||
// mov ah,al
|
||||
// mov al,bl
|
||||
}
|
||||
t2=_AX;
|
||||
t3=t1; // ????
|
||||
|
||||
clrscr();
|
||||
printf("\n<EFBFBD><EFBFBD>ࢮ<EFBFBD> - %d \n",t1);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD> - %d\n",t2);
|
||||
cout<<"\n<EFBFBD>६<EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮢<EFBFBD><E2AEA2> <20>ணࠬ<E0AEA3><E0A0AC> 2\n";
|
||||
printf("%x\n",t3);
|
||||
cout<<"CLOCKs: "<<t3<<"\n";
|
||||
printf("\n <20><><EFBFBD><EFBFBD>쪮 <20><><EFBFBD><EFBFBD><EFBFBD>ᥪ㭤 ??");
|
||||
getch();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1 <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD><E0A5AC><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD>⮢<EFBFBD><E2AEA2> <20>ணࠬ<E0AEA3> 1 <20> 2
|
||||
// 2 <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD> ࠡ <20>ண1 <20><><EFBFBD><EFBFBD><EFBFBD> <20><>筮
|
||||
// 3 <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﬨ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
//<2F><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>ਧ<EFBFBD><E0A8A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>⠩<EFBFBD><E2A0A9> <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD> <20>ࠩ<EFBFBD><E0A0A9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC> Asmous.cpp.
|
||||
|
||||
void ReadMouse ()
|
||||
{
|
||||
asm mov ax, 0x3
|
||||
asm int 0x33
|
||||
asm mov MouseB, bx
|
||||
asm mov MouseX, cx
|
||||
asm mov MouseY, dx
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
68
Labv8.cpp
Executable file
68
Labv8.cpp
Executable file
@ -0,0 +1,68 @@
|
||||
/* Labv8: Ass, and Ci functions
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥬<EFBFBD><E2A5AC>
|
||||
<20><><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2> ०<><E0A5A6>
|
||||
*/
|
||||
|
||||
#include <dos.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <conio.h>
|
||||
|
||||
|
||||
#include <iostream.h>
|
||||
|
||||
void page(char a) // <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> <20><>ᯫ<EFBFBD><E1AFAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.
|
||||
{
|
||||
asm {
|
||||
mov ah,0x05
|
||||
mov al,a
|
||||
int 0x10
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>०<EFBFBD><E0A5A6><EFBFBD>
|
||||
asm{
|
||||
mov al,02h
|
||||
mov ah,00h
|
||||
int 10h
|
||||
} page(0);
|
||||
clrscr();
|
||||
// <20>뢮<EFBFBD> ⥪<><E2A5AA><EFBFBD> <20>।<EFBFBD>⢠<EFBFBD><E2A2A0> <20><>
|
||||
for(char n = 1; n <= 100; n++)
|
||||
// -- <20><><EFBFBD><EFBFBD><EFBFBD> ᠬ <20>뢮<EFBFBD> -
|
||||
|
||||
// <20>뮤 ⥪<><E2A5AA><EFBFBD> <20> ०<><E0A5A6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD><E0A5A4><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
page(0);
|
||||
asm mov cx,1000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
asm mov di,0 // <20><><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
e1: asm { add di, 2
|
||||
mov ax, 0xb800 // <20><>।<EFBFBD><E0A5A4>塞 <20><>砫<EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov es, ax
|
||||
mov al, cl
|
||||
mov es: [di],al // <20><><EFBFBD><EFBFBD><EFBFBD>뫠<EFBFBD><EBABA0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov al, 4
|
||||
mov es: [di+1],al // <20><><EFBFBD><EFBFBD><EFBFBD>뫠<EFBFBD><EBABA0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ன <20><><EFBFBD><EFBFBD>
|
||||
};
|
||||
asm loop e1
|
||||
|
||||
getch();
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 1 <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> ⥪<><E2A5AA> <20> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD> <20><>.
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮬ <20> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.
|
||||
// <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20>६<EFBFBD> <20>뢮<EFBFBD><EBA2AE> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> ⥪<>⮢<EFBFBD><E2AEA2> <20><>ᯫ<EFBFBD><E1AFAB><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>.(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD> <20>뢮<EFBFBD><EBA2AE> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><>砫<EFBFBD> <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ᯫ<EFBFBD><E1AFAB><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>)
|
||||
// 3 <20>뢥<EFBFBD><EBA2A5><EFBFBD><EFBFBD> ⥪<><E2A5AA> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
|
||||
// 4 <20>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><>࠭<EFBFBD><E0A0AD>
|
||||
/* while (bioskey(1) == 0)
|
||||
{
|
||||
page(0); delay(1000);
|
||||
|
||||
} */
|
||||
return;
|
||||
}
|
||||
166
MTASK.CPP
Executable file
166
MTASK.CPP
Executable file
@ -0,0 +1,166 @@
|
||||
#include <stdio.h>
|
||||
#include <dos.h>
|
||||
#include <mem.h>
|
||||
#include <conio.h>
|
||||
|
||||
struct ProcStats //struktura soderjashaya kontext zadachi
|
||||
{
|
||||
unsigned int rax, rbx, rcx, rdx; // 0 2 4 6
|
||||
unsigned int rsi, rdi, rbp, rsp; // 8 10 12 14
|
||||
unsigned int rcs, rds, res, rss; //16 18 20 22
|
||||
unsigned int rip, rflags, a, b; //24 26 28 30
|
||||
} Stats[3]; //massiv iz treh takih struktur
|
||||
|
||||
unsigned int current_proc; //nomer tekushey zadachi
|
||||
unsigned int stats_offset; //adres konteksta zadachi
|
||||
void interrupt (*oldHandler)(...); //ukazatel na staryi obrabotchik preryvaniya
|
||||
|
||||
void interrupt IntHandler(...) //svoy obrabotchik
|
||||
{
|
||||
asm {
|
||||
mov si, [current_proc]; //nomer procedury
|
||||
mov cl, 5 //umnojaem nar 32 (razmer struktury)
|
||||
shl si, cl
|
||||
//mov ax, offset Stats
|
||||
mov ax, [stats_offset] //pribavlyaem adres nachala massiva struktur
|
||||
add si, ax //poluchaem adres nujnogo konteksta
|
||||
pop ax //zapisyvaem v nego registry
|
||||
mov [si+12], ax //bp
|
||||
pop ax
|
||||
mov [si+10], ax //di
|
||||
pop ax
|
||||
mov [si+ 8], ax //si
|
||||
pop ax
|
||||
mov [si+18], ax //ds
|
||||
pop ax
|
||||
mov [si+20], ax //es
|
||||
pop ax
|
||||
mov [si+ 6], ax //dx
|
||||
pop ax
|
||||
mov [si+ 4], ax //cx
|
||||
pop ax
|
||||
mov [si+ 2], ax //bx
|
||||
pop ax
|
||||
mov [si+ 0], ax //ax
|
||||
pop ax
|
||||
mov [si+24], ax //ip
|
||||
pop ax
|
||||
mov [si+16], ax //cs
|
||||
pop ax
|
||||
mov [si+26], ax //flags
|
||||
mov ax, sp
|
||||
mov [si+14], ax //sp
|
||||
mov ax, ss
|
||||
mov [si+22], ax //ss
|
||||
|
||||
mov ax, [current_proc] //perehodim k sleduyushey zadache
|
||||
inc ax
|
||||
cmp ax, 3
|
||||
jb label1
|
||||
mov ax, 0
|
||||
}
|
||||
label1:
|
||||
asm {
|
||||
mov [current_proc], ax //vychislyaem adres eyo konteksta
|
||||
mov si, ax
|
||||
mov cl, 5
|
||||
shl si, cl
|
||||
//mov ax, offset Stats
|
||||
mov ax, [stats_offset]
|
||||
add si, ax //zagrujaem registry
|
||||
mov ax, [si+22] //ss
|
||||
mov ss, ax
|
||||
mov ax, [si+14] //sp
|
||||
mov sp, ax
|
||||
mov ax, [si+26] //flags
|
||||
push ax
|
||||
mov ax, [si+16] //cs
|
||||
push ax
|
||||
mov ax, [si+24] //ip
|
||||
push ax
|
||||
mov ax, [si+ 0] //ax
|
||||
push ax
|
||||
mov ax, [si+ 2] //bx
|
||||
push ax
|
||||
mov ax, [si+ 4] //cx
|
||||
push ax
|
||||
mov ax, [si+ 6] //dx
|
||||
push ax
|
||||
mov ax, [si+20] //es
|
||||
push ax
|
||||
mov ax, [si+18] //ds
|
||||
push ax
|
||||
mov ax, [si+ 8] //si
|
||||
push ax
|
||||
mov ax, [si+10] //di
|
||||
push ax
|
||||
mov ax, [si+12] //bp
|
||||
push ax
|
||||
}
|
||||
oldHandler(); //vyzyvaem staryi obrabotchik
|
||||
}
|
||||
|
||||
void Proc1(void);
|
||||
void Proc2(void);
|
||||
void Proc3(void);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
unsigned int i, rd, rc, re, rs, ri0, ri1, ri2, f;
|
||||
|
||||
for(i=0;i<3;i++)
|
||||
memset(&Stats[i],0,sizeof(ProcStats));
|
||||
asm { //zapisyvaem registry vo vremennye peremennye
|
||||
mov ax, cs
|
||||
mov [rc], ax
|
||||
mov ax, ds
|
||||
mov [rd], ax
|
||||
mov ax, es
|
||||
mov [re], ax
|
||||
mov ax, ss
|
||||
mov [rs], ax
|
||||
mov [ri0], offset Proc1 //adresa nachala procedur
|
||||
mov [ri1], offset Proc2
|
||||
mov [ri2], offset Proc3
|
||||
pushf
|
||||
pop ax
|
||||
mov [f], ax
|
||||
}
|
||||
for(i=0;i<3;i++) //zapisyvaem znacheniya segmentnyh registrov,
|
||||
{ //flagov
|
||||
Stats[i].rcs = rc; //i adresa nacha procedur
|
||||
Stats[i].rds = rd; //v sootvetstvuyushye konteksty
|
||||
Stats[i].res = re;
|
||||
Stats[i].rss = rs;
|
||||
Stats[i].rflags = f;
|
||||
}
|
||||
Stats[0].rip = ri0;
|
||||
Stats[1].rip = ri1;
|
||||
Stats[2].rip = ri2;
|
||||
current_proc = 0; //tekushaya procedura - pervaya
|
||||
stats_offset = (unsigned)&Stats; //adres nachala massiva
|
||||
oldHandler = getvect(0x9); //perekluchaemsya po najatiyu klavishy
|
||||
setvect(0x9,IntHandler);
|
||||
Proc1();
|
||||
setvect(0x9,oldHandler);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Proc1(void)
|
||||
{
|
||||
while(1)
|
||||
printf("Proc1 is working %d\n",current_proc);
|
||||
}
|
||||
|
||||
void Proc2(void)
|
||||
{
|
||||
while(1)
|
||||
printf("Proc2 is working %d\n",current_proc);
|
||||
}
|
||||
|
||||
void Proc3(void)
|
||||
{
|
||||
while(1)
|
||||
printf("Proc3 is working %d\n",current_proc);
|
||||
}
|
||||
BIN
Protect/PM_INT8.9/DPMI16BI.OVL
Executable file
BIN
Protect/PM_INT8.9/DPMI16BI.OVL
Executable file
Binary file not shown.
BIN
Protect/PM_INT8.9/DPMILOAD.EXE
Executable file
BIN
Protect/PM_INT8.9/DPMILOAD.EXE
Executable file
Binary file not shown.
BIN
Protect/PM_INT8.9/DPMIMEM.DLL
Executable file
BIN
Protect/PM_INT8.9/DPMIMEM.DLL
Executable file
Binary file not shown.
23
Protect/PM_INT8.9/ERRMSG
Executable file
23
Protect/PM_INT8.9/ERRMSG
Executable file
@ -0,0 +1,23 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> Protected Mode
|
||||
<EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> 䠩<> pm.asm
|
||||
___________________
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> obj 䠩<><E4A0A9>...
|
||||
tasm /m2 pm.asm
|
||||
Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International
|
||||
|
||||
Assembling file: pm.asm
|
||||
Error messages: None
|
||||
Warning messages: None
|
||||
Passes: 2
|
||||
Remaining memory: 411k
|
||||
|
||||
obj 䠩<> <20>ᯥ譮 ᮧ<><E1AEA7><EFBFBD>
|
||||
___________________
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뢮<EFBFBD><EBA2AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭ (ECHO): <20>⪫
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> exe 䠩<><E4A0A9>...
|
||||
tlink /x /3 pm.obj
|
||||
Turbo Link Version 5.1 Copyright (c) 1992 Borland International
|
||||
exe 䠩<> <20>ᯥ譮 ᮧ<><E1AEA7><EFBFBD>
|
||||
___________________
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>諠 <20>ᯥ譮
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> pm.exe
|
||||
2
Protect/PM_INT8.9/MK.BAT
Executable file
2
Protect/PM_INT8.9/MK.BAT
Executable file
@ -0,0 +1,2 @@
|
||||
@del errmsg
|
||||
@mk2.bat %1 errmsg
|
||||
43
Protect/PM_INT8.9/MK2.BAT
Executable file
43
Protect/PM_INT8.9/MK2.BAT
Executable file
@ -0,0 +1,43 @@
|
||||
@ECHO OFF
|
||||
ECHO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> Protected Mode >> %2
|
||||
ECHO <20>室<EFBFBD><E5AEA4><EFBFBD> 䠩<> %1.asm >> %2
|
||||
ECHO ___________________ >> %2
|
||||
|
||||
ECHO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> obj 䠩<><E4A0A9>... >> %2
|
||||
ECHO tasm /m2 %1.asm >> %2
|
||||
tasm /m2 %1.asm >> %2 >> %2
|
||||
if errorlevel = 1 goto asmerror
|
||||
ECHO obj 䠩<> <20>ᯥ譮 ᮧ<><E1AEA7><EFBFBD> >> %2
|
||||
ECHO ___________________ >> %2
|
||||
ECHO >> %2
|
||||
ECHO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> exe 䠩<><E4A0A9>... >> %2
|
||||
ECHO tlink /x /3 %1.obj >> %2
|
||||
tlink /x /3 %1.obj >> %2
|
||||
if errorlevel = 1 goto exeerror
|
||||
ECHO exe 䠩<> <20>ᯥ譮 ᮧ<><E1AEA7><EFBFBD> >> %2
|
||||
goto okend
|
||||
|
||||
:exeerror
|
||||
ECHO ___________________ >> %2
|
||||
ECHO <20>訡<EFBFBD><E8A8A1> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> exe 䠩<><E4A0A9>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> >> %2
|
||||
ECHO %1.obj ᮧ<><E1AEA7><EFBFBD> <20> <20>訡<EFBFBD><E8A8A1><EFBFBD><EFBFBD> >> %2
|
||||
goto errorend
|
||||
|
||||
:asmerror
|
||||
ECHO <20>訡<EFBFBD><E8A8A1> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> obj 䠩<><E4A0A9>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 䠩<><E4A0A9> >> %2
|
||||
ECHO %1.asm <20><><EFBFBD><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5> <20>訡<EFBFBD><E8A8A1> >> %2
|
||||
goto errorend
|
||||
|
||||
:errorend
|
||||
ECHO ___________________ >> %2
|
||||
ECHO <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5> <20>訡<EFBFBD><E8A8A1>, >> %2
|
||||
ECHO ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0><EFBFBD><EFBFBD><EFBFBD>(exe) 䠩<><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. >> %2
|
||||
goto end
|
||||
|
||||
:okend
|
||||
ECHO ___________________ >> %2
|
||||
ECHO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>諠 <20>ᯥ譮 >> %2
|
||||
ECHO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> %1.exe >> %2
|
||||
|
||||
:end
|
||||
@type %2
|
||||
1
Protect/PM_INT8.9/MKPM.BAT
Executable file
1
Protect/PM_INT8.9/MKPM.BAT
Executable file
@ -0,0 +1 @@
|
||||
@mk.bat pm
|
||||
BIN
Protect/PM_INT8.9/NOSOUND.EXE
Executable file
BIN
Protect/PM_INT8.9/NOSOUND.EXE
Executable file
Binary file not shown.
446
Protect/PM_INT8.9/PM.ASM
Executable file
446
Protect/PM_INT8.9/PM.ASM
Executable file
@ -0,0 +1,446 @@
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>㤥<EFBFBD><E3A4A5><EFBFBD> <20><>㯯<EFBFBD> 2084/3
|
||||
; <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><>⮭<EFBFBD>
|
||||
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
; <20>ணࠬ<E0AEA3><E0A0AC>, <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室 <20> Protrcted Mode,
|
||||
; <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD>墠<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><> 32-<2D> <20><>⭮<EFBFBD><E2ADAE> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
so equ small offset
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD>. <20><> <20>室<EFBFBD> - <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD> (<28> <20><><EFBFBD>).
|
||||
delay macro time
|
||||
local ext,iter
|
||||
push ecx
|
||||
mov ecx,time
|
||||
ext: push ecx
|
||||
mov cx,5000 ;<3B><><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>室<EFBFBD> <20><> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
iter: loop iter
|
||||
pop ecx
|
||||
loop ext
|
||||
pop ecx
|
||||
endm
|
||||
|
||||
.386p
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Real Mode, 16 <20><><EFBFBD>
|
||||
RM_seg segment para public "CODE" use16
|
||||
assume cs: RM_seg, ds: PM_seg, ss: Stack_seg
|
||||
start:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭
|
||||
mov ax, 3
|
||||
int 10h
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push PM_seg
|
||||
pop ds
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6> (PM <20><><EFBFBD> <20><><EFBFBD>)
|
||||
mov eax, cr0
|
||||
test al, 1
|
||||
jz no_V86
|
||||
; <20> 㦥 <20> PM - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20>訡<EFBFBD><E8A8A1> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so v86_msg
|
||||
err_exit:
|
||||
mov ah, 9
|
||||
int 21h
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> Windows
|
||||
no_V86:
|
||||
mov ax, 1600h
|
||||
int 2Fh
|
||||
test al, al
|
||||
jz no_Windows
|
||||
; <20> <20><><EFBFBD> Wondows - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so win_msg
|
||||
jmp short err_exit
|
||||
; *****************************************
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>浪<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
no_Windows:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> ᥣ<><E1A5A3><EFBFBD>⮢
|
||||
xor eax, eax
|
||||
mov ax, RM_seg ; <20><><EFBFBD><EFBFBD><EFBFBD> 16bitCS <20>㤥<EFBFBD> RM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_16bitCS+2, ax ; <20><><EFBFBD><EFBFBD> 15-0
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_16bitCS+4, al ; <20><><EFBFBD><EFBFBD> 23-16
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_32bitCS+2, ax ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32bit* <20>㤥<EFBFBD>
|
||||
mov word ptr GDT_32bitSS+2, ax ; PM_seg
|
||||
mov word ptr GDT_32bitDS+2, ax
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_32bitCS+4, al
|
||||
mov byte ptr GDT_32bitSS+4, al
|
||||
mov byte ptr GDT_32bitDS+4, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
xor eax, eax
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
push eax
|
||||
add eax, offset GDT
|
||||
mov dword ptr gdtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> GDT
|
||||
lgdt fword ptr gdtr
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> IDT
|
||||
pop eax
|
||||
add eax, offset IDT
|
||||
mov dword ptr idtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDT
|
||||
lidt fword ptr idtr
|
||||
; <20>.<2E>. ᮡ<>ࠥ<EFBFBD><E0A0A5><EFBFBD> ࠡ<><E0A0A1><EFBFBD><EFBFBD><EFBFBD> <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A20
|
||||
in al, 70h
|
||||
or al, 2
|
||||
out 92h, al
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
cli
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪨<EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> (NMI)
|
||||
in al, 70h
|
||||
or al, 80h
|
||||
out 70h, al
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
mov eax, cr0
|
||||
or al, 1
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> SEL_32bitCS <20> CS
|
||||
db 66h ; <20><><EFBFBD>䨪<EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<>來<EFBFBD><EFA4AD><EFBFBD><EFBFBD>
|
||||
db 0EAh ; <20><><EFBFBD>쭨<EFBFBD> <20><><EFBFBD><EFBFBD>室
|
||||
dd offset PM_entry
|
||||
dw Sel_32bitCS
|
||||
RM_return:
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> Real Mode
|
||||
mov eax, cr0
|
||||
and al, 0FEh
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>।<EFBFBD> <20> <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> CS ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
db 0EAh
|
||||
dw $+4
|
||||
dw RM_seg
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, Stack_seg
|
||||
mov bx, stack_l
|
||||
mov ss, ax
|
||||
mov sp, bx
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDTR <20><><EFBFBD> RM
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
lidt fword ptr idtr_real
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NMI
|
||||
in al, 70h
|
||||
and al, 07Fh
|
||||
out 70h, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
RM_seg ends
|
||||
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD>
|
||||
PM_seg segment para "CODE" use32
|
||||
assume cs: PM_seg
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GDT <20> IDT <20>.<2E>. <20><><EFBFBD><E0AEA2><EFBFBD><EFBFBD>, <20><><EFBFBD>⮬<EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>砫<EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
GDT label byte
|
||||
db 8 dup(0)
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> =0
|
||||
GTD_flatDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 16-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 64-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> RM_seg
|
||||
GDT_16bitCS db 0FFh,0FFh,0,0,0,10011010b,0,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitCS db 0FFh,0FFh,0,0,0,10011010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> Stack_seg
|
||||
GDT_32bitSS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
gdt_size = $-GDT
|
||||
gdtr dw gdt_size-1 ; <20>।<EFBFBD><E0A5A4> GDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥫ<><E1A5AB><EFBFBD><EFBFBD>
|
||||
SEL_flatDS equ 001000b
|
||||
SEL_16bitCS equ 010000b
|
||||
SEL_32bitCS equ 011000b
|
||||
SEL_32bitDS equ 100000b
|
||||
SEL_32bitSS equ 101000b
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IDT
|
||||
IDT label byte
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯ 0Eh - 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
; INT 00-07
|
||||
dw 8 dup(so int_handler, SEL_32bitCS, 8E00h,0)
|
||||
; INT 08(irq0)
|
||||
; dw so irq0_7_handler,SEL_32bitCS,8E00h,0
|
||||
dw so timer_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 09(irq1)
|
||||
dw so irq1_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 0Ah-0Fh (IRQ2-IRQ8)
|
||||
dw 6 dup(so irq0_7_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 10h-6Fh
|
||||
dw 97 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 70h-78h (IRQ8-IRQ15)
|
||||
dw 8 dup(so irq8_15_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 79h-FFh
|
||||
dw 135 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
idt_size = $-IDT
|
||||
idtr dw idt_size-1 ; <20>।<EFBFBD><E0A5A4> IDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>砫<EFBFBD> IDT
|
||||
; <20><><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> IDTR <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
idtr_real dw 3FFh,0,0
|
||||
|
||||
; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20><> <20>訡<EFBFBD><E8A8A1><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
v86_msg db "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ०<><E0A5A6><EFBFBD> v86 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PM$"
|
||||
win_msg db "<22>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD> <20><> <20><><EFBFBD> Windows$"
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD> OE ᪠<>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20> ASCII
|
||||
scan2ascii db 0,1Bh,'1','2','3','4','5','6','7','8','9','0','-','=',8
|
||||
db 0,'Q','W','E','R','T','Y','U','I','O','P','[',']',0
|
||||
DB 0,'A','S','D','F','G','H','J','K','L',';',27h,'`',0 ; LShift
|
||||
db '\','Z','X','C','V','B','N','M',',','.','/',0 ; RShift
|
||||
db '0','0',' ' ; SP
|
||||
screen_addr dd 0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||||
N dd 64 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>ᨢ<EFBFBD> MUS
|
||||
NM dd 1 ; <20><><EFBFBD><EFBFBD>稪 <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
; <20><><EFBFBD>ᨢ <20><><EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>: 1-<2D> <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2-<2D> - <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
MUS dw 1218,10, 767,10, 813,10, 912,10, 966,10, 912,30
|
||||
dw 1218,10, 609,10, 678,10, 767,10, 813,10, 767,30
|
||||
dw 912,10, 574,15, 609,5, 678,15, 767,5, 813,5
|
||||
dw 767,5, 678,20, 574,10, 609,10, 678,10, 767,10
|
||||
dw 678,10, 813,30, 1218,10, 767,10, 813,10, 912,10
|
||||
dw 966,10, 912,30, 1218,10, 609,10, 678,10, 767,10
|
||||
dw 813,10, 767,30, 912,10, 574,15, 609,5, 678,15
|
||||
dw 767,5, 813,5, 767,5, 678,20, 574,10, 609,10
|
||||
dw 678,10, 767,10, 678,10, 813,30, 0,2, 609,10
|
||||
dw 609,10, 912,10, 724,10, 609,10, 609,5, 678,5
|
||||
dw 724,5, 678,5, 574,15, 678,5, 678,10, 1024,10
|
||||
dw 813,10, 678,10, 678,5, 767,5, 813,5, 724,5
|
||||
dw 609,20, 678,5, 609,5, 574,5, 456,5, 342,5
|
||||
dw 384,5, 406,5, 456,5, 456,20, 483,20, 678,5
|
||||
dw 609,5, 574,5, 456,5, 342,5, 384,5, 406,5
|
||||
dw 456,5, 456,10, 483,10, 456,20, 0,2, 456,5
|
||||
dw 456,10, 483,10, 456,20, 0,30
|
||||
;MC = ($-MUS)/4; Music Count - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD>
|
||||
MC = 100
|
||||
|
||||
; <20><>窠 <20>室<EFBFBD> <20> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
PM_entry:
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪ <20> <20><>㣨<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ax, SEL_flatDS
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, SEL_32bitSS
|
||||
mov ebx, stack_l
|
||||
mov ss, ax
|
||||
mov esp, ebx
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<>
|
||||
jmp short $
|
||||
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;! <20><>ࠡ<EFBFBD><E0A0A1>稪<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> !
|
||||
;! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>४<EFBFBD><E0A5AA><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0> <20>訡<EFBFBD><E8A8A1> !
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD>筮<EFBFBD><E7ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
int_handler:
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ0-IRQ7
|
||||
irq0_7_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
pop eax
|
||||
iretd
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> ⠩<><E2A0A9><EFBFBD><EFBFBD> (int8) !
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
timer_handler:
|
||||
; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax
|
||||
push ebx
|
||||
push es
|
||||
push ds
|
||||
|
||||
mov bx, SEL_32bitDS ; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ds, bx
|
||||
|
||||
dec NM ; <20><><EFBFBD><EFBFBD>饥 <20>६<EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
mov eax, NM ; <20> <20><> <20><>⥪<EFBFBD><E2A5AA>,
|
||||
cmp eax, 0
|
||||
jnz contin_mus ; <20><> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20>몫<EFBFBD><EBAAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
and al, 0FCh
|
||||
out 61h, al
|
||||
delay 1 ; <20><>㧠
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
inc N ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>.
|
||||
mov eax, N ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ebx, 4 ; ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mul ebx ; <20><><EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD>, <20>⭮<EFBFBD><E2ADAE>⥫쭮 <20><>砫<EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
add eax, offset MUS ; <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>
|
||||
; xor eax, eax
|
||||
mov ax, [eax] ; <20> AX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
mov ebx, eax ; <20><><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2>
|
||||
shr ebx, 8 ; <20><>ࠬ<EFBFBD><E0A0AC> <20><><EFBFBD>
|
||||
and ax, 00FFh ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax
|
||||
mov ax, 0B6h ; \
|
||||
out 43h, ax ; _\outportb(0x43, 0xB6)
|
||||
pop eax ; EAX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & 0x00FF
|
||||
out 42h, ax
|
||||
xchg ax, bx ; ax = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >> 8
|
||||
out 42h, ax
|
||||
in al, 61h
|
||||
or al, 03h
|
||||
out 61h, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
pop ebx ; EBX = <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<>饩 <20><><EFBFBD><EFBFBD>
|
||||
xor eax, eax
|
||||
mov ax, word ptr [ebx+2] ; EAX = <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
mov NM, eax
|
||||
|
||||
cmp N, MC ; <20> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
jb contin_mus ; <20><> <20><>祣<EFBFBD>,
|
||||
mov N, 0 ; <20><><EFBFBD><EFBFBD><EFBFBD> - <20> <20><>砫<EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
|
||||
contin_mus:
|
||||
; mov NM, eax ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ⥪<>饥 <20>६<EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
pop ds
|
||||
pop es
|
||||
pop ebx
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ8-IRQ15
|
||||
irq8_15_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 0A1h, al
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 IRQ1 - <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
irq1_handler:
|
||||
push eax ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> -
|
||||
push ebx ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push edx
|
||||
push es
|
||||
push ds
|
||||
in al, 60h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠<>-<2D><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; cmp al, 0Eh ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 祬 <20><><EFBFBD><EFBFBD>㦨<EFBFBD><E3A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cmp al, 39h ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 祬 <20><><EFBFBD><EFBFBD>㦨<EFBFBD><E3A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ja skip_translate ; <20><><EFBFBD><EFBFBD>, - <20><> <20><>ࠡ<EFBFBD><E0A0A1>뢠<EFBFBD><EBA2A0>
|
||||
cmp al, 1 ; <20> <20><><EFBFBD> ESC,
|
||||
je esc_pressed ; <20><><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
mov bx, SEL_32bitDS ; <20><><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mov ds, bx ; DS:EBX - ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD>
|
||||
mov ebx, offset scan2ascii ; ᪠<>-<2D><><EFBFBD><EFBFBD> <20> ASCII
|
||||
xlatb ; <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov bx, SEL_flatDS
|
||||
mov es, bx ; ES:EBX - <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<>饩
|
||||
mov ebx, screen_addr ; <20><><EFBFBD><EFBFBD>樨 <20><> <20><>࠭<EFBFBD>
|
||||
cmp al, 8 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BkSpace
|
||||
je bs_pressed ; <20><> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 <20><>ࠡ<EFBFBD><E0A0A1>稪
|
||||
cmp al, 0 ;
|
||||
je skip_translate ;
|
||||
mov es:[ebx+0B8000h], al ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA0> ᨬ<><E1A8AC><EFBFBD> <20><> <20><>࠭
|
||||
add dword ptr screen_addr, 2; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>樨 <20><> 2
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ebx, screen_addr
|
||||
shr ebx, 1
|
||||
;! mov eax, ebx
|
||||
;! mov ebx, 2
|
||||
;!!! div ebx
|
||||
; mov ebx, eax
|
||||
; mov ebx, screen_addr
|
||||
; inc ebx
|
||||
xor edx, edx
|
||||
xor eax, eax
|
||||
mov dx, 03D4h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> CRT
|
||||
mov al, 0Fh ; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bl
|
||||
out dx, ax
|
||||
mov al, 0Eh ; <20> ॣ. <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bh
|
||||
out dx, ax
|
||||
jmp short skip_translate
|
||||
bs_pressed: ; <20><><EFBFBD><EFBFBD><EFBFBD> BkSpace:
|
||||
mov al,' ' ; <20>뢥<EFBFBD><EBA2A5><EFBFBD> <20><EFBFBD><E0AEA1>
|
||||
sub ebx, 2 ; <20> <20><><EFBFBD><EFBFBD>樨 <20>।<EFBFBD><E0A5A4><EFBFBD>饣<EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD>
|
||||
mov es:[ebx+0B8000h], al
|
||||
mov screen_addr, ebx ; <20> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4> ᨬ<><E1A8AC><EFBFBD><EFBFBD>,
|
||||
; <20><><EFBFBD> ⥪<>騩
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
shr ebx, 1
|
||||
;! mov eax, ebx
|
||||
;! mov ebx, 2
|
||||
;!!! div ebx
|
||||
; mov ebx, eax
|
||||
; mov ebx, screen_addr
|
||||
; inc ebx
|
||||
xor edx, edx
|
||||
xor eax, eax
|
||||
mov dx, 03D4h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> CRT
|
||||
mov al, 0Fh ; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bl
|
||||
out dx, ax
|
||||
mov al, 0Eh ; <20> ॣ. <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bh
|
||||
out dx, ax
|
||||
|
||||
skip_translate:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
; <20><><EFBFBD><E1ABA0> EOI <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
pop ds
|
||||
pop es
|
||||
pop edx
|
||||
pop ebx
|
||||
pop eax
|
||||
iretd
|
||||
|
||||
; *******************
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ESC
|
||||
esc_pressed:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E1ABA0> EOI <20> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
cli
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
and al, 0FCh
|
||||
out 61h, al
|
||||
pop ds
|
||||
pop es
|
||||
pop edx
|
||||
pop ebx
|
||||
pop eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
|
||||
db 0EAh
|
||||
dd offset RM_return
|
||||
dw SEL_16bitCS
|
||||
PM_seg ends
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20><><EFBFBD>
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>१ ᥫ<><E1A5AB><EFBFBD><EFBFBD><EFBFBD> SEL_32bitSS) <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
Stack_seg segment para stack "STACK"
|
||||
stack_start db 100h dup(?)
|
||||
stack_l = $-stack_start ; <20><><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD> <20><><EFBFBD> <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD>樨 ESP
|
||||
Stack_seg ends
|
||||
end start
|
||||
BIN
Protect/PM_INT8.9/PM.EXE
Executable file
BIN
Protect/PM_INT8.9/PM.EXE
Executable file
Binary file not shown.
BIN
Protect/PM_INT8.9/PM.OBJ
Executable file
BIN
Protect/PM_INT8.9/PM.OBJ
Executable file
Binary file not shown.
293
Protect/PM_INT8.9/PM1.ASM
Executable file
293
Protect/PM_INT8.9/PM1.ASM
Executable file
@ -0,0 +1,293 @@
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>㤥<EFBFBD><E3A4A5><EFBFBD> <20><>㯯<EFBFBD> 2084/3
|
||||
; <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><>⮭<EFBFBD>
|
||||
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
; <20>ணࠬ<E0AEA3><E0A0AC>, <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室 <20> Protrcted Mode,
|
||||
; <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD>墠<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><> 32-<2D> <20><>⭮<EFBFBD><E2ADAE> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
so equ small offset
|
||||
|
||||
.386p
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Real Mode, 16 <20><><EFBFBD>
|
||||
RM_seg segment para public "CODE" use16
|
||||
assume cs: RM_seg, ds: PM_seg, ss: Stack_seg
|
||||
start:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭
|
||||
mov ax, 3
|
||||
int 10h
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push PM_seg
|
||||
pop ds
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6> (PM <20><><EFBFBD> <20><><EFBFBD>)
|
||||
mov eax, cr0
|
||||
test al, 1
|
||||
jz no_V86
|
||||
; <20> 㦥 <20> PM - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20>訡<EFBFBD><E8A8A1> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so v86_msg
|
||||
err_exit:
|
||||
mov ah, 9
|
||||
int 21h
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> Windows
|
||||
no_V86:
|
||||
mov ax, 1600h
|
||||
int 2Fh
|
||||
test al, al
|
||||
jz no_Windows
|
||||
; <20> <20><><EFBFBD> Wondows - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so win_msg
|
||||
jmp short err_exit
|
||||
; *****************************************
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>浪<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
no_Windows:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> ᥣ<><E1A5A3><EFBFBD>⮢
|
||||
xor eax, eax
|
||||
mov ax, RM_seg ; <20><><EFBFBD><EFBFBD><EFBFBD> 16bitCS <20>㤥<EFBFBD> RM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_16bitCS+2, ax ; <20><><EFBFBD><EFBFBD> 15-0
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_16bitCS+4, al ; <20><><EFBFBD><EFBFBD> 23-16
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_32bitCS+2, ax ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32bit* <20>㤥<EFBFBD>
|
||||
mov word ptr GDT_32bitSS+2, ax ; PM_seg
|
||||
mov word ptr GDT_32bitDS+2, ax
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_32bitCS+4, al
|
||||
mov byte ptr GDT_32bitSS+4, al
|
||||
mov byte ptr GDT_32bitDS+4, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
xor eax, eax
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
push eax
|
||||
add eax, offset GDT
|
||||
mov dword ptr gdtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> GDT
|
||||
lgdt fword ptr gdtr
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> IDT
|
||||
pop eax
|
||||
add eax, offset IDT
|
||||
mov dword ptr idtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDT
|
||||
lidt fword ptr idtr
|
||||
; <20>.<2E>. ᮡ<>ࠥ<EFBFBD><E0A0A5><EFBFBD> ࠡ<><E0A0A1><EFBFBD><EFBFBD><EFBFBD> <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A20
|
||||
in al, 70h
|
||||
or al, 2
|
||||
out 92h, al
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
cli
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪨<EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> (NMI)
|
||||
in al, 70h
|
||||
or al, 80h
|
||||
out 70h, al
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
mov eax, cr0
|
||||
or al, 1
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> SEL_32bitCS <20> CS
|
||||
db 66h ; <20><><EFBFBD>䨪<EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<>來<EFBFBD><EFA4AD><EFBFBD><EFBFBD>
|
||||
db 0EAh ; <20><><EFBFBD>쭨<EFBFBD> <20><><EFBFBD><EFBFBD>室
|
||||
dd offset PM_entry
|
||||
dw Sel_32bitCS
|
||||
RM_return:
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> Real Mode
|
||||
mov eax, cr0
|
||||
and al, 0FEh
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>।<EFBFBD> <20> <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> CS ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
db 0EAh
|
||||
dw $+4
|
||||
dw RM_seg
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, Stack_seg
|
||||
mov bx, stack_l
|
||||
mov ss, ax
|
||||
mov sp, bx
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDTR <20><><EFBFBD> RM
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
lidt fword ptr idtr_real
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NMI
|
||||
in al, 70h
|
||||
and al, 07Fh
|
||||
out 70h, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
RM_seg ends
|
||||
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD>
|
||||
PM_seg segment para "CODE" use32
|
||||
assume cs: PM_seg
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GDT <20> IDT <20>.<2E>. <20><><EFBFBD><E0AEA2><EFBFBD><EFBFBD>, <20><><EFBFBD>⮬<EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>砫<EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
GDT label byte
|
||||
db 8 dup(0)
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> =0
|
||||
GTD_flatDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 16-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 64-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> RM_seg
|
||||
GDT_16bitCS db 0FFh,0FFh,0,0,0,10011010b,0,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitCS db 0FFh,0FFh,0,0,0,10011010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> Stack_seg
|
||||
GDT_32bitSS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
gdt_size = $-GDT
|
||||
gdtr dw gdt_size-1 ; <20>।<EFBFBD><E0A5A4> GDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥫ<><E1A5AB><EFBFBD><EFBFBD>
|
||||
SEL_flatDS equ 001000b
|
||||
SEL_16bitCS equ 010000b
|
||||
SEL_32bitCS equ 011000b
|
||||
SEL_32bitDS equ 100000b
|
||||
SEL_32bitSS equ 101000b
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IDT
|
||||
IDT label byte
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯ 0Eh - 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
; INT 00-07
|
||||
dw 8 dup(so int_handler, SEL_32bitCS, 8E00h,0)
|
||||
; INT 08(irq0)
|
||||
dw so irq0_7_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 09(irq1)
|
||||
dw so irq1_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 0Ah-0Fh (IRQ2-IRQ8)
|
||||
dw 6 dup(so irq0_7_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 10h-6Fh
|
||||
dw 97 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 70h-78h (IRQ8-IRQ15)
|
||||
dw 8 dup(so irq8_15_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 79h-FFh
|
||||
dw 135 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
idt_size = $-IDT
|
||||
idtr dw idt_size-1 ; <20>।<EFBFBD><E0A5A4> IDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>砫<EFBFBD> IDT
|
||||
; <20><><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> IDTR <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
idtr_real dw 3FFh,0,0
|
||||
|
||||
; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20><> <20>訡<EFBFBD><E8A8A1><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
v86_msg db "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ०<><E0A5A6><EFBFBD> v86 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PM$"
|
||||
win_msg db "<22>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD> <20><> <20><><EFBFBD> Windows$"
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD> OE ᪠<>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20> ASCII
|
||||
scan2ascii db 0,1Bh,'1','2','3','4','5','6','7','8','9','0','-','=',8
|
||||
screen_addr dd 0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||||
|
||||
; <20><>窠 <20>室<EFBFBD> <20> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
PM_entry:
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪ <20> <20><>㣨<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ax, SEL_flatDS
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, SEL_32bitSS
|
||||
mov ebx, stack_l
|
||||
mov ss, ax
|
||||
mov esp, ebx
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<>
|
||||
jmp short $
|
||||
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;! <20><>ࠡ<EFBFBD><E0A0A1>稪<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> !
|
||||
;! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>४<EFBFBD><E0A5AA><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0> <20>訡<EFBFBD><E8A8A1> !
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD>筮<EFBFBD><E7ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
int_handler:
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ0-IRQ7
|
||||
irq0_7_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ8-IRQ15
|
||||
irq8_15_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 0A1h, al
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 IRQ1 - <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
irq1_handler:
|
||||
push eax ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> -
|
||||
push ebx ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push es
|
||||
push ds
|
||||
in al, 60h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠<>-<2D><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cmp al, 0Eh ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 祬 <20><><EFBFBD><EFBFBD>㦨<EFBFBD><E3A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ja skip_translate ; <20><><EFBFBD><EFBFBD>, - <20><> <20><>ࠡ<EFBFBD><E0A0A1>뢠<EFBFBD><EBA2A0>
|
||||
cmp al, 1 ; <20> <20><><EFBFBD> ESC,
|
||||
je esc_pressed ; <20><><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
mov bx, SEL_32bitDS ; <20><><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mov ds, bx ; DS:EBX - ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD>
|
||||
mov ebx, offset scan2ascii ; ᪠<>-<2D><><EFBFBD><EFBFBD> <20> ASCII
|
||||
xlatb ; <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov bx, SEL_flatDS
|
||||
mov es, bx ; ES:EBX - <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<>饩
|
||||
mov ebx, screen_addr ; <20><><EFBFBD><EFBFBD>樨 <20><> <20><>࠭<EFBFBD>
|
||||
cmp al, 8 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BkSpace
|
||||
je bs_pressed ; <20><> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 <20><>ࠡ<EFBFBD><E0A0A1>稪
|
||||
mov es:[ebx+0B8000h], al ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA0> ᨬ<><E1A8AC><EFBFBD> <20><> <20><>࠭
|
||||
add dword ptr screen_addr, 2; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>樨 <20><> 2
|
||||
jmp short skip_translate
|
||||
bs_pressed: ; <20><><EFBFBD><EFBFBD><EFBFBD> BkSpace:
|
||||
mov al,' ' ; <20>뢥<EFBFBD><EBA2A5><EFBFBD> <20><EFBFBD><E0AEA1>
|
||||
sub ebx, 2 ; <20> <20><><EFBFBD><EFBFBD>樨 <20>।<EFBFBD><E0A5A4><EFBFBD>饣<EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD>
|
||||
mov es:[ebx+0B8000h], al
|
||||
mov screen_addr, ebx ; <20> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4> ᨬ<><E1A8AC><EFBFBD><EFBFBD>,
|
||||
; <20><><EFBFBD> ⥪<>騩
|
||||
skip_translate:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
; <20><><EFBFBD><E1ABA0> EOI <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
pop ds
|
||||
pop es
|
||||
pop ebx
|
||||
pop eax
|
||||
iretd
|
||||
|
||||
; *******************
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ESC
|
||||
esc_pressed:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E1ABA0> EOI <20> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
pop ds
|
||||
pop es
|
||||
pop ebx
|
||||
pop eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
cli
|
||||
db 0EAh
|
||||
dd offset RM_return
|
||||
dw SEL_16bitCS
|
||||
PM_seg ends
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20><><EFBFBD>
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>१ ᥫ<><E1A5AB><EFBFBD><EFBFBD><EFBFBD> SEL_32bitSS) <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
Stack_seg segment para stack "STACK"
|
||||
stack_start db 100h dup(?)
|
||||
stack_l = $-stack_start ; <20><><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD> <20><><EFBFBD> <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD>樨 ESP
|
||||
Stack_seg ends
|
||||
end start
|
||||
400
Protect/PM_INT8.9/PM2.ASM
Executable file
400
Protect/PM_INT8.9/PM2.ASM
Executable file
@ -0,0 +1,400 @@
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>㤥<EFBFBD><E3A4A5><EFBFBD> <20><>㯯<EFBFBD> 2084/3
|
||||
; <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><>⮭<EFBFBD>
|
||||
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
; <20>ணࠬ<E0AEA3><E0A0AC>, <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室 <20> Protrcted Mode,
|
||||
; <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD>墠<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><> 32-<2D> <20><>⭮<EFBFBD><E2ADAE> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
so equ small offset
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD>. <20><> <20>室<EFBFBD> - <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD> (<28> <20><><EFBFBD>).
|
||||
delay macro time
|
||||
local ext,iter
|
||||
push ecx
|
||||
mov ecx,time
|
||||
ext: push ecx
|
||||
mov cx,5000 ;<3B><><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>室<EFBFBD> <20><> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
iter: loop iter
|
||||
pop ecx
|
||||
loop ext
|
||||
pop ecx
|
||||
endm
|
||||
|
||||
.386p
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Real Mode, 16 <20><><EFBFBD>
|
||||
RM_seg segment para public "CODE" use16
|
||||
assume cs: RM_seg, ds: PM_seg, ss: Stack_seg
|
||||
start:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭
|
||||
mov ax, 3
|
||||
int 10h
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push PM_seg
|
||||
pop ds
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6> (PM <20><><EFBFBD> <20><><EFBFBD>)
|
||||
mov eax, cr0
|
||||
test al, 1
|
||||
jz no_V86
|
||||
; <20> 㦥 <20> PM - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20>訡<EFBFBD><E8A8A1> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so v86_msg
|
||||
err_exit:
|
||||
mov ah, 9
|
||||
int 21h
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> Windows
|
||||
no_V86:
|
||||
mov ax, 1600h
|
||||
int 2Fh
|
||||
test al, al
|
||||
jz no_Windows
|
||||
; <20> <20><><EFBFBD> Wondows - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so win_msg
|
||||
jmp short err_exit
|
||||
; *****************************************
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>浪<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
no_Windows:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> ᥣ<><E1A5A3><EFBFBD>⮢
|
||||
xor eax, eax
|
||||
mov ax, RM_seg ; <20><><EFBFBD><EFBFBD><EFBFBD> 16bitCS <20>㤥<EFBFBD> RM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_16bitCS+2, ax ; <20><><EFBFBD><EFBFBD> 15-0
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_16bitCS+4, al ; <20><><EFBFBD><EFBFBD> 23-16
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_32bitCS+2, ax ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32bit* <20>㤥<EFBFBD>
|
||||
mov word ptr GDT_32bitSS+2, ax ; PM_seg
|
||||
mov word ptr GDT_32bitDS+2, ax
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_32bitCS+4, al
|
||||
mov byte ptr GDT_32bitSS+4, al
|
||||
mov byte ptr GDT_32bitDS+4, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
xor eax, eax
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
push eax
|
||||
add eax, offset GDT
|
||||
mov dword ptr gdtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> GDT
|
||||
lgdt fword ptr gdtr
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> IDT
|
||||
pop eax
|
||||
add eax, offset IDT
|
||||
mov dword ptr idtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDT
|
||||
lidt fword ptr idtr
|
||||
; <20>.<2E>. ᮡ<>ࠥ<EFBFBD><E0A0A5><EFBFBD> ࠡ<><E0A0A1><EFBFBD><EFBFBD><EFBFBD> <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A20
|
||||
in al, 70h
|
||||
or al, 2
|
||||
out 92h, al
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
cli
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪨<EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> (NMI)
|
||||
in al, 70h
|
||||
or al, 80h
|
||||
out 70h, al
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
mov eax, cr0
|
||||
or al, 1
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> SEL_32bitCS <20> CS
|
||||
db 66h ; <20><><EFBFBD>䨪<EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<>來<EFBFBD><EFA4AD><EFBFBD><EFBFBD>
|
||||
db 0EAh ; <20><><EFBFBD>쭨<EFBFBD> <20><><EFBFBD><EFBFBD>室
|
||||
dd offset PM_entry
|
||||
dw Sel_32bitCS
|
||||
RM_return:
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> Real Mode
|
||||
mov eax, cr0
|
||||
and al, 0FEh
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>।<EFBFBD> <20> <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> CS ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
db 0EAh
|
||||
dw $+4
|
||||
dw RM_seg
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, Stack_seg
|
||||
mov bx, stack_l
|
||||
mov ss, ax
|
||||
mov sp, bx
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDTR <20><><EFBFBD> RM
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
lidt fword ptr idtr_real
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NMI
|
||||
in al, 70h
|
||||
and al, 07Fh
|
||||
out 70h, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
RM_seg ends
|
||||
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD>
|
||||
PM_seg segment para "CODE" use32
|
||||
assume cs: PM_seg
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GDT <20> IDT <20>.<2E>. <20><><EFBFBD><E0AEA2><EFBFBD><EFBFBD>, <20><><EFBFBD>⮬<EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>砫<EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
GDT label byte
|
||||
db 8 dup(0)
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> =0
|
||||
GTD_flatDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 16-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 64-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> RM_seg
|
||||
GDT_16bitCS db 0FFh,0FFh,0,0,0,10011010b,0,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitCS db 0FFh,0FFh,0,0,0,10011010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> Stack_seg
|
||||
GDT_32bitSS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
gdt_size = $-GDT
|
||||
gdtr dw gdt_size-1 ; <20>।<EFBFBD><E0A5A4> GDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥫ<><E1A5AB><EFBFBD><EFBFBD>
|
||||
SEL_flatDS equ 001000b
|
||||
SEL_16bitCS equ 010000b
|
||||
SEL_32bitCS equ 011000b
|
||||
SEL_32bitDS equ 100000b
|
||||
SEL_32bitSS equ 101000b
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IDT
|
||||
IDT label byte
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯ 0Eh - 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
; INT 00-07
|
||||
dw 8 dup(so int_handler, SEL_32bitCS, 8E00h,0)
|
||||
; INT 08(irq0)
|
||||
; dw so irq0_7_handler,SEL_32bitCS,8E00h,0
|
||||
dw so timer_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 09(irq1)
|
||||
dw so irq1_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 0Ah-0Fh (IRQ2-IRQ8)
|
||||
dw 6 dup(so irq0_7_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 10h-6Fh
|
||||
dw 97 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 70h-78h (IRQ8-IRQ15)
|
||||
dw 8 dup(so irq8_15_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 79h-FFh
|
||||
dw 135 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
idt_size = $-IDT
|
||||
idtr dw idt_size-1 ; <20>।<EFBFBD><E0A5A4> IDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>砫<EFBFBD> IDT
|
||||
; <20><><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> IDTR <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
idtr_real dw 3FFh,0,0
|
||||
|
||||
; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20><> <20>訡<EFBFBD><E8A8A1><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
v86_msg db "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ०<><E0A5A6><EFBFBD> v86 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PM$"
|
||||
win_msg db "<22>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD> <20><> <20><><EFBFBD> Windows$"
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD> OE ᪠<>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20> ASCII
|
||||
scan2ascii db 0,1Bh,'1','2','3','4','5','6','7','8','9','0','-','=',8
|
||||
screen_addr dd 0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||||
N dd 64 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>ᨢ<EFBFBD> MUS
|
||||
NM dd 1 ; <20><><EFBFBD><EFBFBD>稪 <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
; <20><><EFBFBD>ᨢ <20><><EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>: 1-<2D> <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2-<2D> - <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
MUS dw 1218,10, 767,10, 813,10, 912,10, 966,10, 912,30
|
||||
dw 1218,10, 609,10, 678,10, 767,10, 813,10, 767,30
|
||||
dw 912,10, 574,15, 609,5, 678,15, 767,5, 813,5
|
||||
dw 767,5, 678,20, 574,10, 609,10, 678,10, 767,10
|
||||
dw 678,10, 813,30, 1218,10, 767,10, 813,10, 912,10
|
||||
dw 966,10, 912,30, 1218,10, 609,10, 678,10, 767,10
|
||||
dw 813,10, 767,30, 912,10, 574,15, 609,5, 678,15
|
||||
dw 767,5, 813,5, 767,5, 678,20, 574,10, 609,10
|
||||
dw 678,10, 767,10, 678,10, 813,30, 0,2, 609,10
|
||||
dw 609,10, 912,10, 724,10, 609,10, 609,5, 678,5
|
||||
dw 724,5, 678,5, 574,15, 678,5, 678,10, 1024,10
|
||||
dw 813,10, 678,10, 678,5, 767,5, 813,5, 724,5
|
||||
dw 609,20, 678,5, 609,5, 574,5, 456,5, 342,5
|
||||
dw 384,5, 406,5, 456,5, 456,20, 483,20, 678,5
|
||||
dw 609,5, 574,5, 456,5, 342,5, 384,5, 406,5
|
||||
dw 456,5, 456,10, 483,10, 456,20, 0,2, 456,5
|
||||
dw 456,10, 483,10, 456,20, 0,30
|
||||
;MC = ($-MUS)/4; Music Count - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD>
|
||||
MC = 100
|
||||
|
||||
; <20><>窠 <20>室<EFBFBD> <20> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
PM_entry:
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪ <20> <20><>㣨<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ax, SEL_flatDS
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, SEL_32bitSS
|
||||
mov ebx, stack_l
|
||||
mov ss, ax
|
||||
mov esp, ebx
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<>
|
||||
jmp short $
|
||||
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;! <20><>ࠡ<EFBFBD><E0A0A1>稪<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> !
|
||||
;! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>४<EFBFBD><E0A5AA><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0> <20>訡<EFBFBD><E8A8A1> !
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD>筮<EFBFBD><E7ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
int_handler:
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ0-IRQ7
|
||||
irq0_7_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
pop eax
|
||||
iretd
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> ⠩<><E2A0A9><EFBFBD><EFBFBD> (int8) !
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
timer_handler:
|
||||
; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax
|
||||
push ebx
|
||||
push es
|
||||
push ds
|
||||
|
||||
mov bx, SEL_32bitDS ; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ds, bx
|
||||
|
||||
dec NM ; <20><><EFBFBD><EFBFBD>饥 <20>६<EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
mov eax, NM ; <20> <20><> <20><>⥪<EFBFBD><E2A5AA>,
|
||||
cmp eax, 0
|
||||
jnz contin_mus ; <20><> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20>몫<EFBFBD><EBAAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
and al, 0FCh
|
||||
out 61h, al
|
||||
delay 1 ; <20><>㧠
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
inc N ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>.
|
||||
mov eax, N ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ebx, 4 ; ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mul ebx ; <20><><EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD>, <20>⭮<EFBFBD><E2ADAE>⥫쭮 <20><>砫<EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
add eax, offset MUS ; <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>
|
||||
; xor eax, eax
|
||||
mov ax, [eax] ; <20> AX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
mov ebx, eax ; <20><><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2>
|
||||
shr ebx, 8 ; <20><>ࠬ<EFBFBD><E0A0AC> <20><><EFBFBD>
|
||||
and ax, 00FFh ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax
|
||||
mov ax, 0B6h ; \
|
||||
out 43h, ax ; _\outportb(0x43, 0xB6)
|
||||
pop eax ; EAX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & 0x00FF
|
||||
out 42h, ax
|
||||
xchg ax, bx ; ax = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >> 8
|
||||
out 42h, ax
|
||||
in al, 61h
|
||||
or al, 03h
|
||||
out 61h, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
pop ebx ; EBX = <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<>饩 <20><><EFBFBD><EFBFBD>
|
||||
xor eax, eax
|
||||
mov ax, word ptr [ebx+2] ; EAX = <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
mov NM, eax
|
||||
|
||||
cmp N, MC ; <20> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
jb contin_mus ; <20><> <20><>祣<EFBFBD>,
|
||||
mov N, 0 ; <20><><EFBFBD><EFBFBD><EFBFBD> - <20> <20><>砫<EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
|
||||
contin_mus:
|
||||
; mov NM, eax ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ⥪<>饥 <20>६<EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
pop ds
|
||||
pop es
|
||||
pop ebx
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ8-IRQ15
|
||||
irq8_15_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 0A1h, al
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 IRQ1 - <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
irq1_handler:
|
||||
push eax ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> -
|
||||
push ebx ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push es
|
||||
push ds
|
||||
in al, 60h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠<>-<2D><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cmp al, 0Eh ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 祬 <20><><EFBFBD><EFBFBD>㦨<EFBFBD><E3A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ja skip_translate ; <20><><EFBFBD><EFBFBD>, - <20><> <20><>ࠡ<EFBFBD><E0A0A1>뢠<EFBFBD><EBA2A0>
|
||||
cmp al, 1 ; <20> <20><><EFBFBD> ESC,
|
||||
je esc_pressed ; <20><><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
mov bx, SEL_32bitDS ; <20><><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mov ds, bx ; DS:EBX - ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD>
|
||||
mov ebx, offset scan2ascii ; ᪠<>-<2D><><EFBFBD><EFBFBD> <20> ASCII
|
||||
xlatb ; <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov bx, SEL_flatDS
|
||||
mov es, bx ; ES:EBX - <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<>饩
|
||||
mov ebx, screen_addr ; <20><><EFBFBD><EFBFBD>樨 <20><> <20><>࠭<EFBFBD>
|
||||
cmp al, 8 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BkSpace
|
||||
je bs_pressed ; <20><> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 <20><>ࠡ<EFBFBD><E0A0A1>稪
|
||||
mov es:[ebx+0B8000h], al ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA0> ᨬ<><E1A8AC><EFBFBD> <20><> <20><>࠭
|
||||
add dword ptr screen_addr, 2; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>樨 <20><> 2
|
||||
jmp short skip_translate
|
||||
bs_pressed: ; <20><><EFBFBD><EFBFBD><EFBFBD> BkSpace:
|
||||
mov al,' ' ; <20>뢥<EFBFBD><EBA2A5><EFBFBD> <20><EFBFBD><E0AEA1>
|
||||
sub ebx, 2 ; <20> <20><><EFBFBD><EFBFBD>樨 <20>।<EFBFBD><E0A5A4><EFBFBD>饣<EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD>
|
||||
mov es:[ebx+0B8000h], al
|
||||
mov screen_addr, ebx ; <20> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4> ᨬ<><E1A8AC><EFBFBD><EFBFBD>,
|
||||
; <20><><EFBFBD> ⥪<>騩
|
||||
skip_translate:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
; <20><><EFBFBD><E1ABA0> EOI <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
pop ds
|
||||
pop es
|
||||
pop ebx
|
||||
pop eax
|
||||
iretd
|
||||
|
||||
; *******************
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ESC
|
||||
esc_pressed:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E1ABA0> EOI <20> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
cli
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
and al, 0FCh
|
||||
out 61h, al
|
||||
pop ds
|
||||
pop es
|
||||
pop ebx
|
||||
pop eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
|
||||
db 0EAh
|
||||
dd offset RM_return
|
||||
dw SEL_16bitCS
|
||||
PM_seg ends
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20><><EFBFBD>
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>१ ᥫ<><E1A5AB><EFBFBD><EFBFBD><EFBFBD> SEL_32bitSS) <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
Stack_seg segment para stack "STACK"
|
||||
stack_start db 100h dup(?)
|
||||
stack_l = $-stack_start ; <20><><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD> <20><><EFBFBD> <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD>樨 ESP
|
||||
Stack_seg ends
|
||||
end start
|
||||
446
Protect/PM_INT8.9/PM3.ASM
Executable file
446
Protect/PM_INT8.9/PM3.ASM
Executable file
@ -0,0 +1,446 @@
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>㤥<EFBFBD><E3A4A5><EFBFBD> <20><>㯯<EFBFBD> 2084/3
|
||||
; <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><>⮭<EFBFBD>
|
||||
; <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
; <20>ணࠬ<E0AEA3><E0A0AC>, <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室 <20> Protrcted Mode,
|
||||
; <20><>९ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD>墠<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><> 32-<2D> <20><>⭮<EFBFBD><E2ADAE> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
so equ small offset
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD>. <20><> <20>室<EFBFBD> - <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>প<EFBFBD> (<28> <20><><EFBFBD>).
|
||||
delay macro time
|
||||
local ext,iter
|
||||
push ecx
|
||||
mov ecx,time
|
||||
ext: push ecx
|
||||
mov cx,5000 ;<3B><><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>室<EFBFBD> <20><> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
iter: loop iter
|
||||
pop ecx
|
||||
loop ext
|
||||
pop ecx
|
||||
endm
|
||||
|
||||
.386p
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Real Mode, 16 <20><><EFBFBD>
|
||||
RM_seg segment para public "CODE" use16
|
||||
assume cs: RM_seg, ds: PM_seg, ss: Stack_seg
|
||||
start:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭
|
||||
mov ax, 3
|
||||
int 10h
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push PM_seg
|
||||
pop ds
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6> (PM <20><><EFBFBD> <20><><EFBFBD>)
|
||||
mov eax, cr0
|
||||
test al, 1
|
||||
jz no_V86
|
||||
; <20> 㦥 <20> PM - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20>訡<EFBFBD><E8A8A1> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so v86_msg
|
||||
err_exit:
|
||||
mov ah, 9
|
||||
int 21h
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
; <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> Windows
|
||||
no_V86:
|
||||
mov ax, 1600h
|
||||
int 2Fh
|
||||
test al, al
|
||||
jz no_Windows
|
||||
; <20> <20><><EFBFBD> Wondows - ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx, so win_msg
|
||||
jmp short err_exit
|
||||
; *****************************************
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>浪<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||
no_Windows:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> ᥣ<><E1A5A3><EFBFBD>⮢
|
||||
xor eax, eax
|
||||
mov ax, RM_seg ; <20><><EFBFBD><EFBFBD><EFBFBD> 16bitCS <20>㤥<EFBFBD> RM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_16bitCS+2, ax ; <20><><EFBFBD><EFBFBD> 15-0
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_16bitCS+4, al ; <20><><EFBFBD><EFBFBD> 23-16
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
mov word ptr GDT_32bitCS+2, ax ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32bit* <20>㤥<EFBFBD>
|
||||
mov word ptr GDT_32bitSS+2, ax ; PM_seg
|
||||
mov word ptr GDT_32bitDS+2, ax
|
||||
shr eax, 16
|
||||
mov byte ptr GDT_32bitCS+4, al
|
||||
mov byte ptr GDT_32bitSS+4, al
|
||||
mov byte ptr GDT_32bitDS+4, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
xor eax, eax
|
||||
mov ax, PM_seg
|
||||
shl eax, 4
|
||||
push eax
|
||||
add eax, offset GDT
|
||||
mov dword ptr gdtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> GDT
|
||||
lgdt fword ptr gdtr
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> IDT
|
||||
pop eax
|
||||
add eax, offset IDT
|
||||
mov dword ptr idtr+2, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDT
|
||||
lidt fword ptr idtr
|
||||
; <20>.<2E>. ᮡ<>ࠥ<EFBFBD><E0A0A5><EFBFBD> ࠡ<><E0A0A1><EFBFBD><EFBFBD><EFBFBD> <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A20
|
||||
in al, 70h
|
||||
or al, 2
|
||||
out 92h, al
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
cli
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪨<EFBFBD>㥬<EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> (NMI)
|
||||
in al, 70h
|
||||
or al, 80h
|
||||
out 70h, al
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
mov eax, cr0
|
||||
or al, 1
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> SEL_32bitCS <20> CS
|
||||
db 66h ; <20><><EFBFBD>䨪<EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<>來<EFBFBD><EFA4AD><EFBFBD><EFBFBD>
|
||||
db 0EAh ; <20><><EFBFBD>쭨<EFBFBD> <20><><EFBFBD><EFBFBD>室
|
||||
dd offset PM_entry
|
||||
dw Sel_32bitCS
|
||||
RM_return:
|
||||
; <20><>३<EFBFBD><E0A5A9> <20> Real Mode
|
||||
mov eax, cr0
|
||||
and al, 0FEh
|
||||
mov cr0, eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>।<EFBFBD> <20> <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> CS ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
db 0EAh
|
||||
dw $+4
|
||||
dw RM_seg
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, Stack_seg
|
||||
mov bx, stack_l
|
||||
mov ss, ax
|
||||
mov sp, bx
|
||||
; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> IDTR <20><><EFBFBD> RM
|
||||
mov ax, PM_seg
|
||||
mov ds, ax
|
||||
lidt fword ptr idtr_real
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NMI
|
||||
in al, 70h
|
||||
and al, 07Fh
|
||||
out 70h, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, 4Ch
|
||||
int 21h
|
||||
RM_seg ends
|
||||
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD>
|
||||
PM_seg segment para "CODE" use32
|
||||
assume cs: PM_seg
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GDT <20> IDT <20>.<2E>. <20><><EFBFBD><E0AEA2><EFBFBD><EFBFBD>, <20><><EFBFBD>⮬<EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>砫<EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
GDT label byte
|
||||
db 8 dup(0)
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> =0
|
||||
GTD_flatDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 16-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 64-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> RM_seg
|
||||
GDT_16bitCS db 0FFh,0FFh,0,0,0,10011010b,0,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitCS db 0FFh,0FFh,0,0,0,10011010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> PM_seg
|
||||
GDT_32bitDS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
; 32-x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<2D> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> Stack_seg
|
||||
GDT_32bitSS db 0FFh,0FFh,0,0,0,10010010b,11001111b,0
|
||||
gdt_size = $-GDT
|
||||
gdtr dw gdt_size-1 ; <20>।<EFBFBD><E0A5A4> GDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> GDT
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥫ<><E1A5AB><EFBFBD><EFBFBD>
|
||||
SEL_flatDS equ 001000b
|
||||
SEL_16bitCS equ 010000b
|
||||
SEL_32bitCS equ 011000b
|
||||
SEL_32bitDS equ 100000b
|
||||
SEL_32bitSS equ 101000b
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IDT
|
||||
IDT label byte
|
||||
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯ 0Eh - 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
; INT 00-07
|
||||
dw 8 dup(so int_handler, SEL_32bitCS, 8E00h,0)
|
||||
; INT 08(irq0)
|
||||
; dw so irq0_7_handler,SEL_32bitCS,8E00h,0
|
||||
dw so timer_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 09(irq1)
|
||||
dw so irq1_handler,SEL_32bitCS,8E00h,0
|
||||
; INT 0Ah-0Fh (IRQ2-IRQ8)
|
||||
dw 6 dup(so irq0_7_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 10h-6Fh
|
||||
dw 97 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 70h-78h (IRQ8-IRQ15)
|
||||
dw 8 dup(so irq8_15_handler,SEL_32bitCS,8E00h,0)
|
||||
; INT 79h-FFh
|
||||
dw 135 dup(so int_handler,SEL_32bitCS,8E00h,0)
|
||||
idt_size = $-IDT
|
||||
idtr dw idt_size-1 ; <20>।<EFBFBD><E0A5A4> IDT
|
||||
dd ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>砫<EFBFBD> IDT
|
||||
; <20><><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> IDTR <20> ॠ<>쭮<EFBFBD> ०<><E0A5A6><EFBFBD>
|
||||
idtr_real dw 3FFh,0,0
|
||||
|
||||
; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20><> <20>訡<EFBFBD><E8A8A1><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
v86_msg db "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ०<><E0A5A6><EFBFBD> v86 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PM$"
|
||||
win_msg db "<22>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD> <20><> <20><><EFBFBD> Windows$"
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD> OE ᪠<>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20> ASCII
|
||||
scan2ascii db 0,1Bh,'1','2','3','4','5','6','7','8','9','0','-','=',8
|
||||
db 0,'Q','W','E','R','T','Y','U','I','O','P','[',']',0
|
||||
DB 0,'A','S','D','F','G','H','J','K','L',';',27h,'`',0 ; LShift
|
||||
db '\','Z','X','C','V','B','N','M',',','.','/',0 ; RShift
|
||||
db '0','0',' ' ; SP
|
||||
screen_addr dd 0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||||
N dd 64 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>ᨢ<EFBFBD> MUS
|
||||
NM dd 1 ; <20><><EFBFBD><EFBFBD>稪 <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
; <20><><EFBFBD>ᨢ <20><><EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>: 1-<2D> <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2-<2D> - <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
MUS dw 1218,10, 767,10, 813,10, 912,10, 966,10, 912,30
|
||||
dw 1218,10, 609,10, 678,10, 767,10, 813,10, 767,30
|
||||
dw 912,10, 574,15, 609,5, 678,15, 767,5, 813,5
|
||||
dw 767,5, 678,20, 574,10, 609,10, 678,10, 767,10
|
||||
dw 678,10, 813,30, 1218,10, 767,10, 813,10, 912,10
|
||||
dw 966,10, 912,30, 1218,10, 609,10, 678,10, 767,10
|
||||
dw 813,10, 767,30, 912,10, 574,15, 609,5, 678,15
|
||||
dw 767,5, 813,5, 767,5, 678,20, 574,10, 609,10
|
||||
dw 678,10, 767,10, 678,10, 813,30, 0,2, 609,10
|
||||
dw 609,10, 912,10, 724,10, 609,10, 609,5, 678,5
|
||||
dw 724,5, 678,5, 574,15, 678,5, 678,10, 1024,10
|
||||
dw 813,10, 678,10, 678,5, 767,5, 813,5, 724,5
|
||||
dw 609,20, 678,5, 609,5, 574,5, 456,5, 342,5
|
||||
dw 384,5, 406,5, 456,5, 456,20, 483,20, 678,5
|
||||
dw 609,5, 574,5, 456,5, 342,5, 384,5, 406,5
|
||||
dw 456,5, 456,10, 483,10, 456,20, 0,2, 456,5
|
||||
dw 456,10, 483,10, 456,20, 0,30
|
||||
;MC = ($-MUS)/4; Music Count - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD>
|
||||
MC = 100
|
||||
|
||||
; <20><>窠 <20>室<EFBFBD> <20> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> ०<><E0A5A6>
|
||||
PM_entry:
|
||||
; <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪ <20> <20><>㣨<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ax, SEL_flatDS
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov ax, SEL_32bitSS
|
||||
mov ebx, stack_l
|
||||
mov ss, ax
|
||||
mov esp, ebx
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
sti
|
||||
; <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<>
|
||||
jmp short $
|
||||
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;! <20><>ࠡ<EFBFBD><E0A0A1>稪<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> !
|
||||
;! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>४<EFBFBD><E0A5AA><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0> <20>訡<EFBFBD><E8A8A1> !
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD>筮<EFBFBD><E7ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
int_handler:
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ0-IRQ7
|
||||
irq0_7_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
pop eax
|
||||
iretd
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> ⠩<><E2A0A9><EFBFBD><EFBFBD> (int8) !
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
timer_handler:
|
||||
; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax
|
||||
push ebx
|
||||
push es
|
||||
push ds
|
||||
|
||||
mov bx, SEL_32bitDS ; <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ds, bx
|
||||
|
||||
dec NM ; <20><><EFBFBD><EFBFBD>饥 <20>६<EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
mov eax, NM ; <20> <20><> <20><>⥪<EFBFBD><E2A5AA>,
|
||||
cmp eax, 0
|
||||
jnz contin_mus ; <20><> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20>몫<EFBFBD><EBAAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
and al, 0FCh
|
||||
out 61h, al
|
||||
delay 1 ; <20><>㧠
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
inc N ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>.
|
||||
mov eax, N ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ebx, 4 ; ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mul ebx ; <20><><EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD>, <20>⭮<EFBFBD><E2ADAE>⥫쭮 <20><>砫<EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
add eax, offset MUS ; <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>
|
||||
; xor eax, eax
|
||||
mov ax, [eax] ; <20> AX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
mov ebx, eax ; <20><><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2>
|
||||
shr ebx, 8 ; <20><>ࠬ<EFBFBD><E0A0AC> <20><><EFBFBD>
|
||||
and ax, 00FFh ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
push eax
|
||||
mov ax, 0B6h ; \
|
||||
out 43h, ax ; _\outportb(0x43, 0xB6)
|
||||
pop eax ; EAX = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & 0x00FF
|
||||
out 42h, ax
|
||||
xchg ax, bx ; ax = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >> 8
|
||||
out 42h, ax
|
||||
in al, 61h
|
||||
or al, 03h
|
||||
out 61h, al
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
pop ebx ; EBX = <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<>饩 <20><><EFBFBD><EFBFBD>
|
||||
xor eax, eax
|
||||
mov ax, word ptr [ebx+2] ; EAX = <20><><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD>
|
||||
mov NM, eax
|
||||
|
||||
cmp N, MC ; <20> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
jb contin_mus ; <20><> <20><>祣<EFBFBD>,
|
||||
mov N, 0 ; <20><><EFBFBD><EFBFBD><EFBFBD> - <20> <20><>砫<EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD>
|
||||
|
||||
contin_mus:
|
||||
; mov NM, eax ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ⥪<>饥 <20>६<EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
pop ds
|
||||
pop es
|
||||
pop ebx
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> IRQ8-IRQ15
|
||||
irq8_15_handler:
|
||||
push eax
|
||||
mov al, 20h
|
||||
out 0A1h, al
|
||||
pop eax
|
||||
iretd
|
||||
; <20><>ࠡ<EFBFBD><E0A0A1>稪 IRQ1 - <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
irq1_handler:
|
||||
push eax ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> -
|
||||
push ebx ; <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
push edx
|
||||
push es
|
||||
push ds
|
||||
in al, 60h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠<>-<2D><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; cmp al, 0Eh ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 祬 <20><><EFBFBD><EFBFBD>㦨<EFBFBD><E3A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cmp al, 39h ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 祬 <20><><EFBFBD><EFBFBD>㦨<EFBFBD><E3A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ja skip_translate ; <20><><EFBFBD><EFBFBD>, - <20><> <20><>ࠡ<EFBFBD><E0A0A1>뢠<EFBFBD><EBA2A0>
|
||||
cmp al, 1 ; <20> <20><><EFBFBD> ESC,
|
||||
je esc_pressed ; <20><><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
mov bx, SEL_32bitDS ; <20><><EFBFBD><EFBFBD><EFBFBD>:
|
||||
mov ds, bx ; DS:EBX - ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD>
|
||||
mov ebx, offset scan2ascii ; ᪠<>-<2D><><EFBFBD><EFBFBD> <20> ASCII
|
||||
xlatb ; <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov bx, SEL_flatDS
|
||||
mov es, bx ; ES:EBX - <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<>饩
|
||||
mov ebx, screen_addr ; <20><><EFBFBD><EFBFBD>樨 <20><> <20><>࠭<EFBFBD>
|
||||
cmp al, 8 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BkSpace
|
||||
je bs_pressed ; <20><> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 <20><>ࠡ<EFBFBD><E0A0A1>稪
|
||||
cmp al, 0 ;
|
||||
je skip_translate ;
|
||||
mov es:[ebx+0B8000h], al ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA0> ᨬ<><E1A8AC><EFBFBD> <20><> <20><>࠭
|
||||
add dword ptr screen_addr, 2; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>樨 <20><> 2
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ebx, screen_addr
|
||||
shr ebx, 1
|
||||
;! mov eax, ebx
|
||||
;! mov ebx, 2
|
||||
;!!! div ebx
|
||||
; mov ebx, eax
|
||||
; mov ebx, screen_addr
|
||||
; inc ebx
|
||||
xor edx, edx
|
||||
xor eax, eax
|
||||
mov dx, 03D4h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> CRT
|
||||
mov al, 0Fh ; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bl
|
||||
out dx, ax
|
||||
mov al, 0Eh ; <20> ॣ. <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bh
|
||||
out dx, ax
|
||||
jmp short skip_translate
|
||||
bs_pressed: ; <20><><EFBFBD><EFBFBD><EFBFBD> BkSpace:
|
||||
mov al,' ' ; <20>뢥<EFBFBD><EBA2A5><EFBFBD> <20><EFBFBD><E0AEA1>
|
||||
sub ebx, 2 ; <20> <20><><EFBFBD><EFBFBD>樨 <20>।<EFBFBD><E0A5A4><EFBFBD>饣<EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD>
|
||||
mov es:[ebx+0B8000h], al
|
||||
mov screen_addr, ebx ; <20> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4> ᨬ<><E1A8AC><EFBFBD><EFBFBD>,
|
||||
; <20><><EFBFBD> ⥪<>騩
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
shr ebx, 1
|
||||
;! mov eax, ebx
|
||||
;! mov ebx, 2
|
||||
;!!! div ebx
|
||||
; mov ebx, eax
|
||||
; mov ebx, screen_addr
|
||||
; inc ebx
|
||||
xor edx, edx
|
||||
xor eax, eax
|
||||
mov dx, 03D4h ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> CRT
|
||||
mov al, 0Fh ; <20><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bl
|
||||
out dx, ax
|
||||
mov al, 0Eh ; <20> ॣ. <20><><EFBFBD><EFBFBD>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah, bh
|
||||
out dx, ax
|
||||
|
||||
skip_translate:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
; <20><><EFBFBD><E1ABA0> EOI <20><><EFBFBD><EFBFBD><EFBFBD><E0AEAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
; <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
pop ds
|
||||
pop es
|
||||
pop edx
|
||||
pop ebx
|
||||
pop eax
|
||||
iretd
|
||||
|
||||
; *******************
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ESC
|
||||
esc_pressed:
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E1ABA0> EOI <20> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
or al, 80h
|
||||
out 61h, al
|
||||
mov al, 20h
|
||||
out 20h, al
|
||||
cli
|
||||
; <20>⪫<EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
in al, 61h
|
||||
and al, 0FCh
|
||||
out 61h, al
|
||||
pop ds
|
||||
pop es
|
||||
pop edx
|
||||
pop ebx
|
||||
pop eax
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6>
|
||||
|
||||
db 0EAh
|
||||
dd offset RM_return
|
||||
dw SEL_16bitCS
|
||||
PM_seg ends
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 16-<2D><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20><><EFBFBD>
|
||||
; 32-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>१ ᥫ<><E1A5AB><EFBFBD><EFBFBD><EFBFBD> SEL_32bitSS) <20> 32-<2D> <20><>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
Stack_seg segment para stack "STACK"
|
||||
stack_start db 100h dup(?)
|
||||
stack_l = $-stack_start ; <20><><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD> <20><><EFBFBD> <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD>樨 ESP
|
||||
Stack_seg ends
|
||||
end start
|
||||
30
Protect/PM_INT8.9/ReadMe.txt
Executable file
30
Protect/PM_INT8.9/ReadMe.txt
Executable file
@ -0,0 +1,30 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><EFBFBD> <20><>⮭<EFBFBD>, 2084/3
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
<09><><EFBFBD><EFBFBD>室 <20> <20><><EFBFBD><EFBFBD>魭<EFBFBD><E9ADAD><EFBFBD> ०<><E0A5A6>, <20><><EFBFBD><EFBFBD>墠<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> <20><> ⠩<><E2A0A9><EFBFBD><EFBFBD>(int8) <20> <20><><EFBFBD>-
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(int9). <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>䠢<EFBFBD>⭮-<2D><><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20>⮡ࠧ<E2AEA1><E0A0A7><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD>࠭<EFBFBD>, <20><>ࠫ<EFBFBD><E0A0AB><EFBFBD>쭮 <20>뢥<EFBFBD><EBA2A5><EFBFBD> <20><> PC Speaker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
<09><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><EFBFBD><E0AEA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<> mkpm.bat.
|
||||
<EFBFBD>訡<EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20> 䠩<><E4A0A9>
|
||||
errmsg.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ঠ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
||||
pm.asm - 䠩<> <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA5><EFBFBD>
|
||||
pm.exe - <20><><EFBFBD><EFBFBD>᪠<EFBFBD><E1AAA0><EFBFBD><EFBFBD> 䠩<> <20><EFBFBD><E0AEA5><EFBFBD>
|
||||
|
||||
pm1.asm - 䠩<> <20><>ࢮ<EFBFBD> <20><><EFBFBD>ᨨ <20><EFBFBD><E0AEA5><EFBFBD>, <20><><EFBFBD><EFBFBD>墠<EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ࠡ<EFBFBD>⪠
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1..+, BS.
|
||||
pm2.asm - 䠩<> <20><><EFBFBD>ன <20><><EFBFBD>ᨨ, <20><><EFBFBD><EFBFBD>墠<EFBFBD> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> ⠩<><E2A0A9><EFBFBD><EFBFBD>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뢮<EFBFBD>
|
||||
<09><>㪠.
|
||||
pm3.asm - ࠡ<><E0A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA5><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mk.bat c <20><>ࠬ<EFBFBD><E0A0AC> pm1, pm2,
|
||||
pm3, ᮮ⢥<E1AEAE><E2A2A5>⢥<EFBFBD><E2A2A5><EFBFBD>.
|
||||
|
||||
nosound.exe - <20>⪫<EFBFBD>砥<EFBFBD> <20><><EFBFBD>砭<EFBFBD><E7A0AD>, <20> <20><><EFBFBD>砥 <20><><EFBFBD><EFBFBD><EFBFBD>४⭮<E0A5AA> ࠡ<><E0A0A1><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD>⠫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9> - 䠩<><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騪<EFBFBD>.
|
||||
BIN
Protect/PM_INT8.9/TASM.EXE
Executable file
BIN
Protect/PM_INT8.9/TASM.EXE
Executable file
Binary file not shown.
BIN
Protect/PM_INT8.9/TLINK.EXE
Executable file
BIN
Protect/PM_INT8.9/TLINK.EXE
Executable file
Binary file not shown.
BIN
SCANCODE.COM
Executable file
BIN
SCANCODE.COM
Executable file
Binary file not shown.
3
asm/A.BAT
Executable file
3
asm/A.BAT
Executable file
@ -0,0 +1,3 @@
|
||||
tasm.exe vga.asm
|
||||
tlink.exe /t/x vga.obj
|
||||
vga.com
|
||||
1
asm/CMD.BAT
Executable file
1
asm/CMD.BAT
Executable file
@ -0,0 +1 @@
|
||||
%SystemRoot%\system32\cmd.exe
|
||||
BIN
asm/DPMILOAD.EXE
Executable file
BIN
asm/DPMILOAD.EXE
Executable file
Binary file not shown.
BIN
asm/DPMIMEM.DLL
Executable file
BIN
asm/DPMIMEM.DLL
Executable file
Binary file not shown.
BIN
asm/P_2.EXE
Executable file
BIN
asm/P_2.EXE
Executable file
Binary file not shown.
9
asm/P_2.MAP
Executable file
9
asm/P_2.MAP
Executable file
@ -0,0 +1,9 @@
|
||||
|
||||
Start Stop Length Name Class
|
||||
|
||||
00000H 000BFH 000C0H _TEXT CODE
|
||||
000C0H 000D8H 00019H _DATA DATA
|
||||
000E0H 001DFH 00100H STACK STACK
|
||||
|
||||
Program entry point at 0000:0000
|
||||
|
||||
BIN
asm/P_2.OBJ
Executable file
BIN
asm/P_2.OBJ
Executable file
Binary file not shown.
BIN
asm/TASM.EXE
Executable file
BIN
asm/TASM.EXE
Executable file
Binary file not shown.
BIN
asm/TD.EXE
Executable file
BIN
asm/TD.EXE
Executable file
Binary file not shown.
BIN
asm/TLINK.EXE
Executable file
BIN
asm/TLINK.EXE
Executable file
Binary file not shown.
2
asm/file.txt
Executable file
2
asm/file.txt
Executable file
@ -0,0 +1,2 @@
|
||||
Hello World sss dddd
|
||||
dfs
|
||||
BIN
asm/file2.txt
Executable file
BIN
asm/file2.txt
Executable file
Binary file not shown.
139
asm/p_2.asm
Executable file
139
asm/p_2.asm
Executable file
@ -0,0 +1,139 @@
|
||||
MASM
|
||||
MODEL small
|
||||
STACK 256
|
||||
.data
|
||||
buffer dw 1
|
||||
Handle dw 0
|
||||
Handle2 dw 0
|
||||
filename db 'file.txt', 0
|
||||
filename2 db 'file2.txt', 0
|
||||
.code
|
||||
|
||||
ASSUME ds:@data,es:@data
|
||||
main:
|
||||
mov ax,@data
|
||||
mov ds,ax
|
||||
mov es,0b:8000h
|
||||
;------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-------------
|
||||
|
||||
mov di,30h
|
||||
xor cx,cx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
mov bx,2 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx,1 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx,offset filename ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ah,3dh ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS
|
||||
int 21h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
mov [Handle], ax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov bx,ax
|
||||
jnc read ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
jc ex ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
read: mov ah, 3Fh
|
||||
mov cx,1
|
||||
mov dx, buffer
|
||||
int 21h
|
||||
|
||||
cmp ax, cx ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EOF
|
||||
jne eof ; <20><><EFBFBD><EFBFBD> EOF, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
push ax
|
||||
push bx
|
||||
mov bx,dx
|
||||
mov al,[bx]
|
||||
mov [di],ax
|
||||
pop bx
|
||||
pop ax
|
||||
|
||||
inc di
|
||||
; cmp [buffer], 13 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 13-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; je read
|
||||
; cmp [buffer], 10 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; je exit
|
||||
jmp read
|
||||
eof: mov bx, Handle ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
mov ah, 3Eh
|
||||
int 21h
|
||||
|
||||
cld
|
||||
sub di,30h
|
||||
mov ax,di
|
||||
mov cl,al
|
||||
mov ah,al
|
||||
mov al,' '
|
||||
mov di,30h
|
||||
jmp first
|
||||
ex: jmp exit
|
||||
first:
|
||||
mov al,'$'
|
||||
cmp [di],al
|
||||
mov al,' '
|
||||
je write;exit
|
||||
cmp [di],al
|
||||
je found
|
||||
inc di
|
||||
loop first
|
||||
|
||||
faild: jmp write
|
||||
|
||||
found: mov bx,di
|
||||
inc di
|
||||
cmp [di],al
|
||||
je found2
|
||||
jmp first
|
||||
found2:
|
||||
lea si,[di+1]
|
||||
mov ah, cl
|
||||
rep movsb
|
||||
dec ah
|
||||
mov cl,ah
|
||||
mov di,bx
|
||||
jmp found
|
||||
|
||||
write: ; xor cx,cx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
; mov bx,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; mov dx,1
|
||||
; mov dx,offset filename2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
; mov cx,5
|
||||
; mov ah,5bh ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS
|
||||
; int 21h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
; mov [Handle2], ax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
; mov bx,ax
|
||||
|
||||
|
||||
|
||||
xor cx,cx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
mov bx,0002h ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx,1 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dx,offset filename2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov al,0001h
|
||||
mov ah,3dh ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS
|
||||
int 21h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
mov [Handle2], ax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov bx,ax
|
||||
|
||||
|
||||
|
||||
mov di,30h
|
||||
; mov bx,
|
||||
xor ax,ax
|
||||
mov ah, 40h
|
||||
mov cx,30
|
||||
mov dx, di
|
||||
int 21h
|
||||
|
||||
mov ah,0dh
|
||||
int 21h
|
||||
|
||||
cmp ax, cx ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EOF
|
||||
|
||||
mov bx, Handle2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
mov ah, 3Eh
|
||||
int 21h
|
||||
jc exit ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
exit:
|
||||
mov ax,4c00h
|
||||
int 21h
|
||||
end main
|
||||
Reference in New Issue
Block a user