⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pragmas.h

📁 小型游戏引擎
💻 H
📖 第 1 页 / 共 5 页
字号:
/* * "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 + -