📄 pragmas.h
字号:
/* * "Build Engine & Tools" Copyright (c) 1993-1997 Ken Silverman * Ken Silverman's official web site: "http://www.advsys.net/ken" * See the included license file "BUILDLIC.TXT" for license info. * This file has been modified from Ken Silverman's original release */#ifndef __PRAGMAS_H__#define __PRAGMAS_H__#if (defined __WATCOMC__)static long dmval = 0;long is_vmware_running(void);#pragma aux is_vmware_running modify exact [eax ebx ecx edx];unsigned long getkensmessagecrc(long param);#pragma aux getkensmessagecrc =\ "xor eax, eax",\ "mov ecx, 32",\ "beg: mov edx, dword ptr [ebx+ecx*4-4]",\ "ror edx, cl",\ "adc eax, edx",\ "bswap eax",\ "loop short beg",\ parm [ebx]\ modify exact [eax ebx ecx edx]\long msqrtasm(int param);#pragma aux msqrtasm =\ "mov eax, 0x40000000",\ "mov ebx, 0x20000000",\ "begit: cmp ecx, eax",\ "jl skip",\ "sub ecx, eax",\ "lea eax, [eax+ebx*4]",\ "skip: sub eax, ebx",\ "shr eax, 1",\ "shr ebx, 2",\ "jnz begit",\ "cmp ecx, eax",\ "sbb eax, -1",\ "shr eax, 1",\ parm nomemory [ecx]\ modify exact [eax ebx ecx]\int sqr(int i1);#pragma aux sqr =\ "imul eax, eax",\ parm nomemory [eax]\ modify exact [eax]\ value [eax]long scale(long i1, long i2, long i3);#pragma aux scale =\ "imul edx",\ "idiv ecx",\ parm nomemory [eax][edx][ecx]\ modify exact [eax edx]\long mulscale(long i1, long i2, long i3);#pragma aux mulscale =\ "imul edx",\ "shrd eax, edx, cl",\ parm nomemory [eax][edx][ecx]\ modify exact [eax edx]\long mulscale1(long i1, long i2);#pragma aux mulscale1 =\ "imul edx",\ "shrd eax, edx, 1",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale2(long i1, long i2);#pragma aux mulscale2 =\ "imul edx",\ "shrd eax, edx, 2",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale3(long i1, long i2);#pragma aux mulscale3 =\ "imul edx",\ "shrd eax, edx, 3",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale4(long i1, long i2);#pragma aux mulscale4 =\ "imul edx",\ "shrd eax, edx, 4",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale5(long i1, long i2);#pragma aux mulscale5 =\ "imul edx",\ "shrd eax, edx, 5",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale6(long i1, long i2);#pragma aux mulscale6 =\ "imul edx",\ "shrd eax, edx, 6",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale7(long i1, long i2);#pragma aux mulscale7 =\ "imul edx",\ "shrd eax, edx, 7",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale8(long i1, long i2);#pragma aux mulscale8 =\ "imul edx",\ "shrd eax, edx, 8",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale9(long i1, long i2);#pragma aux mulscale9 =\ "imul edx",\ "shrd eax, edx, 9",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale10(long i1, long i2);#pragma aux mulscale10 =\ "imul edx",\ "shrd eax, edx, 10",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale11(long i1, long i2);#pragma aux mulscale11 =\ "imul edx",\ "shrd eax, edx, 11",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale12(long i1, long i2);#pragma aux mulscale12 =\ "imul edx",\ "shrd eax, edx, 12",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale13(long i1, long i2);#pragma aux mulscale13 =\ "imul edx",\ "shrd eax, edx, 13",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale14(long i1, long i2);#pragma aux mulscale14 =\ "imul edx",\ "shrd eax, edx, 14",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale15(long i1, long i2);#pragma aux mulscale15 =\ "imul edx",\ "shrd eax, edx, 15",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale16(long i1, long i2);#pragma aux mulscale16 =\ "imul edx",\ "shrd eax, edx, 16",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale17(long i1, long i2);#pragma aux mulscale17 =\ "imul edx",\ "shrd eax, edx, 17",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale18(long i1, long i2);#pragma aux mulscale18 =\ "imul edx",\ "shrd eax, edx, 18",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale19(long i1, long i2);#pragma aux mulscale19 =\ "imul edx",\ "shrd eax, edx, 19",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale20(long i1, long i2);#pragma aux mulscale20 =\ "imul edx",\ "shrd eax, edx, 20",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale21(long i1, long i2);#pragma aux mulscale21 =\ "imul edx",\ "shrd eax, edx, 21",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale22(long i1, long i2);#pragma aux mulscale22 =\ "imul edx",\ "shrd eax, edx, 22",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale23(long i1, long i2);#pragma aux mulscale23 =\ "imul edx",\ "shrd eax, edx, 23",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale24(long i1, long i2);#pragma aux mulscale24 =\ "imul edx",\ "shrd eax, edx, 24",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale25(long i1, long i2);#pragma aux mulscale25 =\ "imul edx",\ "shrd eax, edx, 25",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale26(long i1, long i2);#pragma aux mulscale26 =\ "imul edx",\ "shrd eax, edx, 26",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale27(long i1, long i2);#pragma aux mulscale27 =\ "imul edx",\ "shrd eax, edx, 27",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale28(long i1, long i2);#pragma aux mulscale28 =\ "imul edx",\ "shrd eax, edx, 28",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale29(long i1, long i2);#pragma aux mulscale29 =\ "imul edx",\ "shrd eax, edx, 29",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale30(long i1, long i2);#pragma aux mulscale30 =\ "imul edx",\ "shrd eax, edx, 30",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale31(long i1, long i2);#pragma aux mulscale31 =\ "imul edx",\ "shrd eax, edx, 31",\ parm nomemory [eax][edx]\ modify exact [eax edx]\long mulscale32(long i1, long i2);#pragma aux mulscale32 =\ "imul edx",\ parm nomemory [eax][edx]\ modify exact [eax edx]\ value [edx]\long dmulscale(long i1, long i2, long i3, long i4, long i5);#pragma aux dmulscale =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, cl",\ parm nomemory [eax][edx][esi][edi][ecx]\ modify exact [eax ebx edx esi]\long dmulscale1(long i1, long i2, long i3, long i4);#pragma aux dmulscale1 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 1",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale2(long i1, long i2, long i3, long i4);#pragma aux dmulscale2 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 2",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale3(long i1, long i2, long i3, long i4);#pragma aux dmulscale3 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 3",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale4(long i1, long i2, long i3, long i4);#pragma aux dmulscale4 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 4",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale5(long i1, long i2, long i3, long i4);#pragma aux dmulscale5 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 5",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale6(long i1, long i2, long i3, long i4);#pragma aux dmulscale6 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 6",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale7(long i1, long i2, long i3, long i4);#pragma aux dmulscale7 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 7",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale8(long i1, long i2, long i3, long i4);#pragma aux dmulscale8 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 8",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale9(long i1, long i2, long i3, long i4);#pragma aux dmulscale9 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 9",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale10(long i1, long i2, long i3, long i4);#pragma aux dmulscale10 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 10",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale11(long i1, long i2, long i3, long i4);#pragma aux dmulscale11 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 11",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale12(long i1, long i2, long i3, long i4);#pragma aux dmulscale12 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 12",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale13(long i1, long i2, long i3, long i4);#pragma aux dmulscale13 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 13",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale14(long i1, long i2, long i3, long i4);#pragma aux dmulscale14 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 14",\ parm nomemory [eax][edx][esi][edi]\ modify exact [eax ebx edx esi]\long dmulscale15(long i1, long i2, long i3, long i4);#pragma aux dmulscale15 =\ "imul edx",\ "mov ebx, eax",\ "mov eax, esi",\ "mov esi, edx",\ "imul edi",\ "add eax, ebx",\ "adc edx, esi",\ "shrd eax, edx, 15",\ parm nomemory [eax][edx][esi][edi]\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -