摘要:
add dword [eax+ebx*8+0x3C00], edx: 1. 找到对应指令和操作码: Opcode=01 # /r:表示指令的ModR/M中包含一个寄存器操作数和一个R/M操作数。 2. 查看ModR/M寻址方式表: # [--][--]:表示ModR/M后有SIB。 # ModR/M 阅读全文
posted @ 2021-09-08 12:24
HyperVS
阅读(278)
评论(0)
推荐(0)
摘要:
mov word [bx+si+3], 0xAA55: 1. 找到对应指令和操作码: Opcode=C7 ModR/M.Reg/Opcode=000 # /digit:digit是0~7间的数字。将其转换成二进制对应于ModR/M中的Reg/Opcode字段。 # iw:表示指令中的立即数是2字节。 阅读全文
posted @ 2021-09-08 12:23
HyperVS
阅读(227)
评论(0)
推荐(0)
摘要:
mov al, cl: 1. 找到对应指令和操作码: Opcode=88 # /r:表示指令的ModR/M中包含一个寄存器操作数和一个R/M操作数。 2. 查看ModR/M寻址方式表: # ModR/M.Mod=11 # ModR/M.Reg/Opcode=001 # ModR/M.R/M=000 阅读全文
posted @ 2021-09-08 12:23
HyperVS
阅读(221)
评论(0)
推荐(0)
摘要:
mov cl, 3: 1. 找到对应指令和操作码: Opcode=B0+rb # +rb:表示操作码的低3位用于在不需要ModR/M的情况下编码寄存器操作数。 # ib:表示指令中的立即数是1字节。 2. 由于Opcode需要'+rb',找到cl寄存器的编号: 寄存器编号=1 Opcode=B0+1 阅读全文
posted @ 2021-09-08 12:23
HyperVS
阅读(488)
评论(0)
推荐(0)
摘要:
ModR/M: # Mod & R/M:Mod字段与R/M字段组合形成寻址模式。 # Reg/Opcode:寄存器编号或操作码的扩展。 SIB: # Scale:比例因子# Index:索引寄存器的寄存器编号# Base:基址寄存器的寄存器编号 ModR/M 寻址方式表: 16bits 32bits 阅读全文
posted @ 2021-09-08 12:22
HyperVS
阅读(349)
评论(0)
推荐(0)
摘要:
指令前缀分为4组: 1. 锁定和重复前缀 2. 段超越前缀、分支提示前缀 3. 操作数尺寸反转前缀 4. 有效地址尺寸反转前缀 锁定和重复前缀: F0H-LOCK F2H-REPNE/REPNZ F3H-REP/REPE/REPZ 段超越前缀: 2EH-CS 36H-SS 3EH-DS 26H-ES 阅读全文
posted @ 2021-09-08 08:44
HyperVS
阅读(341)
评论(0)
推荐(0)
摘要:
# Prefix:指令前缀,每个前缀1字节,最多4个前缀。如段超越前缀、总线封锁前缀、重复前缀等。 # Opcode:操作码,1~3字节。用于指定该条指令进行的操作。 # ModR/M:寻址方式。寄存器与内存间操作或寄存器与寄存器间操作。1字节。 # SIB:对#ModR/M的补充。包含比例因子、索 阅读全文
posted @ 2021-09-08 07:36
HyperVS
阅读(401)
评论(0)
推荐(0)

浙公网安备 33010602011771号