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

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

?? i8051_mkr.c

?? 一個電驢上下的51的CORE
?? C
字號:
/* * Copyright (c) 1999-2000 Tony Givargis.  Permission to copy is granted * provided that this header remains intact.  This software is provided * with no warranties. * *  Version : 2.8 *//*--------------------------------------------------------------------------*/#include <assert.h>#include <stdio.h>#include <string.h>/*--------------------------------------------------------------------------*/typedef struct {        char *name;    int msb;    int lsb;    int skip;} InsForm;/*--------------------------------------------------------------------------*/extern const char *RomHeader;extern const char *RomFooter;extern const char *InsBitTbl[];extern const InsForm InsFormTbl[];/*--------------------------------------------------------------------------*/unsigned Hex2Short(const char *buf) {        int i;        if( sscanf(buf, "%x", &i) != 1 ) {                printf("hex file error\n");        exit(1);    }    return i;}/*--------------------------------------------------------------------------*/int Load(char *buf, unsigned char *rom, unsigned romSize, unsigned *prgSize) {        unsigned len, base, type, i;    unsigned char checksum = 0;    char hex[16];        if( buf[0] != ':' ) {        printf("hex file error\n");        exit(1);    }    hex[0] = buf[1];    hex[1] = buf[2];    hex[2] = 0;    len = Hex2Short(hex);    hex[0] = buf[3];    hex[1] = buf[4];    hex[2] = buf[5];    hex[3] = buf[6];    hex[4] = 0;    base = Hex2Short(hex);        hex[0] = buf[7];    hex[1] = buf[8];    hex[2] = 0;    if( (type = Hex2Short(hex)) == 1 ) return 1;        if ( (base + len) > (*prgSize) ) {                (*prgSize) = base + len + 2;    }        if( (*prgSize) >= romSize || (base + len) >= romSize ) {                printf("program too large\n");        exit(1);    }        for(i=0; i<len; i++) {                hex[0] = buf[ 9 + i * 2];        hex[1] = buf[10 + i * 2];        rom[base + i] = (unsigned char)Hex2Short(hex);    }        for(i=0; buf[i * 2 + 1] && buf[i * 2 + 2]; i++) {                hex[0] = buf[i * 2 + 1];        hex[1] = buf[i * 2 + 2];        checksum += (unsigned char)Hex2Short(hex);    }    if( checksum != 0 ) {                printf("checksum failed\n");        exit(1);    }    return 0;}/*--------------------------------------------------------------------------*/int Match(const char *binary, int msb, int lsb, const char *bit) {    char buf[16];      strcpy(buf, &binary[7-msb]);    buf[8-lsb] = 0;    return strcmp(bit, buf) == 0;}/*--------------------------------------------------------------------------*/char *Comment(const char *binary) {        static char buf[32];    static int skip = 0;    int i;        if( skip == 0 ) {        for(i=0; i<111; i++) {            if( Match(binary, InsFormTbl[i].msb,                       InsFormTbl[i].lsb, InsBitTbl[i]) ) {                sprintf(buf, "\t-- %s", InsFormTbl[i].name);                skip = InsFormTbl[i].skip;                return buf;            }        }    }    else {        skip--;    }    return "";}/*--------------------------------------------------------------------------*/char *ToBinary(unsigned char b) {        static char buf[9];    int i;        for(i=0; i<8; i++) {                buf[i] = b & (0x80 >> i) ? '1' : '0';    }    buf[9] = 0;    return buf;}/*--------------------------------------------------------------------------*/void WriteVhdl(unsigned char *rom, unsigned prgSize, const char *fileName) {    FILE* fh = fopen("i8051_rom.vhd", "w");    char *binary;    unsigned i;        assert( fh != 0 );    fprintf(fh, "-- %s \n\n%s", fileName, RomHeader);    fprintf(fh, "    type ROM_TYPE is array (0 to %i)", prgSize - 1);    fprintf(fh, " of UNSIGNED (7 downto 0);\n\n");    fprintf(fh, "    constant PROGRAM : ROM_TYPE := (\n\n");    for(i=0; i<prgSize-1; i++) {                binary = ToBinary(rom[i]);        fprintf(fh, "\t\"%s\",%s\n", binary, Comment(binary));    }    binary = ToBinary(rom[prgSize-1]);    fprintf(fh, "\t\"%s\");%s\n%s", binary, Comment(binary), RomFooter);}/*--------------------------------------------------------------------------*/int main(int argc, char *argv[]) {        FILE *fh;    char buf[256];    unsigned char rom[4096];    unsigned prgSize = 0;        memset(rom, 0, sizeof(rom));    if( argc != 2 || (fh = fopen(argv[1], "r")) == 0 ) {                printf("file argument invalid\n");        exit(1);    }    while( !feof(fh) ) {                fgets(buf, sizeof(buf), fh);        if( Load(buf, rom, sizeof(rom), &prgSize) ) break;    }        WriteVhdl(rom, prgSize, argv[1]);    return 0;}/*--------------------------------------------------------------------------*/const char *RomHeader ="library IEEE;\n""use IEEE.STD_LOGIC_1164.all;\n""use IEEE.STD_LOGIC_ARITH.all;\n""use WORK.I8051_LIB.all;\n""\n""entity I8051_ROM is\n""    port(rst      : in  STD_LOGIC;\n""         clk      : in  STD_LOGIC;\n""         addr     : in  UNSIGNED (11 downto 0);\n""         data     : out UNSIGNED (7 downto 0);\n""         rd       : in  STD_LOGIC);\n""end I8051_ROM;\n""\n""architecture BHV of I8051_ROM is\n""\n";/*--------------------------------------------------------------------------*/const char *RomFooter ="begin\n""\n""    process(rst, clk)\n""    begin\n""        if( rst = '1' ) then\n""\n""            data <= CD_8;\n""        elsif( clk'event and clk = '1' ) then\n""\n""            if( rd = '1' ) then\n""\n""                data <= PROGRAM(conv_integer(addr));\n""            else\n""\n""                data <= CD_8;\n""            end if;\n""        end if;\n""    end process;\n""end BHV;";/*--------------------------------------------------------------------------*/const char *InsBitTbl[] = {    "10001",    "00101",    "00100101",    "0010011",    "00100100",    "00111",    "00110101",    "0011011",    "00110100",    "00001",    "01011",    "01010101",    "0101011",    "01010100",    "01010010",    "01010011",    "10000010",    "10110000",    "10110101",    "10110100",    "10111",    "1011011",    "11100100",    "11000011",    "11000010",    "11110100",    "10110011",    "10110010",    "11010100",    "00010100",    "00011",    "00010101",    "0001011",    "10000100",    "11011",    "11010101",    "00000100",    "00001",    "00000101",    "0000011",    "10100011",    "00100000",    "00010000",    "01000000",    "01110011",    "00110000",    "01010000",    "01110000",    "01100000",    "00010010",    "00000010",    "11101",    "11100101",    "1110011",    "01110100",    "11111",    "10101",    "01111",    "11110101",    "10001",    "10000101",    "1000011",    "01110101",    "1111011",    "1010011",    "0111011",    "10100010",    "10010010",    "10010000",    "10010011",    "10000011",    "1110001",    "11100000",    "1111001",    "11110000",    "10100100",    "00000000",    "01001",    "01000101",    "0100011",    "01000100",    "01000010",    "01000011",    "01110010",    "10100000",    "11010000",    "11000000",    "00100010",    "00110010",    "00100011",    "00110011",    "00000011",    "00010011",    "11010011",    "11010010",    "10000000",    "10011",    "10010101",    "1001011",    "10010100",    "11000100",    "11001",    "11000101",    "1100011",    "1101011",    "01101",    "01100101",    "0110011",    "01100100",    "01100010",    "01100011",};/*--------------------------------------------------------------------------*/const InsForm InsFormTbl[] = {    { "ACALL  ", 4, 0, 1 },    { "ADD_1  ", 7, 3, 0 },    { "ADD_2  ", 7, 0, 1 },    { "ADD_3  ", 7, 1, 0 },    { "ADD_4  ", 7, 0, 1 },    { "ADDC_1 ", 7, 3, 0 },    { "ADDC_2 ", 7, 0, 1 },    { "ADDC_3 ", 7, 1, 0 },    { "ADDC_4 ", 7, 0, 1 },    { "AJMP   ", 4, 0, 1 },    { "ANL_1  ", 7, 3, 0 },    { "ANL_2  ", 7, 0, 1 },    { "ANL_3  ", 7, 1, 0 },    { "ANL_4  ", 7, 0, 1 },    { "ANL_5  ", 7, 0, 1 },    { "ANL_6  ", 7, 0, 2 },    { "ANL_7  ", 7, 0, 1 },    { "ANL_8  ", 7, 0, 1 },    { "CJNE_1 ", 7, 0, 2 },    { "CJNE_2 ", 7, 0, 2 },    { "CJNE_3 ", 7, 3, 2 },    { "CJNE_4 ", 7, 1, 2 },    { "CLR_1  ", 7, 0, 0 },    { "CLR_2  ", 7, 0, 0 },    { "CLR_3  ", 7, 0, 1 },    { "CPL_1  ", 7, 0, 0 },    { "CPL_2  ", 7, 0, 0 },    { "CPL_3  ", 7, 0, 1 },    { "DA     ", 7, 0, 0 },    { "DEC_1  ", 7, 0, 0 },    { "DEC_2  ", 7, 3, 0 },    { "DEC_3  ", 7, 0, 1 },    { "DEC_4  ", 7, 1, 0 },    { "DIV    ", 7, 0, 0 },    { "DJNZ_1 ", 7, 3, 1 },    { "DJNZ_2 ", 7, 0, 2 },    { "INC_1  ", 7, 0, 0 },    { "INC_2  ", 7, 3, 0 },    { "INC_3  ", 7, 0, 1 },    { "INC_4  ", 7, 1, 0 },    { "INC_5  ", 7, 0, 0 },    { "JB     ", 7, 0, 2 },    { "JBC    ", 7, 0, 2 },    { "JC     ", 7, 0, 1 },    { "JMP    ", 7, 0, 0 },    { "JNB    ", 7, 0, 2 },    { "JNC    ", 7, 0, 1 },    { "JNZ    ", 7, 0, 1 },    { "JZ     ", 7, 0, 1 },    { "LCALL  ", 7, 0, 2 },    { "LJMP   ", 7, 0, 2 },    { "MOV_1  ", 7, 3, 0 },    { "MOV_2  ", 7, 0, 1 },    { "MOV_3  ", 7, 1, 0 },    { "MOV_4  ", 7, 0, 1 },    { "MOV_5  ", 7, 3, 0 },    { "MOV_6  ", 7, 3, 1 },    { "MOV_7  ", 7, 3, 1 },    { "MOV_8  ", 7, 0, 1 },    { "MOV_9  ", 7, 3, 1 },    { "MOV_10 ", 7, 0, 2 },    { "MOV_11 ", 7, 1, 1 },    { "MOV_12 ", 7, 0, 2 },    { "MOV_13 ", 7, 1, 0 },    { "MOV_14 ", 7, 1, 1 },    { "MOV_15 ", 7, 1, 1 },    { "MOV_16 ", 7, 0, 1 },    { "MOV_17 ", 7, 0, 1 },    { "MOV_18 ", 7, 0, 2 },    { "MOVC_1 ", 7, 0, 0 },    { "MOVC_2 ", 7, 0, 0 },    { "MOVX_1 ", 7, 1, 0 },    { "MOVX_2 ", 7, 0, 0 },    { "MOVX_3 ", 7, 1, 0 },    { "MOVX_4 ", 7, 0, 0 },    { "MUL    ", 7, 0, 0 },    { "NOP    ", 7, 0, 0 },    { "ORL_1  ", 7, 3, 0 },    { "ORL_2  ", 7, 0, 1 },    { "ORL_3  ", 7, 1, 0 },    { "ORL_4  ", 7, 0, 1 },    { "ORL_5  ", 7, 0, 1 },    { "ORL_6  ", 7, 0, 2 },    { "ORL_7  ", 7, 0, 1 },    { "ORL_8  ", 7, 0, 1 },    { "POP    ", 7, 0, 1 },    { "PUSH   ", 7, 0, 1 },    { "RET    ", 7, 0, 0 },    { "RETI   ", 7, 0, 0 },    { "RL     ", 7, 0, 0 },    { "RLC    ", 7, 0, 0 },    { "RR     ", 7, 0, 0 },    { "RRC    ", 7, 0, 0 },    { "SETB_1 ", 7, 0, 0 },    { "SETB_2 ", 7, 0, 1 },    { "SJMP   ", 7, 0, 1 },    { "SUBB_1 ", 7, 3, 0 },    { "SUBB_2 ", 7, 0, 1 },    { "SUBB_3 ", 7, 1, 0 },    { "SUBB_4 ", 7, 0, 1 },    { "SWAP   ", 7, 0, 0 },    { "XCH_1  ", 7, 3, 0 },    { "XCH_2  ", 7, 0, 1 },    { "XCH_3  ", 7, 1, 0 },    { "XCHD   ", 7, 1, 0 },    { "XRL_1  ", 7, 3, 0 },    { "XRL_2  ", 7, 0, 1 },    { "XRL_3  ", 7, 1, 0 },    { "XRL_4  ", 7, 0, 1 },    { "XRL_5  ", 7, 0, 1 },    { "XRL_6  ", 7, 0, 2 }};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线一区二区三区做爰视频网站| 欧美日本免费一区二区三区| 欧美成人一区二区三区片免费| 一区二区三区中文免费| 99久久综合狠狠综合久久| 国产亚洲成av人在线观看导航| 日本女优在线视频一区二区| 欧美另类z0zxhd电影| 婷婷丁香激情综合| 欧美午夜精品一区二区三区| 精品国产乱码久久久久久老虎| 久久草av在线| 久久久欧美精品sm网站| 国产精品一区一区| 国产蜜臀97一区二区三区| 懂色av一区二区三区免费观看| 日本一区二区三区高清不卡 | 久久一区二区三区四区| 蜜桃一区二区三区在线观看| 欧美sm美女调教| 亚洲精品国产高清久久伦理二区| 久久不见久久见中文字幕免费| 精品盗摄一区二区三区| 99国产欧美另类久久久精品| 午夜伦理一区二区| 久久久久久一二三区| 91视频在线观看免费| 另类小说色综合网站| 亚洲色图制服丝袜| 欧美变态口味重另类| 91麻豆国产福利在线观看| 免费在线成人网| 亚洲欧美在线高清| 欧美一区二区三区男人的天堂| 国产91在线观看| 婷婷久久综合九色综合绿巨人| 国产欧美1区2区3区| 欧美日韩日本视频| 99久久综合狠狠综合久久| 久久激五月天综合精品| 成人欧美一区二区三区1314| 欧美一区二区三区免费视频| 99re热这里只有精品视频| 日韩精品乱码免费| 亚洲欧美视频一区| 久久婷婷成人综合色| 欧美日韩成人高清| 99精品热视频| 国产麻豆精品久久一二三| 亚洲一区二区视频在线观看| 国产精品区一区二区三区| 91精品国产色综合久久ai换脸 | 日韩午夜精品视频| 99国产精品视频免费观看| 国产综合色视频| 日韩激情一区二区| 丝袜美腿亚洲一区二区图片| 日韩一区有码在线| 国产免费成人在线视频| 日韩精品一区二区三区视频播放| 欧美日韩国产高清一区二区| 一本到不卡精品视频在线观看| 成人午夜av电影| 国产精品一级黄| 国产乱码精品一区二区三| 美女看a上一区| 婷婷成人激情在线网| 亚洲成人激情综合网| 亚洲综合色在线| 一区二区在线观看视频| 亚洲欧美日韩久久| 亚洲欧美日韩国产手机在线 | 韩国三级在线一区| 亚洲美女偷拍久久| 日本一区二区三区国色天香| 91精品国产综合久久久蜜臀粉嫩| 日本大香伊一区二区三区| av中文一区二区三区| 成人永久免费视频| 成人av影院在线| www.亚洲精品| eeuss鲁片一区二区三区 | 亚洲一区免费观看| 亚洲黄色性网站| 一区二区在线观看视频在线观看| 亚洲激情一二三区| 亚洲国产一区二区a毛片| 亚洲永久免费视频| 亚洲成a人v欧美综合天堂下载| 图片区小说区区亚洲影院| 亚洲成人自拍一区| 六月婷婷色综合| www一区二区| 国产精品护士白丝一区av| 一区二区免费看| 欧美激情一区二区三区全黄 | 色欧美片视频在线观看| 欧美在线不卡视频| 欧美另类z0zxhd电影| 日韩欧美国产成人一区二区| 久久久久久久久久久久电影| 欧美激情在线观看视频免费| 亚洲天堂网中文字| 午夜精品一区二区三区电影天堂 | 毛片av一区二区三区| 国产麻豆午夜三级精品| 不卡视频一二三四| 欧美精品1区2区| 国产亚洲1区2区3区| 亚洲精品成人天堂一二三| 国产麻豆精品视频| 色视频一区二区| 欧美久久久久久久久| 91日韩在线专区| 亚洲精选在线视频| 亚洲成人免费观看| 黄色精品一二区| 91女厕偷拍女厕偷拍高清| 欧美人成免费网站| 国产精品久久久久影院老司| 亚洲第一精品在线| 成人午夜av在线| 日韩欧美视频一区| 亚洲免费高清视频在线| 狠狠色综合日日| 欧美在线观看视频一区二区三区 | 精东粉嫩av免费一区二区三区 | 在线一区二区三区四区| 26uuu国产一区二区三区| 亚洲日本va在线观看| 精品一区二区日韩| 色婷婷国产精品综合在线观看| 日韩欧美激情四射| 亚洲一区中文在线| 成人精品亚洲人成在线| 欧美一区二区三区影视| 久久精品一区四区| 欧美日产国产精品| 午夜精品在线看| 欧美日韩三级视频| 午夜伊人狠狠久久| 高清不卡在线观看| 亚洲精品一区二区三区香蕉| 亚洲一区二区在线观看视频| 成人美女视频在线观看18| 日韩欧美国产精品一区| 亚洲高清三级视频| 色素色在线综合| 国产精品丝袜久久久久久app| 九色|91porny| 欧美一区午夜视频在线观看| 亚洲无线码一区二区三区| av电影在线观看完整版一区二区| 久久久不卡网国产精品二区| 麻豆视频观看网址久久| 91精品国产91久久综合桃花| 午夜精品久久久久久不卡8050| 日本韩国一区二区三区视频| 中文字幕一区二区三区视频| 国产精品一区一区| 久久精品无码一区二区三区| 精品系列免费在线观看| 日韩精品一区二区三区中文不卡| 天天综合天天综合色| 欧美夫妻性生活| 欧美在线一二三四区| 免费看日韩精品| 日韩美女一区二区三区| 免费人成黄页网站在线一区二区| 8v天堂国产在线一区二区| 亚洲va欧美va天堂v国产综合| 欧美伊人久久大香线蕉综合69| 亚洲欧美另类久久久精品| 99久久免费视频.com| 国产精品久99| 91在线国产福利| 亚洲图片自拍偷拍| 91精品国产入口在线| 精品亚洲国内自在自线福利| 久久久九九九九| a美女胸又www黄视频久久| 亚洲视频免费看| 欧美高清dvd| 国产一区二区三区综合| 欧美国产精品一区二区| 91在线观看高清| 国产中文字幕一区| 久久久久国产精品厨房| 成人激情免费电影网址| 亚洲欧美电影一区二区| 欧美日韩1区2区| 国产精品99久久久久久有的能看 | 欧美日韩精品一区二区| 白白色 亚洲乱淫| 国产1区2区3区精品美女| 国产精品系列在线| 日本黄色一区二区| 美女爽到高潮91| 日韩一区欧美小说| 7777女厕盗摄久久久|