亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dis_x86.lua

?? lua的即時編譯器。支持lua 5.1.2版本
?? LUA
?? 第 1 頁 / 共 2 頁
字號:
  if #hex > 16 then hex = sub(hex, 1, 16).."." end  if operands then text = text.." "..operands end  if ctx.o16 then text = "o16 "..text; ctx.o16 = false end  if ctx.rep then text = ctx.rep.." "..text; ctx.rep = false end  if ctx.seg then    local text2, n = gsub(text, "%[", "["..ctx.seg..":")    if n == 0 then text = ctx.seg.." "..text else text = text2 end    ctx.seg = false  end  if ctx.lock then text = "lock "..text; ctx.lock = false end  local imm = ctx.imm  if imm then    local sym = ctx.symtab[imm]    if sym then text = text.."\t->"..sym end  end  ctx.out(format("%08x  %-18s%s\n", ctx.addr+ctx.start, hex, text))  ctx.mrm = false  ctx.start = pos  ctx.imm = nilend-- Fallback for incomplete opcodes at the end.local function incomplete(ctx)  ctx.pos = ctx.stop+1  ctx.o16 = false; ctx.seg = false; ctx.lock = false; ctx.rep = false  return putop(ctx, "(incomplete)")end-- Fallback for unknown opcodes.local function unknown(ctx)  ctx.o16 = false; ctx.seg = false; ctx.lock = false; ctx.rep = false  return putop(ctx, "(unknown)")end-- Return an immediate of the specified size.local function getimm(ctx, pos, n)  if pos+n-1 > ctx.stop then return incomplete(ctx) end  local code = ctx.code  if n == 1 then    local b1 = byte(code, pos, pos)    return b1  elseif n == 2 then    local b1, b2 = byte(code, pos, pos+1)    return b1+b2*256  else    local b1, b2, b3, b4 = byte(code, pos, pos+3)    local imm = b1+b2*256+b3*65536+b4*16777216    ctx.imm = imm    return imm  endend-- Process pattern string and generate the operands.local function putpat(ctx, name, pat)  local operands, regs, sz, mode, sp, rm, sc, rx, disp, sdisp  local code, pos, stop = ctx.code, ctx.pos, ctx.stop  -- Chars used: 1DFGMPQRVWXacdfgijmoprsuwxyz  for p in gmatch(pat, ".") do    local x = nil    if p == "V" then      sz = ctx.o16 and "W" or "D"; ctx.o16 = false      regs = map_regs[sz]    elseif match(p, "[BWDQFGMX]") then      sz = p      regs = map_regs[sz]    elseif p == "P" then      sz = ctx.o16 and "X" or "M"; ctx.o16 = false      regs = map_regs[sz]    elseif p == "s" then      local imm = getimm(ctx, pos, 1); if not imm then return end      x = imm <= 127 and format("byte +0x%02x", imm)		     or format("byte -0x%02x", 256-imm)      pos = pos+1    elseif p == "u" then      local imm = getimm(ctx, pos, 1); if not imm then return end      x = format("0x%02x", imm)      pos = pos+1    elseif p == "w" then      local imm = getimm(ctx, pos, 2); if not imm then return end      x = format("0x%x", imm)      pos = pos+2    elseif p == "o" then -- [offset]      local imm = getimm(ctx, pos, 4); if not imm then return end      x = format("[0x%08x]", imm)      pos = pos+4    elseif p == "i" then      local n = map_sz2n[sz]      local imm = getimm(ctx, pos, n); if not imm then return end      x = format(imm > 65535 and "0x%08x" or "0x%x", imm)      pos = pos+n    elseif p == "j" then      local n = map_sz2n[sz]      local imm = getimm(ctx, pos, n); if not imm then return end      if sz == "B" and imm > 127 then imm = imm-256      elseif imm > 2147483647 then imm = imm-4294967296 end      pos = pos+n      imm = imm + pos + ctx.addr      ctx.imm = imm      x = sz == "W" and format("word 0x%04x", imm%65536)		    or format("0x%08x", imm)    elseif p == "R" then x = regs[byte(code, pos-1, pos-1)%8+1]    elseif p == "a" then x = regs[1]    elseif p == "c" then x = "cl"    elseif p == "d" then x = "dx"    elseif p == "1" then x = "1"    else      if not mode then	mode = ctx.mrm	if not mode then	  if pos > stop then return incomplete(ctx) end	  mode = byte(code, pos, pos)	  pos = pos+1	end	rm = mode%8; mode = (mode-rm)/8	sp = mode%8; mode = (mode-sp)/8	sdisp = ""	if mode < 3 then	  if rm == 4 then	    if pos > stop then return incomplete(ctx) end	    sc = byte(code, pos, pos)	    pos = pos+1	    rm = sc%8; sc = (sc-rm)/8	    rx = sc%8; sc = (sc-rx)/8	    if rx == 4 then rx = nil end	  end	  if mode > 0 or rm == 5 then	    local dsz = mode	    if dsz ~= 1 then dsz = 4 end	    disp = getimm(ctx, pos, dsz); if not disp then return end	    sdisp = (dsz == 4 or disp <= 127) and		    format(disp > 65535 and "+0x%08x" or "+0x%x", disp) or		    format("-0x%x", 256-disp)	    pos = pos+dsz	  end	end      end      if p == "m" then	if mode == 3 then x = regs[rm+1]	else	  local srm, srx = map_aregs[rm+1], ""	  if rx then	    srm = srm.."+"	    srx = map_aregs[rx+1]	    if sc > 0 then srx = srx.."*"..(2^sc) end	  end	  if mode == 0 and rm == 5 then	    srm = ""	    sdisp = format("%s0x%08x", rx and "+" or "", disp)	  end	  x = format("[%s%s%s]", srm, srx, sdisp)	end	if mode < 3 and	   (not match(pat, "[aRrgp]") or	    name == "movzx" or name == "movsx") then -- Yuck.	  x = map_sz2prefix[sz].." "..x	end      elseif p == "r" then x = regs[sp+1]      elseif p == "g" then x = map_segregs[sp+1]      elseif p == "p" then -- Suppress prefix.      elseif p == "f" then x = "st"..rm      elseif p == "x" then x = "CR"..sp      elseif p == "y" then x = "DR"..sp      elseif p == "z" then x = "TR"..sp      else	error("bad pattern `"..pat.."'")      end    end    if x then operands = operands and operands..","..x or x end  end  ctx.pos = pos  return putop(ctx, name, operands)end-- Forward declaration.local map_act-- Get a pattern from an opcode map and dispatch to handler.local function opcdispatch(ctx, opcmap)  local pos = ctx.pos  local opat = opcmap[byte(ctx.code, pos, pos)]  if not opat then return unknown(ctx) end  if match(opat, "%|") then -- MMX/SSE variants depending on prefix.    local p    if ctx.rep then p = ctx.rep=="rep" and "%|([^%|]*)" or "%|.-%|.-%|([^%|]*)"    elseif ctx.o16 then p = "%|.-%|([^%|]*)"    else p = "^[^%|]*" end    opat = match(opat, p)    if not opat or opat == "" then return unknown(ctx) end    ctx.rep = false; ctx.o16 = false  end  local name, pat, act = match(opat, "^([a-z0-9 ]*)((.?).*)")  ctx.pos = pos + 1  return map_act[act](ctx, name, pat)end-- Map for action codes. The key is the first char after the name.map_act = {  -- Simple opcodes without operands.  [""] = function(ctx, name, pat)    return putop(ctx, name)  end,  -- Operand size chars fall right through.  B = putpat, W = putpat, D = putpat, V = putpat,  F = putpat, G = putpat,  M = putpat, X = putpat, P = putpat,  -- Collect prefixes.  [":"] = function(ctx, name, pat)    ctx[pat == ":" and name or sub(pat, 2)] = name  end,  -- Select alternate opcode name when prefixed with o16.  ["/"] = function(ctx, name, pat)    local wname, rpat = match(pat, "^/([a-z0-9 ]+)(.*)")    if ctx.o16 then name = wname; ctx.o16 = false end    return putpat(ctx, name, rpat)  end,  -- Chain to special handler specified by name.  ["*"] = function(ctx, name, pat)    return map_act[name](ctx, name, sub(pat, 2))  end,  -- Use named subtable for opcode group.  ["!"] = function(ctx, name, pat)    local pos = ctx.pos    if pos > ctx.stop then return incomplete(ctx) end    local mrm = byte(ctx.code, pos, pos)    ctx.pos = pos+1    ctx.mrm = mrm    local opat = map_opcgroup[name][((mrm-(mrm%8))/8)%8+1]    if not opat then return unknown(ctx) end    local name, pat2 = match(opat, "^([a-z0-9 ]*)(.*)")    return putpat(ctx, name, pat2 ~= "" and pat2 or sub(pat, 2))  end,  -- Two-byte opcode dispatch.  opc2 = function(ctx, name, pat)    return opcdispatch(ctx, map_opc2)  end,  -- SSSE3 dispatch.  ssse3 = function(ctx, name, pat)    return opcdispatch(ctx, map_ssse3[pat])  end,  -- Floating point opcode dispatch.  fp = function(ctx, name, pat)    local pos = ctx.pos    if pos > ctx.stop then return incomplete(ctx) end    local mrm = byte(ctx.code, pos, pos)    ctx.pos = pos+1    ctx.mrm = mrm    local rm = mrm%8    local idx = pat*8 + ((mrm-rm)/8)%8    if mrm >= 192 then idx = idx + 64 end    local opat = map_opcfp[idx]    if type(opat) == "table" then opat = opat[rm+1] end    if not opat then return unknown(ctx) end    local name, pat2 = match(opat, "^([a-z0-9 ]*)(.*)")    return putpat(ctx, name, pat2)  end,}-------------------------------------------------------------------------------- Disassemble a block of code.local function disass_block(ctx, ofs, len)  if not ofs then ofs = 0 end  local stop = len and ofs+len or #ctx.code  ofs = ofs + 1  ctx.start = ofs  ctx.pos = ofs  ctx.stop = stop  ctx.imm = nil  ctx.mrm = false  ctx.o16 = false; ctx.seg = false; ctx.lock = false; ctx.rep = false  while ctx.pos <= stop do opcdispatch(ctx, map_opc1) end  if ctx.pos ~= ctx.start then incomplete(ctx) endend-- Extended API: create a disassembler context. Then call ctx:disass(ofs, len).local function create_(code, addr, out)  local ctx = {}  ctx.code = code  ctx.addr = (addr or 0) - 1  ctx.out = out or io.write  ctx.symtab = {}  ctx.disass = disass_block  return ctxend-- Simple API: disassemble code (a string) at address and output via out.local function disass_(code, addr, out)  create_(code, addr, out):disass()end-- Public module functions.module(...)create = create_disass = disass_

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
aaa欧美大片| 91色在线porny| 美女视频第一区二区三区免费观看网站| 91美女精品福利| 久久精品免费观看| 亚洲蜜臀av乱码久久精品 | 欧美性色黄大片| 国产91精品一区二区麻豆亚洲| 日韩专区一卡二卡| 午夜精品久久久| 日韩国产高清在线| 日本中文字幕不卡| 国产中文字幕一区| 国产精品香蕉一区二区三区| 亚洲午夜精品一区二区三区他趣| 日韩精品资源二区在线| 欧美一级黄色片| 91精品视频网| 久久综合狠狠综合久久综合88| 精品久久人人做人人爰| 久久久久久久久久电影| 国产精品久久午夜| 亚洲综合免费观看高清完整版| 午夜免费欧美电影| 久久精品国产秦先生| 国产乱子轮精品视频| 不卡av在线免费观看| 欧美性猛交一区二区三区精品| 欧美一区午夜视频在线观看| 精品黑人一区二区三区久久| 国产精品初高中害羞小美女文| 一区二区三区91| 蜜臀va亚洲va欧美va天堂| 丁香桃色午夜亚洲一区二区三区| 国产一区二区在线视频| 欧美日韩第一区日日骚| 欧美唯美清纯偷拍| 精品久久久久久亚洲综合网| 一区在线观看免费| 日本va欧美va欧美va精品| 国产白丝网站精品污在线入口| 色婷婷精品大在线视频| 久久综合久久综合九色| 亚洲综合色在线| 国产成人av电影在线| 欧美三区免费完整视频在线观看| 久久久久国产成人精品亚洲午夜| 亚洲一卡二卡三卡四卡五卡| 国产精一区二区三区| 欧美精品九九99久久| 99九九99九九九视频精品| 91精品国产麻豆国产自产在线 | 一本大道久久精品懂色aⅴ| 欧洲激情一区二区| 久久综合网色—综合色88| 亚洲欧美日韩中文播放| 韩国三级电影一区二区| 91精品久久久久久久91蜜桃| 国产精品夫妻自拍| 国产精品亚洲一区二区三区在线| 欧美视频一区二区| 中文字幕一区二区三区视频 | 国产视频一区二区三区在线观看| 亚洲.国产.中文慕字在线| 色综合久久综合| 国产精品久久免费看| 国产风韵犹存在线视精品| 精品久久久久av影院| 秋霞电影网一区二区| 正在播放亚洲一区| 亚洲成av人综合在线观看| 欧美综合欧美视频| 久久66热re国产| 欧美日韩国产三级| 日韩美女久久久| 99精品久久免费看蜜臀剧情介绍| 国产午夜精品福利| 国产精品一区二区三区四区| 精品不卡在线视频| 国产一区二区三区四区在线观看| 欧美一级淫片007| 美国欧美日韩国产在线播放| 91精品欧美一区二区三区综合在 | 成人av在线网站| 中文字幕中文乱码欧美一区二区| 成人小视频免费在线观看| 国产精品毛片无遮挡高清| 成人国产免费视频| 亚洲色图视频网| 久久久精品黄色| 捆绑变态av一区二区三区| 日韩视频一区二区三区| 热久久久久久久| 久久嫩草精品久久久精品| 国产精品中文字幕欧美| 国产精品福利影院| 在线观看中文字幕不卡| 日产欧产美韩系列久久99| 久久影院午夜论| 91在线播放网址| 日韩精品高清不卡| 久久久久久久久久久电影| 97精品久久久久中文字幕 | 精品88久久久久88久久久| 国产精品一区二区在线观看网站| 亚洲欧美在线视频| 欧美美女黄视频| 国产成人亚洲精品狼色在线| 亚洲美女电影在线| 精品精品欲导航| 亚洲自拍另类综合| 欧美—级在线免费片| 国产福利91精品| 亚洲综合清纯丝袜自拍| 久久一夜天堂av一区二区三区| caoporn国产精品| 亚洲成人tv网| 欧美国产1区2区| 欧美日韩在线三级| 成人综合激情网| 捆绑紧缚一区二区三区视频| 亚洲裸体xxx| 久久综合色综合88| 欧美精品乱码久久久久久| 99久久精品一区二区| 麻豆精品在线看| 亚洲国产aⅴ天堂久久| 国产精品视频免费看| 日韩一区二区三区高清免费看看 | 亚洲国产欧美在线人成| 国产日韩精品一区二区浪潮av| 欧美日韩三级视频| 亚洲欧美色综合| 紧缚捆绑精品一区二区| 中文字幕一区二区三区四区| 777久久久精品| 亚洲图片自拍偷拍| 国产亚洲一二三区| 欧美精品在线一区二区| 9i看片成人免费高清| 麻豆成人免费电影| 一区2区3区在线看| 3d成人h动漫网站入口| 欧美在线999| 福利视频网站一区二区三区| 五月天网站亚洲| 亚洲乱码国产乱码精品精的特点| 久久亚洲一区二区三区四区| 欧美日韩久久不卡| 久久精品视频一区| 国产亚洲精品资源在线26u| 欧美在线观看一二区| 成人av在线一区二区| 狠狠色狠狠色合久久伊人| 亚洲国产精品一区二区www在线 | 亚洲成人tv网| 亚洲视频 欧洲视频| 国产日韩视频一区二区三区| 国产午夜精品福利| 国产亚洲一区字幕| 久久综合久久鬼色| 日韩精品一区国产麻豆| 欧美成va人片在线观看| 欧美老肥妇做.爰bbww| 欧美视频中文字幕| 在线欧美日韩国产| 91片在线免费观看| a在线播放不卡| 99久久精品免费看国产| 亚洲国产sm捆绑调教视频 | 欧美国产精品专区| 暴力调教一区二区三区| av一本久道久久综合久久鬼色| 国产真实乱偷精品视频免| 捆绑变态av一区二区三区| 久久99久久精品| 丁香婷婷综合五月| 91在线观看免费视频| 99精品久久只有精品| 99久久久久久| 欧美一区二区三区在线电影 | 欧美一区二区三区思思人| 欧美老年两性高潮| 欧美mv日韩mv亚洲| 久久久精品综合| 国产精品福利影院| 亚洲第一福利视频在线| 视频一区二区三区中文字幕| 日本伊人精品一区二区三区观看方式| 性做久久久久久久久| 久久久久国产精品麻豆ai换脸| 欧美一级搡bbbb搡bbbb| 日韩精品一区二区三区蜜臀| 精品国产伦一区二区三区观看方式 | 日韩欧美一区中文| 久久久久国产精品麻豆ai换脸 | 精品对白一区国产伦| 欧美一区二区三区婷婷月色| 久久新电视剧免费观看| 亚洲欧洲一区二区三区|