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

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

?? jump_inst.cc

?? sdcc是為51等小型嵌入式cpu設計的c語言編譯器支持數種不同類型的cpu
?? CC
字號:
/* * Simulator of microcontrollers (jmp_inst.cc) * * Copyright (C) 1999,99 Drotos Daniel, Talker Bt. *  * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu * *//* This file is part of microcontroller simulator: ucsim.UCSIM is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.UCSIM is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with UCSIM; see the file COPYING.  If not, write to the FreeSoftware Foundation, 59 Temple Place - Suite 330, Boston, MA02111-1307, USA. *//*@1@*/#include "avrcl.h"#include "regsavr.h"/* * Indirect Jump * IJMP * 1001 0100 XXXX 1001 *____________________________________________________________________________ */intcl_avr::ijmp(t_mem code){  t_addr z;  z= ram->get(ZH)*256 + ram->get(ZL);  PC= rom->validate_address((PC & ~0xffff) | z);  //FIXME: analyze  return(resGO);}intcl_avr::eijmp(t_mem code){  return(resGO);}/* * Indirect Call to Subroutine * ICALL * 1001 0101 XXXX 1001 *____________________________________________________________________________ */intcl_avr::icall(t_mem code){  t_mem zl, zh;  t_addr z;    push_addr(PC);  zl= ram->read(ZL);  zh= ram->read(ZH);  z= zh*256 + zl;  PC= (PC & ~0xffff) | (z & 0xffff);  //FIXME: analyze  tick(2);  return(resGO);}intcl_avr::eicall(t_mem code){  return(resGO);}/* * Return from Subroutine * RET * 1001 0101 0XX0 1000 *____________________________________________________________________________ */intcl_avr::ret(t_mem code){  t_addr a;  pop_addr(&a);  PC= rom->validate_address(a);  tick(3);  return(resGO);}/* * Return from Interrupt * RETI * 1001 0101 0XX1 1000 *____________________________________________________________________________ */intcl_avr::reti(t_mem code){  t_addr a;  pop_addr(&a);  PC= rom->validate_address(a);  t_mem sreg= ram->read(SREG);  sreg|= BIT_I;  ram->write(SREG, sreg);  tick(3);  return(resGO);}/* * Relative Jump * RJMP k -2K<=k<=2K * 1100 kkkk kkkk kkkk *____________________________________________________________________________ */intcl_avr::rjmp_k(t_mem code){  long k= code & 0xfff;  if (k & 0x800)    k|= -4096;  PC= rom->validate_address((signed)PC + (signed)k);  tick(1);  return(resGO);}/* * Relative Call to Subroutine * RCALL k * 1101 kkkk kkkk kkkk -1K<=k<=+1k *____________________________________________________________________________ */intcl_avr::rcall_k(t_mem code){  t_addr k;  push_addr(PC);  k= code & 0xfff;  if (k & 0x800)    k|= ~0xfff;  PC= rom->validate_address((signed)PC + (signed)k);  tick(2);  return(resGO);}/* * Compare Skip if Equal * CPSE Rd,Rr 0<=d<=31, 0<=r<=31 * 0001 00rd dddd rrrr *____________________________________________________________________________ */intcl_avr::cpse_Rd_Rr(t_mem code){  t_addr d, r;  d= (code&0x1f0)>>4;  r= ((code&0x200)>>5)|(code&0xf);  if (ram->read(r) == ram->read(d))    {      t_mem next_code= rom->get(PC);      int i= 0;      struct dis_entry *dt= dis_tbl();      while ((next_code & dt[i].mask) != dt[i].code &&	     dt[i].mnemonic)	i++;      if (dt[i].mnemonic != NULL)	{	  PC= rom->validate_address(PC + dt[i].length);	  tick(1);	}      else	return(resINV_INST);    }  return(resGO);}/* * Jump * JMP k 0<=k<=4M * 1001 010k kkkk 110k * kkkk kkkk kkkk kkkk *____________________________________________________________________________ */intcl_avr::jmp_k(t_mem code){  t_addr k;  k= ((code&0x1f0)>>3)|(code&1);  k= (k<<16)|fetch();  PC= rom->validate_address(k);  tick(2);  return(resGO);}/* * Long Call to a Subroutine * CALL k 0<=k<=64k/4M * 1001 010k kkkk 111k * kkkk kkkk kkkk kkkk *____________________________________________________________________________ */intcl_avr::call_k(t_mem code){  t_addr k;  k= (((code&0x1f0)>>3)|(code&1))*0x10000;  k= k + fetch();  push_addr(PC);  PC= rom->validate_address(k);  tick(3);  return(resGO);}/* * Branch if Bit in SREG is Set * BRBS s,k 0<=s<=7, -64<=k<=+63 * 1111 00kk kkkk ksss *____________________________________________________________________________ */intcl_avr::brbs_s_k(t_mem code){  int s, k;  k= (code&0x3f8)>>3;  s= code&7;  t_mem sreg= ram->get(SREG);  t_mem mask= 1<<s;  if (sreg & mask)    {      if (code&0x200)	k|= -128;      PC= rom->validate_address((signed)PC+k);      tick(1);    }  return(resGO);}/* * Branch if Bit in SREG is Cleared * BRBC s,k 0<=s<=7, -64<=k<=+63 * 1111 01kk kkkk ksss *____________________________________________________________________________ */intcl_avr::brbc_s_k(t_mem code){  int s, k;  k= (code&0x3f8)>>3;  s= code&7;  t_mem sreg= ram->get(SREG);  t_mem mask= 1<<s;  if (!(sreg & mask))    {      if (code&0x200)	k|= -128;      PC= rom->validate_address((signed)PC+k);      tick(1);    }  return(resGO);}/* * Skip if Bit in Register is Cleared * SBRC Rr,b  0<=r<=31, 0<=b<=7 * 1111 110r rrrr Xbbb *____________________________________________________________________________ */intcl_avr::sbrc_Rr_b(t_mem code){  t_addr r= (code&0x1f0)>>4;  int b= code&7;  t_mem mask= 1<<b;  if (!(ram->read(r) & mask))    {      t_mem next_code= rom->get(PC);      int i= 0;      struct dis_entry *dt= dis_tbl();      while ((next_code & dt[i].mask) != dt[i].code &&	     dt[i].mnemonic)	i++;      if (dt[i].mnemonic != NULL)	{	  PC= rom->validate_address(PC + dt[i].length);	  tick(1);	}      else	return(resINV_INST);    }  return(resGO);}/* * Skip if Bit in Register is Set * SBRS Rr,b  0<=r<=31, 0<=b<=7 * 1111 111r rrrr Xbbb *____________________________________________________________________________ */intcl_avr::sbrs_Rr_b(t_mem code){  t_addr r= (code&0x1f0)>>4;  int b= code&7;  t_mem mask= 1<<b;  if (ram->read(r) & mask)    {      t_mem next_code= rom->get(PC);      int i= 0;      struct dis_entry *dt= dis_tbl();      while ((next_code & dt[i].mask) != dt[i].code &&	     dt[i].mnemonic)	i++;      if (dt[i].mnemonic != NULL)	{	  PC= rom->validate_address(PC + dt[i].length);	  tick(1);	}      else	return(resINV_INST);    }  return(resGO);}/* * Skip if Bit in I/O Register is Clear * SBIC P,b 0<=P<=31 0<=b<=7 * 1001 1001 pppp pbbb *____________________________________________________________________________ */intcl_avr::sbic_P_b(t_mem code){  uint addr, mask;    addr= ((code&0xf8)>>3)+0x20;  mask= 1 << (code&7);  if (0 == (mask & ram->read(addr)))    {      code= fetch();      int size= inst_length(code);      while (size > 1)	{	  fetch();	  size--;	}      tick(1);    }  return(resGO);}/* * Skip if Bit in I/O Register is Set * SBIS P,b 0<=P<=31 0<=b<=7 * 1001 1011 pppp pbbb *____________________________________________________________________________ */intcl_avr::sbis_P_b(t_mem code){  uint addr, mask;    addr= ((code&0xf8)>>3)+0x20;  mask= 1 << (code&7);  if (mask & ram->read(addr))    {      code= fetch();      int size= inst_length(code);      while (size > 1)	{	  fetch();	  size--;	}      tick(1);    }  return(resGO);}/* End of avr.src/jump_inst.cc */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡的电视剧免费网站有什么| 亚洲国产精品传媒在线观看| 久久福利视频一区二区| 国产精品久久久久久久久晋中| 欧美日韩国产首页| 成人av影视在线观看| 在线亚洲人成电影网站色www| 国产精品第五页| 亚洲一区二区精品3399| 久久精品网站免费观看| 欧美一卡二卡在线| 91亚洲精华国产精华精华液| 国产在线不卡一区| 日韩福利电影在线观看| 一区二区三区免费在线观看| 亚洲欧洲日产国产综合网| 欧美国产视频在线| 亚洲.国产.中文慕字在线| 亚洲毛片av在线| 亚洲欧美韩国综合色| 强制捆绑调教一区二区| 日精品一区二区三区| 五月婷婷综合在线| 日本视频在线一区| 成人av影院在线| 日韩美女一区二区三区四区| 日韩精品一区二区三区在线播放| 国产精品午夜免费| 亚洲视频电影在线| 一区二区三区.www| 国内精品写真在线观看| 国产成人一区二区精品非洲| 国内外成人在线| 欧美日韩一区三区四区| 欧美一级二级三级蜜桃| 日韩欧美国产综合| 一区二区在线观看免费视频播放| 亚洲一区二区在线免费观看视频| 激情久久久久久久久久久久久久久久| 一本一道久久a久久精品| 一本到三区不卡视频| 精品日韩99亚洲| 亚洲国产成人自拍| 美女视频黄免费的久久| 国产精品911| 色综合天天综合狠狠| 欧美性大战久久久久久久| 日韩精品一区二区三区中文不卡| 一级中文字幕一区二区| 成人av网站在线观看免费| 日韩女优av电影| 午夜视频久久久久久| 日本精品一区二区三区四区的功能| 久久麻豆一区二区| 亚洲欧洲av色图| 国产精品中文有码| 欧美精品一区二区三区蜜桃视频| 国产精品久久久久久久久免费丝袜 | 国产无遮挡一区二区三区毛片日本| 亚洲成人av福利| 日本韩国欧美三级| 亚洲欧美激情小说另类| 成人永久看片免费视频天堂| 色网站国产精品| 国产精品久久久久久妇女6080| 国产精品一品二品| 欧美tickling挠脚心丨vk| 日韩不卡手机在线v区| 欧美人妖巨大在线| 亚洲午夜电影在线| 日韩一区精品字幕| 欧美日韩一级片在线观看| 亚洲一区二区三区爽爽爽爽爽| 91麻豆蜜桃一区二区三区| 国产精品无人区| 成人黄色在线看| 国产精品国产三级国产aⅴ原创 | 日韩欧美卡一卡二| 捆绑紧缚一区二区三区视频| 91精品国产色综合久久不卡蜜臀 | 成人黄页在线观看| 国产精品久久久久久亚洲毛片| 东方欧美亚洲色图在线| 精品视频在线免费看| 一区二区三区不卡视频| 欧美三区在线观看| 亚洲第一在线综合网站| 欧美人妖巨大在线| 日韩1区2区日韩1区2区| 日韩视频免费观看高清完整版 | 精品久久久久久最新网址| 久久精品久久久精品美女| 精品av综合导航| 国产精品一二三四区| 中文字幕中文字幕在线一区| 91亚洲精品久久久蜜桃网站 | 在线观看亚洲精品| 亚洲成人资源在线| 日韩欧美中文一区| 国产伦精品一区二区三区免费 | 99re成人精品视频| 久久久久99精品一区| 成人小视频在线观看| 亚洲美女视频在线观看| 欧美日韩国产综合视频在线观看 | 亚洲精品一区二区三区99| 国产成人精品aa毛片| 亚洲猫色日本管| 欧美日韩一区二区三区在线看| 美女爽到高潮91| 中文字幕av一区二区三区免费看| 99久久99久久综合| 亚洲国产成人av| 精品国产一区二区三区久久久蜜月| 国产成人一区二区精品非洲| 亚洲精品国产视频| 日韩丝袜美女视频| av在线不卡电影| 国产精品视频线看| 在线观看免费一区| 久久爱www久久做| 成人免费小视频| 欧美精品 日韩| 日韩电影在线观看一区| 国产蜜臀97一区二区三区| 成人一道本在线| 亚洲一区在线观看网站| 久久久久久免费| 欧美日韩综合不卡| 国产91对白在线观看九色| 亚洲国产毛片aaaaa无费看| 久久久久久夜精品精品免费| 91福利国产精品| 国产成人小视频| 石原莉奈在线亚洲三区| 国产精品乱码久久久久久| 欧美卡1卡2卡| 99在线精品免费| 久久 天天综合| 久久久精品天堂| 欧美性受xxxx黑人xyx性爽| 国内精品视频666| 五月婷婷综合网| 亚洲激情成人在线| 久久精品人人做人人爽97| 欧美日韩免费一区二区三区视频 | 亚洲欧美成aⅴ人在线观看| 欧美成人一区二区三区在线观看 | 一区二区三区日本| 久久久99精品久久| 5566中文字幕一区二区电影| 久久超级碰视频| 午夜精品国产更新| 亚洲视频在线一区二区| 久久亚洲精精品中文字幕早川悠里 | jvid福利写真一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美日韩国产综合在线| 国产欧美综合色| 精品久久一区二区三区| 91精品国产综合久久精品图片| 一本一本大道香蕉久在线精品| 福利电影一区二区三区| 国内一区二区视频| 久久国产婷婷国产香蕉| 日韩高清不卡在线| 丝袜诱惑制服诱惑色一区在线观看| 亚洲人成网站在线| 国产精品欧美经典| 国产欧美久久久精品影院| 久久久亚洲综合| 久久综合久久综合亚洲| 日韩三级av在线播放| 欧美一区二区精品久久911| 欧美无乱码久久久免费午夜一区| 99re亚洲国产精品| 91丨porny丨最新| 成人a区在线观看| 成人av在线一区二区三区| 国产成人精品www牛牛影视| 丁香激情综合五月| 国产91精品免费| 99久久精品国产麻豆演员表| av午夜一区麻豆| 99久久精品国产观看| 91国偷自产一区二区三区观看| 色噜噜狠狠一区二区三区果冻| 色噜噜狠狠成人中文综合| 日本高清成人免费播放| 在线日韩国产精品| 在线观看av不卡| 欧美蜜桃一区二区三区| 欧美精品99久久久**| 欧美变态口味重另类| 久久综合av免费| 国产精品久久久一本精品| 亚洲欧美影音先锋| 亚洲自拍偷拍欧美| 日韩激情一二三区| 精品一区二区在线看|