📄 outable.c
字号:
#include <stdio.h>
#include "o.h"
INST_T instr[] = {
mod_reg, 0, "add", /* ADD mem/reg,reg (byte) [00] */
mod_reg, 1, "add", /* ADD mem/reg,reg (word) [01] */
mod_reg, 2, "add", /* ADD reg,mem/reg (byte) [02] */
mod_reg, 3, "add", /* ADD reg,mem/reg (word) [03] */
two_byte, AL, "add", /* ADD AL,kk [04] */
three_byte, AX, "add", /* ADD AX,jjkk [05] */
one_byte, ES, "push", /* PUSH ES [06] */
one_byte, ES, "pop", /* POP ES [07] */
mod_reg, 0, "or", /* OR mem/reg,reg (byte) [08] */
mod_reg, 1, "or", /* OR mem/reg,reg (word) [09] */
mod_reg, 2, "or", /* OR reg,mem/reg (byte) [0A] */
mod_reg, 3, "or", /* OR reg,mem/reg (word) [0B] */
two_byte, AL, "or", /* OR AL,kk [0C] */
three_byte, AX, "or", /* OR AX,jjkk [0D] */
one_byte, CS, "push", /* PUSH CS [0E] */
extra, 0, "", /* not used [0F] */
mod_reg, 0, "adc", /* ADC mem/reg,reg (byte) [10] */
mod_reg, 1, "adc", /* ADC mem/reg,reg (word) [11] */
mod_reg, 2, "adc", /* ADC reg,mem/reg (byte) [12] */
mod_reg, 3, "adc", /* ADC reg,mem/reg (word) [13] */
two_byte, AL, "adc", /* ADC AL,kk [14] */
three_byte, AX, "adc", /* ADC AX,jjkk [15] */
one_byte, SS, "push", /* PUSH SS [16] */
one_byte, SS, "pop", /* POP SS [17] */
mod_reg, 0, "sbb", /* SBB mem/reg,reg (byte) [18] */
mod_reg, 1, "sbb", /* SBB mem/reg,reg (word) [19] */
mod_reg, 2, "sbb", /* SBB reg,mem/reg (byte) [1A] */
mod_reg, 3, "sbb", /* SBB reg,mem/reg (word) [1B] */
two_byte, AL, "sbb", /* SBB AL,kk [1C] */
three_byte, AX, "sbb", /* SBB AX,jjkk [1D] */
one_byte, DS, "push", /* PUSH DS [1E] */
one_byte, DS, "pop", /* POP DS [1F] */
mod_reg, 0, "and", /* AND mem/reg,reg (byte) [20] */
mod_reg, 1, "and", /* AND mem/reg,reg (word) [21] */
mod_reg, 2, "and", /* AND reg,mem/reg (byte) [22] */
mod_reg, 3, "and", /* AND reg,mem/reg (word) [23] */
two_byte, AL, "and", /* AND AL,kk [24] */
three_byte, AX, "and", /* AND AX,jjkk [25] */
seg_over, 0, "", /* SEGMENT OVERIDE "ES" [26] */
one_byte, NREG, "daa", /* DAA [27] */
mod_reg, 0, "sub", /* SUB mem/reg,reg (byte) [28] */
mod_reg, 1, "sub", /* SUB mem/reg,reg (word) [29] */
mod_reg, 2, "sub", /* SUB reg,mem/reg (byte) [2A] */
mod_reg, 3, "sub", /* SUB reg,mem/reg (word) [2B] */
two_byte, AL, "sub", /* SUB AL,kk [2C] */
three_byte, AX, "sub", /* SUB AX,jjkk [2D] */
seg_over, 0, "", /* SEGMENT OVERIDE "CS" [2E] */
one_byte, NREG, "das", /* DAS [2F] */
mod_reg, 0, "xor", /* XOR mem/reg,reg (byte) [30] */
mod_reg, 1, "xor", /* XOR mem/reg,reg (word) [31] */
mod_reg, 2, "xor", /* XOR reg,mem/reg (byte) [32] */
mod_reg, 3, "xor", /* XOR reg,mem/reg (word) [33] */
two_byte, AL, "xor", /* XOR AL,kk [34] */
three_byte, AX, "xor", /* XOR AX,jjkk [35] */
seg_over, 0, "", /* SEGMENT OVERIDE "SS" [36] */
one_byte, NREG, "aaa", /* AAA [37] */
mod_reg, 0, "cmp", /* CMP mem/reg,reg (byte) [38] */
mod_reg, 1, "cmp", /* CMP mem/reg,reg (word) [39] */
mod_reg, 2, "cmp", /* CMP reg,mem/reg (byte) [3A] */
mod_reg, 3, "cmp", /* CMP reg,mem/reg (word) [3B] */
two_byte, AL, "cmp", /* CMP AL,kk [3C] */
three_byte, AX, "cmp", /* CMP AX,jjkk [3D] */
seg_over, 0, "", /* SEGMENT OVERIDE "DS" [3E] */
one_byte, NREG, "aas", /* AAS [3F] */
one_byte, AX, "inc", /* INC AX [40] */
one_byte, CX, "inc", /* INC CX [41] */
one_byte, DX, "inc", /* INC DX [42] */
one_byte, BX, "inc", /* INC BX [43] */
one_byte, SP, "inc", /* INC SP [44] */
one_byte, BP, "inc", /* INC BP [45] */
one_byte, SI, "inc", /* INC SI [46] */
one_byte, DI, "inc", /* INC DI [47] */
one_byte, AX, "dec", /* DEC AX [48] */
one_byte, CX, "dec", /* DEC CX [49] */
one_byte, DX, "dec", /* DEC DX [4A] */
one_byte, BX, "dec", /* DEC BX [4B] */
one_byte, SP, "dec", /* DEC SP [4C] */
one_byte, BP, "dec", /* DEC BP [4D] */
one_byte, SI, "dec", /* DEC SI [4E] */
one_byte, DI, "dec", /* DEC DI [4F] */
one_byte, AX, "push", /* PUSH AX [50] */
one_byte, CX, "push", /* PUSH CX [51] */
one_byte, DX, "push", /* PUSH DX [52] */
one_byte, BX, "push", /* PUSH BX [53] */
one_byte, SP, "push", /* PUSH SP [54] */
one_byte, BP, "push", /* PUSH BP [55] */
one_byte, SI, "push", /* PUSH SI [56] */
one_byte, DI, "push", /* PUSH DI [57] */
one_byte, AX, "pop", /* POP AX [58] */
one_byte, CX, "pop", /* POP CX [59] */
one_byte, DX, "pop", /* POP DX [5A] */
one_byte, BX, "pop", /* POP BX [5B] */
one_byte, SP, "pop", /* POP SP [5C] */
one_byte, BP, "pop", /* POP BP [5D] */
one_byte, SI, "pop", /* POP SI [5E] */
one_byte, DI, "pop", /* POP DI [5F] */
one_byte, NREG, "pusha", /* PUSHA (PUSHAD on 386) [60] */
one_byte, NREG, "popa", /* POPA (POPAD on 386) [61] */
mod_reg, 17, "bound", /* BOUND [62] */
mod_reg, 1, "arpl", /* ARPL [63] */
seg_over, 0, "", /* SEGMENT OVERIDE "FS" on 386[64] */
seg_over, 0, "", /* SEGMENT OVERIDE "GS" on 386[65] */
opsize_over, 0, "", /* OPERAND SIZE OVERIDE on 386[66] */
adrsize_over, 0, "", /* ADDRESS SIZE OVERIDE on 386[67] */
three_byte, NREG, "push", /* PUSH (immediate word) [68] */
mod_reg, 24, "imul", /* IMUL reg,mem/reg,imm. word [69] */
two_ubyte, 0, "push\t", /* PUSH (immed. signed byte) [6A] */
mod_reg, 25, "imul", /* IMUL reg,mem/reg,imm. byte [6B] */
one_byte, NREG, "insb", /* INS BYTE [6C] */
one_byte, NREG, "insw", /* INS WORD [6D] */
one_byte, NREG, "outsb", /* OUTS BYTE [6E] */
one_byte, NREG, "outsw", /* OUTS WORD [6F] */
disp8, 0, "jo", /* JO <Label> [70] */
disp8, 0, "jno", /* JNO <Label> [71] */
disp8, 0, "jc", /* JC <Label> [72] */
disp8, 0, "jnc", /* JNC <Label> [73] */
disp8, 0, "jz", /* JZ <Label> [74] */
disp8, 0, "jnz", /* JNZ <Label> [75] */
disp8, 0, "jbe", /* JBE <Label> [76] */
disp8, 0, "jnbe", /* JNBE <Label> [77] */
disp8, 0, "js", /* JS <Label> [78] */
disp8, 0, "jns", /* JNS <Label> [79] */
disp8, 0, "jp", /* JP <Label> [7A] */
disp8, 0, "jnp", /* JNP <Label> [7B] */
disp8, 0, "jl", /* JL <Label> [7C] */
disp8, 0, "jnl", /* JNL <Label> [7D] */
disp8, 0, "jng", /* JG <Label> [7E] */
disp8, 0, "jg", /* JNG <Label> [7F] */
mod_reg, 4, "", /* Special mem/reg,kk [80] */
mod_reg, 5, "", /* Special mem/reg,jjkk [81] */
stub, 0, "", /* not used [82] */
mod_reg, 6, "", /* Special mem/reg,kk (word) [83] */
mod_reg, 2, "test", /* TEST mem/reg,reg (byte) [84] */
mod_reg, 3, "test", /* TEST mem/reg,reg (word) [85] */
mod_reg, 2, "xchg", /* XCHG reg,mem/reg (byte) [86] */
mod_reg, 3, "xchg", /* XCHG reg,mem/reg (word) [87] */
mod_reg, 0, "mov", /* MOV mem/reg,reg (byte) [88] */
mod_reg, 1, "mov", /* MOV mem/reg,reg (word) [89] */
mod_reg, 2, "mov", /* MOV reg,mem/reg (byte) [8A] */
mod_reg, 3, "mov", /* MOV reg,mem/reg (word) [8B] */
mod_reg, 7, "mov", /* MOV mem/reg,segreg [8C] */
mod_reg, 9, "lea", /* LEA reg,mem/reg [8D] */
mod_reg, 8, "mov", /* MOV segreg,mem/reg [8E] */
mod_reg, 10, "", /* POP mem/reg (Special) [8F] */
one_byte, NREG, "nop", /* NOP [90] */
one_a, CX, "xchg", /* XCHG AX,CX [91] */
one_a, DX, "xchg", /* XCHG AX,DX [92] */
one_a, BX, "xchg", /* XCHG AX,BX [93] */
one_a, SP, "xchg", /* XCHG AX,SP [94] */
one_a, BP, "xchg", /* XCHG AX,BP [95] */
one_a, SI, "xchg", /* XCHG AX,SI [96] */
one_a, DI, "xchg", /* XCHG AX,DI [97] */
one_byte, NREG, "cbw", /* CBW [98] */
one_byte, NREG, "cwd", /* CWD [99] */
five_byte, 0, "call", /* CALL <Label> [9A] */
wait, 0, "wait", /* WAIT [9B] */
one_byte, NREG, "pushf", /* PUSHF [9C] */
one_byte, NREG, "popf", /* POPF [9D] */
one_byte, NREG, "sahf", /* SAHF [9E] */
one_byte, NREG, "lahf", /* LAHF [9F] */
three_a, 0, "mov", /* MOV AL,addr [A0] */
three_a, 0, "mov", /* MOV AX,addr [A1] */
three_a, 0, "mov", /* MOV addr,AL [A2] */
three_a, 0, "mov", /* MOV addr,AX [A3] */
string_byte, 0, "movs", /* MOVS BYTE [A4] */
string_byte, 0, "movs", /* MOVS WORD [A5] */
string_byte, 0, "cmps", /* CMPS BYTE [A6] */
string_byte, 0, "cmps", /* CMPS WORD [A7] */
two_byte, AL, "test", /* TEST AL,addr [A8] */
three_byte, AX, "test", /* TEST AX,addr [A9] */
string_byte, 0, "stos", /* STOS BYTE [AA] */
string_byte, 0, "stos", /* STOS WORD [AB] */
string_byte, 0, "lods", /* LODS BYTE [AC] */
string_byte, 0, "lods", /* LODS WORD [AD] */
string_byte, 0, "scas", /* SCAS BYTE [AE] */
string_byte, 0, "scas", /* SCAS WORD [AF] */
two_byte, AL, "mov", /* MOV AL,kk [B0] */
two_byte, CL, "mov", /* MOV CL,kk [B1] */
two_byte, DL, "mov", /* MOV DL,kk [B2] */
two_byte, BL, "mov", /* MOV BL,kk [B3] */
two_byte, AH, "mov", /* MOV AH,kk [B4] */
two_byte, CH, "mov", /* MOV CH,kk [B5] */
two_byte, DH, "mov", /* MOV DH,kk [B6] */
two_byte, BH, "mov", /* MOV BH,kk [B7] */
three_byte, AX, "mov", /* MOV AX,kk [B8] */
three_byte, CX, "mov", /* MOV CX,kk [B9] */
three_byte, DX, "mov", /* MOV DX,kk [BA] */
three_byte, BX, "mov", /* MOV BX,kk [BB] */
three_byte, SP, "mov", /* MOV SP,kk [BC] */
three_byte, BP, "mov", /* MOV BP,kk [BD] */
three_byte, SI, "mov", /* MOV SI,kk [BE] */
three_byte, DI, "mov", /* MOV DI,kk [BF] */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -