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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? m68k-dis.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
      break;    case '~':      mask = M (0,0,1,1,1,1,1,1,1,0,0,0);      break;    case '%':      mask = M (1,1,1,1,1,1,1,1,1,0,0,0);      break;    case ';':      mask = M (1,0,1,1,1,1,1,1,1,1,1,1);      break;    case '@':      mask = M (1,0,1,1,1,1,1,1,1,1,1,0);      break;    case '!':      mask = M (0,0,1,0,0,1,1,1,1,1,1,0);      break;    case '&':      mask = M (0,0,1,0,0,1,1,1,1,0,0,0);      break;    case '$':      mask = M (1,0,1,1,1,1,1,1,1,0,0,0);      break;    case '?':      mask = M (1,0,1,0,0,1,1,1,1,0,0,0);      break;    case '/':      mask = M (1,0,1,0,0,1,1,1,1,1,1,0);      break;    case '|':      mask = M (0,0,1,0,0,1,1,1,1,1,1,0);      break;    case '>':      mask = M (0,0,1,0,1,1,1,1,1,0,0,0);      break;    case '<':      mask = M (0,0,1,1,0,1,1,1,1,1,1,0);      break;    case 'm':      mask = M (1,1,1,1,1,0,0,0,0,0,0,0);      break;    case 'n':      mask = M (0,0,0,0,0,1,0,0,0,1,0,0);      break;    case 'o':      mask = M (0,0,0,0,0,0,1,1,1,0,1,1);      break;    case 'p':      mask = M (1,1,1,1,1,1,0,0,0,0,0,0);      break;    case 'q':      mask = M (1,0,1,1,1,1,0,0,0,0,0,0);      break;    case 'v':      mask = M (1,0,1,1,1,1,0,1,1,0,0,0);      break;    case 'b':      mask = M (1,0,1,1,1,1,0,0,0,1,0,0);      break;    case 'w':      mask = M (0,0,1,1,1,1,0,0,0,1,0,0);      break;    case 'y':      mask = M (0,0,1,0,0,1,0,0,0,0,0,0);      break;    case 'z':      mask = M (0,0,1,0,0,1,0,0,0,1,0,0);      break;    case '4':      mask = M (0,0,1,1,1,1,0,0,0,0,0,0);      break;    default:      abort ();    }#undef M  mode = (val >> 3) & 7;  if (mode == 7)    mode += val & 7;  return (mask & (1 << mode)) != 0;}/* Print a base register REGNO and displacement DISP, on INFO->STREAM.   REGNO = -1 for pc, -2 for none (suppressed).  */static voidprint_base (int regno, bfd_vma disp, disassemble_info *info){  if (regno == -1)    {      (*info->fprintf_func) (info->stream, "%%pc@(");      (*info->print_address_func) (disp, info);    }  else    {      char buf[50];      if (regno == -2)	(*info->fprintf_func) (info->stream, "@(");      else if (regno == -3)	(*info->fprintf_func) (info->stream, "%%zpc@(");      else	(*info->fprintf_func) (info->stream, "%s@(", reg_names[regno]);      sprintf_vma (buf, disp);      (*info->fprintf_func) (info->stream, "%s", buf);    }}/* Print an indexed argument.  The base register is BASEREG (-1 for pc).   P points to extension word, in buffer.   ADDR is the nominal core address of that extension word.  */static unsigned char *print_indexed (int basereg,	       unsigned char *p,	       bfd_vma addr,	       disassemble_info *info){  int word;  static char *const scales[] = { "", ":2", ":4", ":8" };  bfd_vma base_disp;  bfd_vma outer_disp;  char buf[40];  char vmabuf[50];  word = NEXTWORD (p);  /* Generate the text for the index register.     Where this will be output is not yet determined.  */  sprintf (buf, "%s:%c%s",	   reg_names[(word >> 12) & 0xf],	   (word & 0x800) ? 'l' : 'w',	   scales[(word >> 9) & 3]);  /* Handle the 68000 style of indexing.  */  if ((word & 0x100) == 0)    {      base_disp = word & 0xff;      if ((base_disp & 0x80) != 0)	base_disp -= 0x100;      if (basereg == -1)	base_disp += addr;      print_base (basereg, base_disp, info);      (*info->fprintf_func) (info->stream, ",%s)", buf);      return p;    }  /* Handle the generalized kind.  */  /* First, compute the displacement to add to the base register.  */  if (word & 0200)    {      if (basereg == -1)	basereg = -3;      else	basereg = -2;    }  if (word & 0100)    buf[0] = '\0';  base_disp = 0;  switch ((word >> 4) & 3)    {    case 2:      base_disp = NEXTWORD (p);      break;    case 3:      base_disp = NEXTLONG (p);    }  if (basereg == -1)    base_disp += addr;  /* Handle single-level case (not indirect).  */  if ((word & 7) == 0)    {      print_base (basereg, base_disp, info);      if (buf[0] != '\0')	(*info->fprintf_func) (info->stream, ",%s", buf);      (*info->fprintf_func) (info->stream, ")");      return p;    }  /* Two level.  Compute displacement to add after indirection.  */  outer_disp = 0;  switch (word & 3)    {    case 2:      outer_disp = NEXTWORD (p);      break;    case 3:      outer_disp = NEXTLONG (p);    }  print_base (basereg, base_disp, info);  if ((word & 4) == 0 && buf[0] != '\0')    {      (*info->fprintf_func) (info->stream, ",%s", buf);      buf[0] = '\0';    }  sprintf_vma (vmabuf, outer_disp);  (*info->fprintf_func) (info->stream, ")@(%s", vmabuf);  if (buf[0] != '\0')    (*info->fprintf_func) (info->stream, ",%s", buf);  (*info->fprintf_func) (info->stream, ")");  return p;}/* Returns number of bytes "eaten" by the operand, or   return -1 if an invalid operand was found, or -2 if   an opcode tabe error was found.   ADDR is the pc for this arg to be relative to.  */static intprint_insn_arg (const char *d,		unsigned char *buffer,		unsigned char *p0,		bfd_vma addr,		disassemble_info *info){  int val = 0;  int place = d[1];  unsigned char *p = p0;  int regno;  const char *regname;  unsigned char *p1;  double flval;  int flt_p;  bfd_signed_vma disp;  unsigned int uval;  switch (*d)    {    case 'c':		/* Cache identifier.  */      {        static char *const cacheFieldName[] = { "nc", "dc", "ic", "bc" };        val = fetch_arg (buffer, place, 2, info);        (*info->fprintf_func) (info->stream, cacheFieldName[val]);        break;      }    case 'a':		/* Address register indirect only. Cf. case '+'.  */      {        (*info->fprintf_func)	  (info->stream,	   "%s@",	   reg_names[fetch_arg (buffer, place, 3, info) + 8]);        break;      }    case '_':		/* 32-bit absolute address for move16.  */      {        uval = NEXTULONG (p);	(*info->print_address_func) (uval, info);        break;      }    case 'C':      (*info->fprintf_func) (info->stream, "%%ccr");      break;    case 'S':      (*info->fprintf_func) (info->stream, "%%sr");      break;    case 'U':      (*info->fprintf_func) (info->stream, "%%usp");      break;    case 'E':      (*info->fprintf_func) (info->stream, "%%acc");      break;    case 'G':      (*info->fprintf_func) (info->stream, "%%macsr");      break;    case 'H':      (*info->fprintf_func) (info->stream, "%%mask");      break;    case 'J':      {	/* FIXME: There's a problem here, different m68k processors call the	   same address different names. This table can't get it right	   because it doesn't know which processor it's disassembling for.  */	static const struct { char *name; int value; } names[]	  = {{"%sfc", 0x000}, {"%dfc", 0x001}, {"%cacr", 0x002},	     {"%tc",  0x003}, {"%itt0",0x004}, {"%itt1", 0x005},             {"%dtt0",0x006}, {"%dtt1",0x007}, {"%buscr",0x008},	     {"%usp", 0x800}, {"%vbr", 0x801}, {"%caar", 0x802},	     {"%msp", 0x803}, {"%isp", 0x804},	     {"%flashbar", 0xc04}, {"%rambar", 0xc05}, /* mcf528x added these.  */	     /* Should we be calling this psr like we do in case 'Y'?  */	     {"%mmusr",0x805},             {"%urp", 0x806}, {"%srp", 0x807}, {"%pcr", 0x808}};	val = fetch_arg (buffer, place, 12, info);	for (regno = sizeof names / sizeof names[0] - 1; regno >= 0; regno--)	  if (names[regno].value == val)	    {	      (*info->fprintf_func) (info->stream, "%s", names[regno].name);	      break;	    }	if (regno < 0)	  (*info->fprintf_func) (info->stream, "%d", val);      }      break;    case 'Q':      val = fetch_arg (buffer, place, 3, info);      /* 0 means 8, except for the bkpt instruction... */      if (val == 0 && d[1] != 's')	val = 8;      (*info->fprintf_func) (info->stream, "#%d", val);      break;    case 'x':      val = fetch_arg (buffer, place, 3, info);      /* 0 means -1.  */      if (val == 0)	val = -1;      (*info->fprintf_func) (info->stream, "#%d", val);      break;    case 'M':      if (place == 'h')	{	  static char *const scalefactor_name[] = { "<<", ">>" };	  val = fetch_arg (buffer, place, 1, info);	  (*info->fprintf_func) (info->stream, scalefactor_name[val]);	}      else	{	  val = fetch_arg (buffer, place, 8, info);	  if (val & 0x80)	    val = val - 0x100;	  (*info->fprintf_func) (info->stream, "#%d", val);	}      break;    case 'T':      val = fetch_arg (buffer, place, 4, info);      (*info->fprintf_func) (info->stream, "#%d", val);      break;    case 'D':      (*info->fprintf_func) (info->stream, "%s",			     reg_names[fetch_arg (buffer, place, 3, info)]);      break;    case 'A':      (*info->fprintf_func)	(info->stream, "%s",	 reg_names[fetch_arg (buffer, place, 3, info) + 010]);      break;    case 'R':      (*info->fprintf_func)	(info->stream, "%s",	 reg_names[fetch_arg (buffer, place, 4, info)]);      break;    case 'r':      regno = fetch_arg (buffer, place, 4, info);      if (regno > 7)	(*info->fprintf_func) (info->stream, "%s@", reg_names[regno]);      else	(*info->fprintf_func) (info->stream, "@(%s)", reg_names[regno]);      break;    case 'F':      (*info->fprintf_func)	(info->stream, "%%fp%d",	 fetch_arg (buffer, place, 3, info));      break;    case 'O':      val = fetch_arg (buffer, place, 6, info);      if (val & 0x20)	(*info->fprintf_func) (info->stream, "%s", reg_names[val & 7]);      else	(*info->fprintf_func) (info->stream, "%d", val);      break;    case '+':      (*info->fprintf_func)	(info->stream, "%s@+",	 reg_names[fetch_arg (buffer, place, 3, info) + 8]);      break;    case '-':      (*info->fprintf_func)	(info->stream, "%s@-",	 reg_names[fetch_arg (buffer, place, 3, info) + 8]);      break;    case 'k':      if (place == 'k')	(*info->fprintf_func)	  (info->stream, "{%s}",	   reg_names[fetch_arg (buffer, place, 3, info)]);      else if (place == 'C')	{	  val = fetch_arg (buffer, place, 7, info);	  if (val > 63)		/* This is a signed constant.  */	    val -= 128;	  (*info->fprintf_func) (info->stream, "{#%d}", val);	}      else	return -2;      break;    case '#':    case '^':      p1 = buffer + (*d == '#' ? 2 : 4);      if (place == 's')	val = fetch_arg (buffer, place, 4, info);      else if (place == 'C')	val = fetch_arg (buffer, place, 7, info);      else if (place == '8')	val = fetch_arg (buffer, place, 3, info);      else if (place == '3')	val = fetch_arg (buffer, place, 8, info);      else if (place == 'b')	val = NEXTBYTE (p1);      else if (place == 'w' || place == 'W')	val = NEXTWORD (p1);      else if (place == 'l')	val = NEXTLONG (p1);      else	return -2;      (*info->fprintf_func) (info->stream, "#%d", val);      break;    case 'B':

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产| 国产高清成人在线| 国产成人av电影在线观看| 97se亚洲国产综合自在线 | 日韩av在线播放中文字幕| av男人天堂一区| 中文字幕一区二区三区不卡在线| 国产盗摄精品一区二区三区在线| 久久无码av三级| 麻豆传媒一区二区三区| 日韩欧美黄色影院| 久久国产乱子精品免费女| 精品国产一区二区三区久久影院| 国产精选一区二区三区| 亚洲天堂中文字幕| 欧美美女喷水视频| 国内精品伊人久久久久av影院 | 一区二区三区在线观看国产| 欧美性三三影院| 国产成人综合视频| 久久久久综合网| 欧美中文字幕亚洲一区二区va在线| 国产精品乱人伦中文| 国产精品影视在线| 亚洲一区二区成人在线观看| 精品久久久久久无| 欧美视频在线一区二区三区| 狠狠狠色丁香婷婷综合激情| 亚洲女人的天堂| 久久久久久毛片| 欧美一区二区观看视频| 99riav久久精品riav| 韩国中文字幕2020精品| 亚洲第一主播视频| 亚洲欧美日韩国产手机在线| 亚洲国产高清aⅴ视频| 精品久久99ma| 精品国产一区a| 日韩一级成人av| 在线成人免费观看| 欧美精品在线一区二区三区| 99久久久精品免费观看国产蜜| 欧美日韩国产高清一区二区三区| 国内精品自线一区二区三区视频| 青青草国产精品97视觉盛宴| 一区二区在线免费观看| 国产精品福利av| 国产免费久久精品| 视频一区在线视频| 美女免费视频一区二区| 日韩午夜av电影| 精品一区二区三区视频在线观看 | 91精品福利在线一区二区三区| 中文字幕在线观看一区二区| 91精品国产品国语在线不卡 | 日本不卡高清视频| 三级影片在线观看欧美日韩一区二区 | 中文字幕第一区| 国产精品伦理在线| 亚洲三级电影全部在线观看高清| 亚洲人成小说网站色在线| 国产精品国产自产拍在线| 国产精品二区一区二区aⅴ污介绍| 一区二区在线观看不卡| 亚洲一级二级三级| 毛片不卡一区二区| 成人精品国产免费网站| 波多野结衣91| 日韩一区二区三区电影在线观看| 日韩欧美专区在线| 久久久久久久久99精品| 亚洲欧洲性图库| 亚洲福中文字幕伊人影院| 蜜臀91精品一区二区三区| 成人精品国产一区二区4080| 91精彩视频在线| 日本一区二区免费在线| 午夜视频在线观看一区二区三区| 久久97超碰色| 欧美日韩三级一区二区| 久久久久久久久久久电影| 亚洲综合色区另类av| 久久国产精品区| 欧美一区欧美二区| 亚洲精品视频一区| 成人免费视频一区| 日韩精品在线一区二区| 亚洲成人av在线电影| 成人国产亚洲欧美成人综合网| 欧美三级蜜桃2在线观看| 国产精品卡一卡二卡三| 美女视频黄免费的久久| 91.xcao| 亚洲免费大片在线观看| 99视频在线精品| 国产欧美日韩在线| 久久超碰97中文字幕| 日韩欧美一二三四区| 日韩电影免费在线| 日韩一级片网站| 国产一区欧美二区| 日韩欧美一区中文| 免费成人性网站| 久久综合久久久久88| 亚洲mv大片欧洲mv大片精品| 欧美视频在线一区| 日韩中文字幕不卡| 欧美一级xxx| 国产剧情在线观看一区二区| 日韩午夜av一区| 狠狠色2019综合网| 国产精品伦理在线| 日韩一区和二区| 国产精品123| 亚洲自拍另类综合| 日韩一区二区三区观看| 国产一区二区网址| 午夜久久福利影院| 精品国产凹凸成av人导航| 高清不卡一二三区| 亚洲成av人片在线| 久久精品夜色噜噜亚洲aⅴ| 成人av免费在线观看| 日韩高清不卡一区二区三区| 久久久久久久久久久黄色| 在线一区二区三区四区| 狠狠久久亚洲欧美| 洋洋av久久久久久久一区| 久久综合五月天婷婷伊人| 99视频国产精品| 国产精品一区免费在线观看| 亚洲乱码国产乱码精品精小说| 日韩一级免费观看| 91国偷自产一区二区开放时间 | 亚洲成人动漫在线免费观看| 久久久久久**毛片大全| 欧美剧情电影在线观看完整版免费励志电影| 久久精品99国产精品日本| 亚洲国产日韩一区二区| 秋霞午夜av一区二区三区| 中文字幕av在线一区二区三区| 欧美视频三区在线播放| 97久久精品人人做人人爽| 国产乱一区二区| 韩国av一区二区三区四区 | 亚洲午夜电影在线观看| 亚洲欧美日韩人成在线播放| 中文字幕精品一区二区三区精品| 欧美大片在线观看一区| 国产片一区二区| 日韩视频在线一区二区| 欧美一区欧美二区| 欧美成人猛片aaaaaaa| 久久久高清一区二区三区| 欧美精品一区二区三区久久久| 欧美一区二区国产| 久久免费电影网| 国产精品久久久一本精品| 亚洲自拍偷拍综合| 六月丁香综合在线视频| 国产在线播精品第三| 亚洲一区av在线| 亚洲日本va午夜在线电影| 久久亚洲二区三区| 欧美一级艳片视频免费观看| 欧美一区二区久久久| 欧美成人三级在线| 国产精品天干天干在线综合| 亚洲午夜精品一区二区三区他趣| 婷婷成人综合网| 欧美一区二区三区成人| 蜜桃av噜噜一区二区三区小说| 国产精品亚洲一区二区三区在线 | 国产欧美一二三区| 中文字幕一区二区三区四区| 香蕉影视欧美成人| 国模套图日韩精品一区二区| 91麻豆免费在线观看| 欧美日韩五月天| 精品国产乱码久久久久久1区2区| 日韩精品一区国产麻豆| 国产精品网站在线| 国产精品自产自拍| 4438成人网| 亚洲一区在线电影| 国产成人自拍在线| 欧美精品黑人性xxxx| 欧美激情中文字幕| 国产经典欧美精品| 精品美女在线播放| 亚洲午夜精品一区二区三区他趣| 国产盗摄精品一区二区三区在线 | 亚洲特级片在线| 97久久久精品综合88久久| 日韩精品一区在线| 亚洲欧美成aⅴ人在线观看| 麻豆精品一区二区三区| 欧美在线小视频| 亚洲r级在线视频| 精品视频999|