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

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

?? uc.cc

?? Small Device C Compiler 面向Inter8051
?? CC
?? 第 1 頁 / 共 3 頁
字號:
      if (mems->count < type)    m= (class cl_mem *)(mems->at(MEM_DUMMY));  else    m= (class cl_mem *)(mems->at(type));  return(m);}class cl_mem *cl_uc::mem(char *class_name){  int i, found= 0;  char *mcn, *n, *s;  if (!class_name)    return(0);  s= n= strdup(class_name);  while (*s)    {      *s= toupper(*s);      s++;    }  if (!class_name ||      !(*class_name))    return(0);  for (i= 0; !found && i < mems->count; i++)    {      cl_mem *m= (cl_mem *)(mems->at(i));      if (!m ||	  !m->class_name ||	  !(*(m->class_name)))	continue;      s= mcn= strdup(m->class_name);      while (*s)	{	  *s= toupper(*s);	  s++;	}      if (strstr(/*m->class_name*/mcn,/*class_name*/n) == /*m->class_name*/mcn)	found= 1;      free(mcn);      if (found)	{	  free(n);	  return(m);	}    }  free(n);  return(0);}static longReadInt(FILE *f, bool *ok, int bytes){  char s2[3];  long l= 0;  *ok= DD_FALSE;  while (bytes)    {      if (fscanf(f, "%2c", &s2[0]) == EOF)	return(0);      s2[2]= '\0';      l= l*256 + strtol(s2, NULL, 16);      bytes--;    }  *ok= DD_TRUE;  return(l);}/*  * Reading intel hexa file into EROM *____________________________________________________________________________ * * If parameter is a NULL pointer, this function reads data from `cmd_in' * */longcl_uc::read_hex_file(const char *nam){  FILE *f;  int c;  long written= 0, recnum= 0;  uchar dnum;     // data number  uchar rtyp=0;   // record type  uint  addr= 0;  // address  uchar rec[300]; // data record  uchar sum ;     // checksum  uchar chk ;     // check  int  i;  bool ok, get_low= 1;  uchar low= 0, high;  if (!nam)    {      sim->app->get_commander()->	dd_printf("cl_uc::read_hex_file File name not specified\n");      return(-1);    }  else    if ((f= fopen(nam, "r")) == NULL)      {	fprintf(stderr, "Can't open `%s': %s\n", nam, strerror(errno));	return(-1);      }  //memset(inst_map, '\0', sizeof(inst_map));  ok= DD_TRUE;  while (ok &&	 rtyp != 1)    {      while (((c= getc(f)) != ':') &&	     (c != EOF)) ;      if (c != ':')	{fprintf(stderr, ": not found\n");break;}      recnum++;      dnum= ReadInt(f, &ok, 1);//printf("dnum=%02x",dnum);      chk = dnum;      addr= ReadInt(f, &ok, 2);//printf("addr=%04x",addr);      chk+= (addr & 0xff);      chk+= ((addr >> 8) & 0xff);      rtyp= ReadInt(f, &ok, 1);//printf("rtyp=%02x ",rtyp);      chk+= rtyp;      for (i= 0; ok && (i < dnum); i++)	{	  rec[i]= ReadInt(f, &ok, 1);//printf("%02x",rec[i]);	  chk+= rec[i];	}      if (ok)	{	  sum= ReadInt(f, &ok, 1);//printf(" sum=%02x\n",sum);	  if (ok)	    {	      if (((sum + chk) & 0xff) == 0)		{		  if (rtyp == 0)		    {		      if (get_mem_width(MEM_ROM) > 8)			addr/= 2;		      for (i= 0; i < dnum; i++)			{			  if (get_mem_width(MEM_ROM) <= 8)			    {			      set_mem(MEM_ROM, addr, rec[i]);			      addr++;			      written++;			    }			  else if (get_mem_width(MEM_ROM) <= 16)			    {			      if (get_low)				{				  low= rec[i];				  get_low= 0;				}			      else				{				  high= rec[i];				  set_mem(MEM_ROM, addr, (high*256)+low);				  addr++;				  written++;				  get_low= 1;				}			    }			}		    }		  else		    if (sim->app->args->get_iarg('V', 0) &&			rtyp != 1)		      sim->app->get_commander()->			dd_printf("Unknown record type %d(0x%x)\n", rtyp, rtyp);		}	      else		if (sim->app->args->get_iarg('V', 0))		  sim->app->get_commander()->		    dd_printf("Checksum error (%x instead of %x) in "			   "record %ld.\n", chk, sum, recnum);	    }	  else	    if (sim->app->args->get_iarg('V', 0))	      sim->app->get_commander()->		dd_printf("Read error in record %ld.\n", recnum);	}    }  if (get_mem_width(MEM_ROM) > 8 &&      !get_low)    set_mem(MEM_ROM, addr, low);  if (nam)    fclose(f);  if (sim->app->args->get_iarg('V', 0))    sim->app->get_commander()->dd_printf("%ld records have been read\n", recnum);  analyze(0);  return(written);}/* * Handling instruction map * * `inst_at' is checking if the specified address is in instruction * map and `set_inst_at' marks the address in the map and * `del_inst_at' deletes the mark. `there_is_inst' cheks if there is * any mark in the map */boolcl_uc::inst_at(t_addr addr){  class cl_mem/*rom*/ *rom= /*(class cl_rom *)*/mem(MEM_ROM);    if (!rom)    return(0);  //return(rom->inst_map->get(addr));  return(rom->get_cell_flag(addr, CELL_INST));}voidcl_uc::set_inst_at(t_addr addr){  class cl_mem/*rom*/ *rom= /*(class cl_rom *)*/mem(MEM_ROM);    if (rom)    //rom->inst_map->set(addr);    rom->set_cell_flag(addr, DD_TRUE, CELL_INST);}voidcl_uc::del_inst_at(t_addr addr){  class cl_mem/*rom*/ *rom= /*(class cl_rom *)*/mem(MEM_ROM);    if (rom)    //rom->inst_map->clear(addr);    rom->set_cell_flag(addr, DD_FALSE, CELL_INST);}boolcl_uc::there_is_inst(void){  class cl_mem/*rom*/ *rom= /*(class cl_rom *)*/mem(MEM_ROM);    if (!rom)    return(0);  //return(!(rom->inst_map->empty()));  bool got= DD_FALSE;  t_addr addr;  for (addr= 0; addr < rom->size && !got; addr++)    got= rom->get_cell_flag(addr, CELL_INST);  return(got);}/* * Manipulating HW elements of the CPU ***************************************************************************** *//* Register callback hw objects for mem read/write *//*voidcl_uc::register_hw_read(enum mem_class type, t_addr addr, class cl_hw *hw){  class cl_mem *m;  class cl_memloc *l;  if ((m= (class cl_mem*)mems->at(type)))    {      if ((l= m->read_locs->get_loc(addr)) == 0)	{	  l= new cl_memloc(addr);	  l->init();	  m->read_locs->add(l);	}      l->hws->add(hw);    }  else    printf("cl_uc::register_hw_read TROUBLE\n");}*//*voidcl_uc::register_hw_write(enum mem_class type, t_addr addr, class cl_hw *hw){}*//* Looking for a specific HW element */class cl_hw *cl_uc::get_hw(enum hw_cath cath, int *idx){  class cl_hw *hw= 0;  int i= 0;  if (idx)    i= *idx;  for (; i < hws->count; i++)    {      hw= (class cl_hw *)(hws->at(i));      if (hw->cathegory == cath)	break;    }  if (i >= hws->count)    return(0);  if (idx)    *idx= i;  return(hw);}class cl_hw *cl_uc::get_hw(char *id_string, int *idx){  class cl_hw *hw= 0;  int i= 0;  if (idx)    i= *idx;  for (; i < hws->count; i++)    {      hw= (class cl_hw *)(hws->at(i));      if (strstr(hw->id_string, id_string) == hw->id_string)	break;    }  if (i >= hws->count)    return(0);  if (idx)    *idx= i;  return(hw);}class cl_hw *cl_uc::get_hw(enum hw_cath cath, int hwid, int *idx){  class cl_hw *hw;  int i= 0;  if (idx)    i= *idx;  hw= get_hw(cath, &i);  while (hw &&	 hw->id != hwid)    {      i++;      hw= get_hw(cath, &i);    }  if (hw &&       idx)    *idx= i;  return(hw);}class cl_hw *cl_uc::get_hw(char *id_string, int hwid, int *idx){  class cl_hw *hw;  int i= 0;  if (idx)    i= *idx;  hw= get_hw(id_string, &i);  while (hw &&	 hw->id != hwid)    {      i++;      hw= get_hw(id_string, &i);    }  if (hw &&       idx)    *idx= i;  return(hw);}/* * Help of the command interpreter */struct dis_entry *cl_uc::dis_tbl(void){  static struct dis_entry empty= { 0, 0, 0, 0, NULL };  return(&empty);}struct name_entry *cl_uc::sfr_tbl(void){  static struct name_entry empty= { 0, 0 };  return(&empty);}struct name_entry *cl_uc::bit_tbl(void){  static struct name_entry empty= { 0, 0 };  return(&empty);}char *cl_uc::disass(t_addr addr, char *sep){  char *buf;  buf= (char*)malloc(100);  strcpy(buf, "uc::disass() unimplemented\n");  return(buf);}voidcl_uc::print_disass(t_addr addr, class cl_console *con){  char *dis;  class cl_brk *b;  int i;  class cl_mem *rom= mem(MEM_ROM);  t_mem code= get_mem(MEM_ROM, addr);  if (!rom)    return;  b= fbrk_at(addr);  dis= disass(addr, NULL);  if (b)    con->dd_printf("%c", (b->perm == brkFIX)?'F':'D');  else    con->dd_printf(" ");  con->dd_printf("%c ", inst_at(addr)?' ':'?');  con->dd_printf(rom->addr_format, addr); con->dd_printf(" ");  con->dd_printf(rom->data_format, code);  for (i= 1; i < inst_length(addr); i++)    {      con->dd_printf(" ");      con->dd_printf(rom->data_format, get_mem(MEM_ROM, addr+i));    }  int li= longest_inst();  while (i < li)    {      int j;      j= rom->width/4 + ((rom->width%4)?1:0) + 1;      while (j)	con->dd_printf(" "), j--;      i++;    }  con->dd_printf(" %s\n", dis);  free(dis);}voidcl_uc::print_regs(class cl_console *con){  con->dd_printf("No registers\n");}intcl_uc::inst_length(t_addr addr){  struct dis_entry *tabl= dis_tbl();  int i;  t_mem code;  code = get_mem(MEM_ROM, addr);  for (i= 0; tabl[i].mnemonic && (code & tabl[i].mask) != tabl[i].code; i++) ;  return(tabl[i].mnemonic?tabl[i].length:1);}intcl_uc::inst_branch(t_addr addr){  struct dis_entry *tabl= dis_tbl();  int i;  t_mem code;  code = get_mem(MEM_ROM, addr);  for (i= 0; tabl[i].mnemonic && (code & tabl[i].mask) != tabl[i].code; i++)    ;  return tabl[i].branch;}intcl_uc::longest_inst(void){  struct dis_entry *de= dis_tbl();  int max= 0;  while (de &&	 de->mnemonic)    {      if (de->length > max)	max= de->length;      de++;    }  return(max);}boolcl_uc::get_name(t_addr addr, struct name_entry tab[], char *buf){  int i;  i= 0;  while (tab[i].name &&	 (!(tab[i].cpu_type & type) ||	 (tab[i].addr != addr)))    i++;  if (tab[i].name)    strcpy(buf, tab[i].name);  return(tab[i].name != NULL);}char *cl_uc::symbolic_bit_name(t_addr bit_address,			 class cl_mem *mem,			 t_addr mem_addr,			 t_mem bit_mask){  char *sym_name= 0;  int i;  i= 0;  while (bit_tbl()[i].name &&	 (bit_tbl()[i].addr != bit_address))    i++;  if (bit_tbl()[i].name)    {      sym_name= strdup(bit_tbl()[i].name);      return(sym_name);    }  if (mem &&      mem->class_name &&      strstr(mem->class_name, "sfr") == mem->class_name)    {      i= 0;      while (sfr_tbl()[i].name &&	     (sfr_tbl()[i].addr != mem_addr))	i++;      if (sfr_tbl()[i].name)	sym_name= strdup(sfr_tbl()[i].name);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲三级电影网站| 欧美一卡二卡在线观看| 国产成人a级片| 精品一区二区三区视频在线观看| 丝袜亚洲另类丝袜在线| 亚洲午夜精品网| 性久久久久久久久| 美女视频黄频大全不卡视频在线播放| 亚洲成人动漫精品| 日韩在线播放一区二区| 视频精品一区二区| 免费在线观看一区| 国产精品 日产精品 欧美精品| 丁香婷婷深情五月亚洲| av一区二区三区四区| 欧美性极品少妇| 日韩精品专区在线| 中国色在线观看另类| 亚洲激情网站免费观看| 天天免费综合色| 精品无人区卡一卡二卡三乱码免费卡 | 欧美私模裸体表演在线观看| 99久久久免费精品国产一区二区| 91久久国产最好的精华液| 欧美电影影音先锋| 国产情人综合久久777777| ...xxx性欧美| 免费视频一区二区| 欧美成人在线直播| 久久精品国产亚洲5555| 成人福利视频在线看| 精品国产伦一区二区三区观看方式| 欧美军同video69gay| 毛片不卡一区二区| 成人av综合在线| 777欧美精品| 日本一区二区动态图| 樱花草国产18久久久久| 国产一区二区免费视频| 欧美日韩久久不卡| 亚洲国产精品高清| 美女视频一区二区| 欧美伊人久久大香线蕉综合69 | 欧美伦理电影网| 成人精品视频一区二区三区| 日韩一区欧美一区| 欧美激情一区二区三区四区| 午夜视频久久久久久| 顶级嫩模精品视频在线看| 91精品欧美久久久久久动漫| 国产精品国产自产拍在线| 麻豆精品一区二区三区| 91成人在线精品| 欧美韩国日本一区| 狠狠色丁香久久婷婷综合丁香| 欧美日韩国产小视频| 亚洲乱码国产乱码精品精可以看| 国产精品自拍三区| 欧美www视频| 蜜臂av日日欢夜夜爽一区| 在线观看av一区二区| 亚洲欧美日本在线| bt欧美亚洲午夜电影天堂| 久久久不卡网国产精品一区| 久久精品国产澳门| 欧美一三区三区四区免费在线看| 亚洲国产成人高清精品| 色婷婷综合久久久中文字幕| 亚洲图片激情小说| 91一区二区在线| 中文字幕中文字幕一区二区| 成人h精品动漫一区二区三区| 久久久久9999亚洲精品| 国产成人午夜精品5599| 日本一区二区视频在线| 成人ar影院免费观看视频| 中文字幕一区在线| 成人18视频在线播放| 亚洲天堂网中文字| 在线观看视频一区二区| 亚洲狠狠爱一区二区三区| 欧美又粗又大又爽| 丝袜脚交一区二区| 日韩欧美中文一区二区| 九九精品视频在线看| 久久久精品国产免大香伊| 东方aⅴ免费观看久久av| 中文在线一区二区| 色婷婷综合久久久久中文一区二区 | 亚洲国产一二三| 欧美日韩国产综合一区二区三区| 日韩精品一二三| 精品国产凹凸成av人导航| 国产超碰在线一区| 亚洲精品国产精华液| 欧美精品xxxxbbbb| 精品无人码麻豆乱码1区2区| 中文字幕综合网| 欧美一区二区三区电影| 国产很黄免费观看久久| 亚洲另类在线制服丝袜| 欧美电影免费观看完整版| 懂色av一区二区夜夜嗨| 午夜日韩在线电影| 久久免费偷拍视频| 91网站黄www| 麻豆成人久久精品二区三区红 | 国产馆精品极品| 中文字幕一区二区三区在线不卡| 91电影在线观看| 久久精品国产99国产| 亚洲精品一卡二卡| 精品人在线二区三区| 91一区一区三区| 精品一区二区在线免费观看| 亚洲摸摸操操av| 精品国产伦一区二区三区观看体验| 99riav一区二区三区| 精品一区二区在线播放| 亚洲免费在线视频| 国产亚洲福利社区一区| 欧美日韩一区二区三区在线看| 国产精品1024| 另类综合日韩欧美亚洲| 亚洲色大成网站www久久九九| 中文字幕av一区二区三区免费看| 日韩中文字幕av电影| 夫妻av一区二区| 国产精品成人一区二区艾草 | 欧美电视剧在线看免费| 日本久久电影网| 国产成人av一区二区三区在线| 午夜电影网亚洲视频| 亚洲图片激情小说| 国产欧美日韩在线视频| 久久先锋资源网| 日韩欧美在线综合网| 欧美片网站yy| 欧美三级视频在线| 欧洲人成人精品| 色综合网色综合| www.视频一区| 97久久精品人人做人人爽50路| 国产v日产∨综合v精品视频| 美女一区二区在线观看| 日韩av中文在线观看| 亚洲va韩国va欧美va精品| 9191精品国产综合久久久久久| 日本在线不卡一区| 成人一区在线看| 国产久卡久卡久卡久卡视频精品| 日韩二区三区四区| 奇米精品一区二区三区四区| 日韩av电影一区| 日本三级韩国三级欧美三级| 五月天激情综合| 五月婷婷久久丁香| 日本欧美一区二区| 久久国产精品第一页| 另类欧美日韩国产在线| 国产一区二区三区黄视频| 国产精品中文字幕一区二区三区| 国产成人综合视频| 国产伦精品一区二区三区免费迷 | 亚洲精品国产a| 一区二区三区四区激情| 亚洲3atv精品一区二区三区| 五月天精品一区二区三区| 蜜桃精品在线观看| 国产欧美精品国产国产专区| 亚洲乱码中文字幕综合| 中文字幕一区三区| 色婷婷亚洲婷婷| 欧美日韩在线精品一区二区三区激情| 色成年激情久久综合| 777色狠狠一区二区三区| 欧美大胆人体bbbb| 国产女人水真多18毛片18精品视频| 国产人成亚洲第一网站在线播放| 日韩理论片网站| 喷水一区二区三区| www.视频一区| 欧美久久久久中文字幕| 久久久久久久综合| 一区二区高清视频在线观看| 日韩二区三区四区| 成人av集中营| 欧美一区二区三区成人| 欧美激情一区二区三区| 亚洲国产cao| 国产99久久精品| 欧美一区二区三区男人的天堂| 国产欧美一区二区精品秋霞影院| 亚洲一区二区三区在线看| 国产在线精品免费av| 欧美亚洲免费在线一区| 日本韩国精品在线| 日韩中文欧美在线| 精品久久久久久久人人人人传媒| 国产传媒一区在线|