Annotation of coherent/d/bin/db/i8086/i8086d.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * A debugger.
        !             3:  * Tables for the Intel 8086.
        !             4:  */
        !             5: #include <stdio.h>
        !             6: #include <sys/const.h>
        !             7: #include <l.out.h>
        !             8: #include "trace.h"
        !             9: #include "i8086.h"
        !            10: 
        !            11: /*
        !            12:  * Instruction table.
        !            13:  */
        !            14: INS insrtab[] ={
        !            15:        0x88,   0xFC,   "mov%0t\t%1d",
        !            16:        0xC6,   0xFE,   "mov%0t\t%nf0m,$%ik",
        !            17:        0xB0,   0xF0,   "mov%3t\t%0r,$%ik",
        !            18:        0xA0,   0xFE,   "mov%0t\t%x,%:wp",
        !            19:        0xA2,   0xFE,   "mov%0t\t%:wp,%x",
        !            20:        0x8E,   0xFF,   "mov\t%n5z3s,%m",
        !            21:        0x8C,   0xFF,   "mov\t%n5zm,%3s",
        !            22:        0xFF,   0xFF,   "push\t%nf6m",
        !            23:        0x50,   0xF8,   "push\t%0r",
        !            24:        0x06,   0xE7,   "push\t%3s",
        !            25:        0x8F,   0xFF,   "pop\t%nf0m",
        !            26:        0x58,   0xF8,   "pop\t%0r",
        !            27:        0x07,   0xE7,   "pop\t%3s",
        !            28:        0x86,   0xFE,   "xchg%0t\t%n3r,%m",
        !            29:        0x90,   0xF8,   "xchg\t%x,%0r",
        !            30:        0xE4,   0xFE,   "in%0t\t%x,%bl",
        !            31:        0xEC,   0xFE,   "in%0t\t%x,dx",
        !            32:        0xE6,   0xFE,   "out%0t\t%bl,%x",
        !            33:        0xEE,   0xFE,   "out%0t\tdx,%x",
        !            34:        0xD7,   0xFF,   "xlat",
        !            35:        0x8D,   0xFF,   "lea\t%n3r,%m",
        !            36:        0xC5,   0xFF,   "lds\t%n3r,%m",
        !            37:        0xC4,   0xFF,   "les\t%n3r,%m",
        !            38:        0x9F,   0xFF,   "lahf",
        !            39:        0x9E,   0xFF,   "sahf",
        !            40:        0x9C,   0xFF,   "pushf",
        !            41:        0x9D,   0xFF,   "popf",
        !            42:        0x00,   0xFC,   "add%0t\t%1d",
        !            43:        0x80,   0xFC,   "add%0t\t%1enf0m,$%ik",
        !            44:        0x04,   0xFE,   "add%0t\t%x,$%ik",
        !            45:        0x10,   0xFC,   "adc%0t\t%1d",
        !            46:        0x80,   0xFC,   "adc%0t\t%1enf2m,$%ik",
        !            47:        0x14,   0xFE,   "adc%0t\t%x,$%ik",
        !            48:        0xFE,   0xFE,   "inc%0t\t%nf0m",
        !            49:        0x40,   0xF8,   "inc\t%0r",
        !            50:        0x37,   0xFF,   "aaa",
        !            51:        0x27,   0xFF,   "daa",
        !            52:        0x28,   0xFC,   "sub%0t\t%1d",
        !            53:        0x80,   0xFC,   "sub%0t\t%1enf5m,$%ik",
        !            54:        0x2C,   0xFE,   "sub%0t\t%x,$%ik",
        !            55:        0x18,   0xFC,   "sbb%0t\t%1d",
        !            56:        0x80,   0xFC,   "sbb%0t\t%1enf3m,$%ik",
        !            57:        0x1C,   0xFE,   "sbb%0t\t%x,$%ik",
        !            58:        0xFE,   0xFE,   "dec%0t\t%nf1m",
        !            59:        0x48,   0xF8,   "dec\t%0r",
        !            60:        0xF6,   0xFE,   "neg%0t\t%nf3m",
        !            61:        0x38,   0xFC,   "cmp%0t\t%1d",
        !            62:        0x80,   0xFC,   "cmp%0t\t%1enf7m,$%ik",
        !            63:        0x3C,   0xFE,   "cmp%0t\t%x,$%ik",
        !            64:        0x3F,   0xFF,   "aas",
        !            65:        0x2F,   0xFF,   "das",
        !            66:        0xF6,   0xFE,   "mul%0t\t%x,%nf4m",
        !            67:        0xF6,   0xFE,   "imul%0t\t%x,%nf5m",
        !            68:        0xD4,   0xFF,   "aam%n%g",
        !            69:        0xF6,   0xFE,   "div%0t\t%x,%nf6m",
        !            70:        0xF6,   0xFE,   "idiv%0t\t%x,%nf7m",
        !            71:        0xD5,   0xFF,   "aad%n%g",
        !            72:        0x98,   0xFF,   "cbw",
        !            73:        0x99,   0xFF,   "cwd",
        !            74:        0xF6,   0xFE,   "not%0t\t%nf2m",
        !            75:        0xD0,   0xFC,   "shl%0t\t%nf4m,%1v",
        !            76:        0xD0,   0xFC,   "shr%0t\t%nf5m,%1v",
        !            77:        0xD0,   0xFC,   "sar%0t\t%nf7m,%1v",
        !            78:        0xD0,   0xFC,   "rol%0t\t%nf0m,%1v",
        !            79:        0xD0,   0xFC,   "ror%0t\t%nf1m,%1v",
        !            80:        0xD0,   0xFC,   "rcl%0t\t%nf2m,%1v",
        !            81:        0xD0,   0xFC,   "rcr%0t\t%nf3m,%1v",
        !            82:        0x20,   0xFC,   "and%0t\t%1d",
        !            83:        0x80,   0xFE,   "and%0t\t%nf4m,$%ik",
        !            84:        0x24,   0xFE,   "and%0t\t%x,$%ik",
        !            85:        0x10,   0xFC,   "test%0t\t%1d",
        !            86:        0xF6,   0xFE,   "test%0t\t%nf0m,$%ik",
        !            87:        0xA8,   0xFE,   "test%0t\t%x,$%ik",
        !            88:        0x08,   0xFC,   "or%0t\t%1d",
        !            89:        0x80,   0xFE,   "or%0t\t%nf1m,$%ik",
        !            90:        0x0C,   0xFE,   "or%0t\t%x,$%ik",
        !            91:        0x30,   0xFC,   "xor%0t\t%1d",
        !            92:        0x34,   0xFE,   "xor%0t\t%nf6m,$%ik",
        !            93:        0x34,   0xFE,   "xor%0t\t%x,$%ik",
        !            94:        0xF2,   0xFF,   "rep",
        !            95:        0xF3,   0xFF,   "repnz",
        !            96:        0xA4,   0xFE,   "movs%0t",
        !            97:        0xA6,   0xFE,   "cmps%0t",
        !            98:        0xAE,   0xFE,   "scas%0t",
        !            99:        0xAC,   0xFE,   "lods%0t",
        !           100:        0xAA,   0xFE,   "stos%0t",
        !           101:        0xE8,   0xFF,   "call\t%woq",
        !           102:        0xFF,   0xFF,   "icall\t%nf2m",
        !           103:        0x9A,   0xFF,   "xcall\t%wP",
        !           104:        0xFF,   0xFF,   "xcall\t%nf3m",
        !           105:        0xE9,   0xFF,   "jmp\t%wol",
        !           106:        0xEB,   0xFF,   "jmp\t%bol",
        !           107:        0xFF,   0xFF,   "ijmp\t%nf4m",
        !           108:        0xEA,   0xFF,   "xjmp\t%wP",
        !           109:        0xFF,   0xFF,   "xjmp\t%nf5m",
        !           110:        0xC3,   0xFF,   "ret",
        !           111:        0xC2,   0xFF,   "ret\t%wk",
        !           112:        0xCB,   0xFF,   "xret",
        !           113:        0xCA,   0xFF,   "xret\t%wk",
        !           114:        0x70,   0xF0,   "%j\t%bol",
        !           115:        0xE2,   0xFF,   "loop\t%bol",
        !           116:        0xE1,   0xFF,   "loope\t%bol",
        !           117:        0xE0,   0xFF,   "loopne\t%bol",
        !           118:        0xE3,   0xFF,   "jcxz\t%bol",
        !           119:        0xCD,   0xFF,   "%uy",
        !           120:        0xCC,   0xFF,   "int\t3",
        !           121:        0xCE,   0xFF,   "into",
        !           122:        0xCF,   0xFF,   "iret",
        !           123:        0xF8,   0xFF,   "clc",
        !           124:        0xF5,   0xFF,   "cmc",
        !           125:        0xF9,   0xFF,   "stc",
        !           126:        0xFC,   0xFF,   "cld",
        !           127:        0xFD,   0xFF,   "std",
        !           128:        0xFA,   0xFF,   "cli",
        !           129:        0xFB,   0xFF,   "sti",
        !           130:        0xF4,   0xFF,   "hlt",
        !           131:        0x9B,   0xFF,   "wait",
        !           132:        0xD8,   0xF8,   "%F",
        !           133:        0xF0,   0xFF,   "lock",
        !           134:        0x00,   0x00,   NULL
        !           135: };
        !           136: 
        !           137: /*
        !           138:  * 8087 Instruction table.
        !           139:  * The bits considered are the last 3 bits of the ESC
        !           140:  * instruction and the next instruction byte.
        !           141:  */
        !           142: INS    fpinstab[] = {
        !           143:        0x000, 0x138,   "fadd?",
        !           144:        0x0C0, 0x1F8,   "fadd\tST(i)?",
        !           145:        0x020, 0x130,   "fsubb?",
        !           146:        0x0E0, 0x1F0,   "fsub\tST(i)?",
        !           147:        0x008, 0x138,   "fmul?",
        !           148:        0x0C8, 0x1F8,   "fmul\tST(i)?",
        !           149:        0x030, 0x130,   "fdiv?",
        !           150:        0x0F0, 0x1F0,   "fdiv\tST(i)?",
        !           151:        0x1FA, 0x7FF,   "fsqrt",
        !           152:        0x1FD, 0x7FF,   "fscale",
        !           153:        0x1F8, 0x7FF,   "fprem",
        !           154:        0x1FC, 0x7FF,   "frndint",
        !           155:        0x1F4, 0x7FF,   "fxtract",
        !           156:        0x1E1, 0x7FF,   "fabs",
        !           157:        0x1E0, 0x7FF,   "fchs",
        !           158:        0x1F2, 0x7FF,   "fptan",
        !           159:        0x1F3, 0x7FF,   "fpatan",
        !           160:        0x1F0, 0x7FF,   "f2xm1",
        !           161:        0x1F1, 0x7FF,   "fyl2x",
        !           162:        0x1F9, 0x7FF,   "fyl2p1",
        !           163:        0x1EE, 0x7FF,   "fldz",
        !           164:        0x1E8, 0x7FF,   "fld1",
        !           165:        0x1EB, 0x7FF,   "fldpi",
        !           166:        0x1E9, 0x7FF,   "fldl2t",
        !           167:        0x1EA, 0x7FF,   "fldl2e",
        !           168:        0x1EC, 0x7FF,   "fldlg2",
        !           169:        0x1ED, 0x7FF,   "fldln2",
        !           170:        0x3E3, 0x7FF,   "finit",
        !           171:        0x3E0, 0x77FF,  "feni",
        !           172:        0x3E1, 0x7FF,   "fdisi",
        !           173:        0x128, 0x738,   "fldcw?",
        !           174:        0x138, 0x738,   "fstcw?",
        !           175:        0x538, 0x738,   "fstsw?",
        !           176:        0x3E2, 0x7FF,   "fclex",
        !           177:        0x130, 0x738,   "fstenv?",
        !           178:        0x120, 0x738,   "fldenv?",
        !           179:        0x530, 0x738,   "fsave?",
        !           180:        0x520, 0x738,   "frstor?",
        !           181:        0x1F7, 0x7FF,   "fincstp",
        !           182:        0x1F6, 0x7FF,   "fdecstp",
        !           183:        0x5C0, 0x7F8,   "ffree\tST(i)?",
        !           184:        0x1D0, 0x7FF,   "fnop",
        !           185: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.