📄 assyntax.h
字号:
#define D_REGBID(b, i, d) QWORD_PTR [b + i + d]
#define L_REGBID(b, i, d) DWORD_PTR [b + i + d]
#define W_REGBID(b, i, d) WORD_PTR [b + i + d]
#define B_REGBID(b, i, d) BYTE_PTR [b + i + d]
/* Reg indirect Base + (Index * Scale) */
#define P_REGBIS(b, i, s) [b + i * s]
#define X_REGBIS(b, i, s) TBYTE_PTR [b + i * s]
#define D_REGBIS(b, i, s) QWORD_PTR [b + i * s]
#define L_REGBIS(b, i, s) DWORD_PTR [b + i * s]
#define W_REGBIS(b, i, s) WORD_PTR [b + i * s]
#define B_REGBIS(b, i, s) BYTE_PTR [b + i * s]
/* Reg indirect Base + (Index * Scale) + Displacement */
#define P_REGBISD(b, i, s, d) [b + i * s + d]
#define X_REGBISD(b, i, s, d) TBYTE_PTR [b + i * s + d]
#define D_REGBISD(b, i, s, d) QWORD_PTR [b + i * s + d]
#define L_REGBISD(b, i, s, d) DWORD_PTR [b + i * s + d]
#define W_REGBISD(b, i, s, d) WORD_PTR [b + i * s + d]
#define B_REGBISD(b, i, s, d) BYTE_PTR [b + i * s + d]
/* Displaced Scaled Index: */
#define P_REGDIS(d, i, s) [i * s + d]
#define X_REGDIS(d, i, s) TBYTE_PTR [i * s + d]
#define D_REGDIS(d, i, s) QWORD_PTR [i * s + d]
#define L_REGDIS(d, i, s) DWORD_PTR [i * s + d]
#define W_REGDIS(d, i, s) WORD_PTR [i * s + d]
#define B_REGDIS(d, i, s) BYTE_PTR [i * s + d]
/* Indexed Base: */
#define P_REGBI(b, i) [b + i]
#define X_REGBI(b, i) TBYTE_PTR [b + i]
#define D_REGBI(b, i) QWORD_PTR [b + i]
#define L_REGBI(b, i) DWORD_PTR [b + i]
#define W_REGBI(b, i) WORD_PTR [b + i]
#define B_REGBI(b, i) BYTE_PTR [b + i]
/* Displaced Base: */
#define P_REGDB(d, b) [b + d]
#define X_REGDB(d, b) TBYTE_PTR [b + d]
#define D_REGDB(d, b) QWORD_PTR [b + d]
#define L_REGDB(d, b) DWORD_PTR [b + d]
#define W_REGDB(d, b) WORD_PTR [b + d]
#define B_REGDB(d, b) BYTE_PTR [b + d]
/* Variable indirect: */
#define VARINDIRECT(var) [var]
/* Use register contents as jump/call target: */
#define CODEPTR(reg) P_(reg)
/*
* Redefine assembler commands
*/
#define P_(a) P_ ## a
#define X_(a) X_ ## a
#define D_(a) D_ ## a
#define SR_(a) W_ ## a
#define S_(a) L_ ## a
#define L_(a) L_ ## a
#define W_(a) W_ ## a
#define B_(a) B_ ## a
#define AAA aaa
#define AAD aad
#define AAM aam
#define AAS aas
#define ADC_L(a, b) adc L_(b), L_(a)
#define ADC_W(a, b) adc W_(b), W_(a)
#define ADC_B(a, b) adc B_(b), B_(a)
#define ADD_L(a, b) add L_(b), L_(a)
#define ADD_W(a, b) add W_(b), W_(a)
#define ADD_B(a, b) add B_(b), B_(a)
#define AND_L(a, b) and L_(b), L_(a)
#define AND_W(a, b) and W_(b), W_(a)
#define AND_B(a, b) and B_(b), B_(a)
#define ARPL(a,b) arpl W_(b), a
#define BOUND_L(a, b) bound L_(b), L_(a)
#define BOUND_W(a, b) bound W_(b), W_(a)
#define BSF_L(a, b) bsf L_(b), L_(a)
#define BSF_W(a, b) bsf W_(b), W_(a)
#define BSR_L(a, b) bsr L_(b), L_(a)
#define BSR_W(a, b) bsr W_(b), W_(a)
#define BT_L(a, b) bt L_(b), L_(a)
#define BT_W(a, b) bt W_(b), W_(a)
#define BTC_L(a, b) btc L_(b), L_(a)
#define BTC_W(a, b) btc W_(b), W_(a)
#define BTR_L(a, b) btr L_(b), L_(a)
#define BTR_W(a, b) btr W_(b), W_(a)
#define BTS_L(a, b) bts L_(b), L_(a)
#define BTS_W(a, b) bts W_(b), W_(a)
#define CALL(a) call a
#define CALLF(s,a) call far s:a
#define CBW cbw
#define CWDE cwde
#define CLC clc
#define CLD cld
#define CLI cli
#define CLTS clts
#define CMC cmc
#define CMP_L(a, b) cmp L_(b), L_(a)
#define CMP_W(a, b) cmp W_(b), W_(a)
#define CMP_B(a, b) cmp B_(b), B_(a)
#define CMPS_L cmpsd
#define CMPS_W cmpsw
#define CMPS_B cmpsb
#define CPUID cpuid
#define CWD cwd
#define CDQ cdq
#define DAA daa
#define DAS das
#define DEC_L(a) dec L_(a)
#define DEC_W(a) dec W_(a)
#define DEC_B(a) dec B_(a)
#define DIV_L(a) div L_(a)
#define DIV_W(a) div W_(a)
#define DIV_B(a) div B_(a)
#define ENTER(a,b) enter b, a
#define HLT hlt
#define IDIV_L(a) idiv L_(a)
#define IDIV_W(a) idiv W_(a)
#define IDIV_B(a) idiv B_(a)
#define IMUL_L(a, b) imul L_(b), L_(a)
#define IMUL_W(a, b) imul W_(b), W_(a)
#define IMUL_B(a) imul B_(a)
#define IN_L in EAX, DX
#define IN_W in AX, DX
#define IN_B in AL, DX
#define IN1_L(a) in1 L_(a)
#define IN1_W(a) in1 W_(a)
#define IN1_B(a) in1 B_(a)
#define INC_L(a) inc L_(a)
#define INC_W(a) inc W_(a)
#define INC_B(a) inc B_(a)
#define INS_L ins
#define INS_W ins
#define INS_B ins
#define INT(a) int B_(a)
#define INT3 int3
#define INTO into
#define IRET iret
#define IRETD iretd
#define JA(a) ja NEAR a
#define JAE(a) jae NEAR a
#define JB(a) jb NEAR a
#define JBE(a) jbe NEAR a
#define JC(a) jc NEAR a
#define JE(a) je NEAR a
#define JG(a) jg NEAR a
#define JGE(a) jge NEAR a
#define JL(a) jl NEAR a
#define JLE(a) jle NEAR a
#define JNA(a) jna NEAR a
#define JNAE(a) jnae NEAR a
#define JNB(a) jnb NEAR a
#define JNBE(a) jnbe NEAR a
#define JNC(a) jnc NEAR a
#define JNE(a) jne NEAR a
#define JNG(a) jng NEAR a
#define JNGE(a) jnge NEAR a
#define JNL(a) jnl NEAR a
#define JNLE(a) jnle NEAR a
#define JNO(a) jno NEAR a
#define JNP(a) jnp NEAR a
#define JNS(a) jns NEAR a
#define JNZ(a) jnz NEAR a
#define JO(a) jo NEAR a
#define JP(a) jp NEAR a
#define JPE(a) jpe NEAR a
#define JPO(a) jpo NEAR a
#define JS(a) js NEAR a
#define JZ(a) jz NEAR a
#define JMP(a) jmp a
#define JMPF(s,a) jmp far s:a
#define LAHF lahf
#define LAR(a, b) lar b, a
#define LEA_L(a, b) lea P_(b), P_(a)
#define LEA_W(a, b) lea P_(b), P_(a)
#define LEAVE leave
#define LGDT(a) lgdt a
#define LIDT(a) lidt a
#define LDS(a, b) lds b, P_(a)
#define LES(a, b) les b, P_(a)
#define LFS(a, b) lfs b, P_(a)
#define LGS(a, b) lgs b, P_(a)
#define LSS(a, b) lss b, P_(a)
#define LLDT(a) lldt a
#define LMSW(a) lmsw a
#define LOCK lock
#define LODS_L lodsd
#define LODS_W lodsw
#define LODS_B lodsb
#define LOOP(a) loop a
#define LOOPE(a) loope a
#define LOOPZ(a) loopz a
#define LOOPNE(a) loopne a
#define LOOPNZ(a) loopnz a
#define LSL(a, b) lsl b, a
#define LTR(a) ltr a
#define MOV_SR(a, b) mov SR_(b), SR_(a)
#define MOV_L(a, b) mov L_(b), L_(a)
#define MOV_W(a, b) mov W_(b), W_(a)
#define MOV_B(a, b) mov B_(b), B_(a)
#define MOVS_L movsd
#define MOVS_W movsw
#define MOVS_B movsb
#define MOVSX_BL(a, b) movsx B_(b), B_(a)
#define MOVSX_BW(a, b) movsx B_(b), B_(a)
#define MOVSX_WL(a, b) movsx W_(b), W_(a)
#define MOVZX_BL(a, b) movzx B_(b), B_(a)
#define MOVZX_BW(a, b) movzx B_(b), B_(a)
#define MOVZX_WL(a, b) movzx W_(b), W_(a)
#define MUL_L(a) mul L_(a)
#define MUL_W(a) mul W_(a)
#define MUL_B(a) mul B_(a)
#define NEG_L(a) neg L_(a)
#define NEG_W(a) neg W_(a)
#define NEG_B(a) neg B_(a)
#define NOP nop
#define NOT_L(a) not L_(a)
#define NOT_W(a) not W_(a)
#define NOT_B(a) not B_(a)
#define OR_L(a,b) or L_(b), L_(a)
#define OR_W(a,b) or W_(b), W_(a)
#define OR_B(a,b) or B_(b), B_(a)
#define OUT_L out DX, EAX
#define OUT_W out DX, AX
#define OUT_B out DX, AL
#define OUT1_L(a) out1 L_(a)
#define OUT1_W(a) out1 W_(a)
#define OUT1_B(a) out1 B_(a)
#define OUTS_L outsd
#define OUTS_W outsw
#define OUTS_B outsb
#define POP_SR(a) pop SR_(a)
#define POP_L(a) pop L_(a)
#define POP_W(a) pop W_(a)
#define POPA_L popad
#define POPA_W popa
#define POPF_L popfd
#define POPF_W popf
#define PUSH_SR(a) push SR_(a)
#define PUSH_L(a) push L_(a)
#define PUSH_W(a) push W_(a)
#define PUSH_B(a) push B_(a)
#define PUSHA_L pushad
#define PUSHA_W pusha
#define PUSHF_L pushfd
#define PUSHF_W pushf
#define RCL_L(a, b) rcl L_(b), L_(a)
#define RCL_W(a, b) rcl W_(b), W_(a)
#define RCL_B(a, b) rcl B_(b), B_(a)
#define RCR_L(a, b) rcr L_(b), L_(a)
#define RCR_W(a, b) rcr W_(b), W_(a)
#define RCR_B(a, b) rcr B_(b), B_(a)
#define RDTSC rdtsc
#define ROL_L(a, b) rol L_(b), L_(a)
#define ROL_W(a, b) rol W_(b), W_(a)
#define ROL_B(a, b) rol B_(b), B_(a)
#define ROR_L(a, b) ror L_(b), L_(a)
#define ROR_W(a, b) ror W_(b), W_(a)
#define ROR_B(a, b) ror B_(b), B_(a)
#define REP rep
#define REPE repe
#define REPNE repne
#define REPNZ REPNE
#define REPZ REPE
#define RET ret
#define SAHF sahf
#define SAL_L(a, b) sal L_(b), B_(a)
#define SAL_W(a, b) sal W_(b), B_(a)
#define SAL_B(a, b) sal B_(b), B_(a)
#define SAR_L(a, b) sar L_(b), B_(a)
#define SAR_W(a, b) sar W_(b), B_(a)
#define SAR_B(a, b) sar B_(b), B_(a)
#define SBB_L(a, b) sbb L_(b), L_(a)
#define SBB_W(a, b) sbb W_(b), W_(a)
#define SBB_B(a, b) sbb B_(b), B_(a)
#define SCAS_L scas
#define SCAS_W scas
#define SCAS_B scas
#define SETA(a) seta a
#define SETAE(a) setae a
#define SETB(a) setb a
#define SETBE(a) setbe a
#define SETC(a) setc a
#define SETE(a) sete a
#define SETG(a) setg a
#define SETGE(a) setge a
#define SETL(a) setl a
#define SETLE(a) setle a
#define SETNA(a) setna a
#define SETNAE(a) setnae a
#define SETNB(a) setnb a
#define SETNBE(a) setnbe a
#define SETNC(a) setnc a
#define SETNE(a) setne a
#define SETNG(a) setng a
#define SETNGE(a) setnge a
#define SETNL(a) setnl a
#define SETNLE(a) setnle a
#define SETNO(a) setno a
#define SETNP(a) setnp a
#define SETNS(a) setns a
#define SETNZ(a) setnz a
#define SETO(a) seto a
#define SETP(a) setp a
#define SETPE(a) setpe a
#define SETPO(a) setpo a
#define SETS(a) sets a
#define SETZ(a) setz a
#define SGDT(a) sgdt a
#define SIDT(a) sidt a
#define SHL_L(a, b) shl L_(b), B_(a)
#define SHL_W(a, b) shl W_(b), B_(a)
#define SHL_B(a, b) shl B_(b), B_(a)
#define SHLD_L(a,b,c) shld
#define SHLD2_L(a,b) shld L_(b), L_(a)
#define SHLD_W(a,b,c) shld
#define SHLD2_W(a,b) shld W_(b), W_(a)
#define SHR_L(a, b) shr L_(b), B_(a)
#define SHR_W(a, b) shr W_(b), B_(a)
#define SHR_B(a, b) shr B_(b), B_(a)
#define SHRD_L(a,b,c) shrd
#define SHRD2_L(a,b) shrd L_(b), L_(a)
#define SHRD_W(a,b,c) shrd
#define SHRD2_W(a,b) shrd W_(b), W_(a)
#define SLDT(a) sldt a
#define SMSW(a) smsw a
#define STC stc
#define STD std
#define STI sti
#define STOS_L stosd
#define STOS_W stosw
#define STOS_B stosb
#define STR(a) str a
#define SUB_L(a, b) sub L_(b), L_(a)
#define SUB_W(a, b) sub W_(b), W_(a)
#define SUB_B(a, b) sub B_(b), B_(a)
#define TEST_L(a, b) test L_(b), L_(a)
#define TEST_W(a, b) test W_(b), W_(a)
#define TEST_B(a, b) test B_(b), B_(a)
#define VERR(a) verr a
#define VERW(a) verw a
#define WAIT wait
#define XCHG_L(a, b) xchg L_(b), L_(a)
#define XCHG_W(a, b) xchg W_(b), W_(a)
#define XCHG_B(a, b) xchg B_(b), B_(a)
#define XLAT xlat
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -