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

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

?? casl_tab.c

?? 這是一個軟件水平資格考試中使用的CASL匯編語言的編譯器,實現文件中包括一個編譯器,一個虛擬機,一個類似于Debug的調試器.
?? C
?? 第 1 頁 / 共 5 頁
字號:
                            else
                            {
                                strcpy(g_currentConst.strLabelName, "\0");
                            }
            			    g_vecConst.push_back(g_currentConst);
                            if (NULL != yyvsp[-3])
                            {
                                free((char*)yyvsp[-3]);
                            }
			             ;
    break;}
case 24:
#line 177 "casl.y"
{
        			g_currentConst.type = HEX_CONST;
	    	        g_currentConst.constData.hexVal = yyvsp[0];
    	        ;
    break;}
case 25:
#line 182 "casl.y"
{
        			g_currentConst.type = DEC_CONST;
		        	g_currentConst.constData.decVal = yyvsp[0];
    		    ;
    break;}
case 26:
#line 187 "casl.y"
{
        		    g_currentConst.type = LABEL_CONST;
                    strcpy(g_currentConst.constData.labelVal, (char*)yyvsp[0]);
                    //free((char*)$1);
		        ;
    break;}
case 27:
#line 193 "casl.y"
{
                    g_currentConst.type = STR_CONST;
                    strcpy(g_currentConst.constData.strVal, g_strCurrentStrConst.c_str());
                ;
    break;}
case 32:
#line 205 "casl.y"
{
                        //如果標號不為空
                        if (NULL != yyvsp[-5])
                        {
                            g_mapLabel.insert(LabelMap::value_type(g_lCurrentParseCodeNumber, (char*)yyvsp[-5]));
                            free((char*)yyvsp[-5]);
                        }
                        
                        //對于每條指令前的標號應當怎樣處理呢?
                        //應當定義一張標號表,然后將遇到的所有的標號都
                        //存放到標號表中,但是怎樣將標號與實際的指令對應起來呢?
                        //考慮在程序中定義一個當前編譯PC指針用來標識當前指令的
                        //位置,這樣就可以在最后依據這個位置編號來確定標號所對應的指令的偏移
                        //而對于常量定義,變量定義就不參與PC指針的記數,
                        //而是在生成中間代碼以后,依據,常量表,變量表,為所有的變量,常量
                        //分配空間,然后將程序中引用到變量,常量的地方改為變量,常量的地址值
                        g_tempCode.type = CASL_LD;
                        g_tempCode.operand1.type = REG_OPERAND;
                        g_tempCode.operand1.OperandVal.regOperand.regNumber = g_iCurrentRegNumber;
                        g_tempCode.operand2.type = EA_OPERAND;
                        //對于EA地址操作數的處理比較麻煩!!!!!!
                        g_tempCode.operand2.OperandVal.eaOperand.regNumber = g_iCurrentEARegNumber;
                        g_tempCode.operand2.OperandVal.eaOperand.address = g_currentEAAddress;
                        g_tempCode.iSrcCodeLineNumber = g_iLineNumber - 1;
                        g_vecIntermediateCode.push_back(g_tempCode);   
                        //將下一個Parse的代碼的編號加一
                        g_lCurrentParseCodeNumber++;
                    ;
    break;}
case 33:
#line 237 "casl.y"
{
                            yyval = yyvsp[-1];
                        ;
    break;}
case 34:
#line 241 "casl.y"
{ 
                             yyval = yyvsp[0];
                        ;
    break;}
case 35:
#line 245 "casl.y"
{
                            yyval = NULL;
                        ;
    break;}
case 36:
#line 251 "casl.y"
{
            g_iCurrentRegNumber = 0;
        ;
    break;}
case 37:
#line 255 "casl.y"
{
            g_iCurrentRegNumber = 1;
        ;
    break;}
case 38:
#line 259 "casl.y"
{
            g_iCurrentRegNumber = 2;
        ;
    break;}
case 39:
#line 263 "casl.y"
{
            g_iCurrentRegNumber = 3;
        ;
    break;}
case 40:
#line 267 "casl.y"
{
            g_iCurrentRegNumber = 4;
        ;
    break;}
case 41:
#line 273 "casl.y"
{

                ;
    break;}
case 42:
#line 279 "casl.y"
{
                    g_currentEAAddress.type = DEC_EA_ADDRESS;
                    g_currentEAAddress.addressVal.decAddress = yyvsp[0];
                ;
    break;}
case 43:
#line 284 "casl.y"
{
                    //對于標號地址,應當先到標號表中查詢看有無對應項,如果有的話,就應當
                    //將查詢到的地址放入g_eaAddressVal中
                    //如果沒有的話,就應當在標號表的指定標號中
                    //加入一個回填項以便于在parse過程中如果遇到了指定的標號
                    //進行標號數據的回填
                    g_currentEAAddress.type = LABEL_EA_ADDRESS;
                    strcpy(g_currentEAAddress.addressVal.labelAddress.strLabelName, (char*)yyvsp[0]);
                    free((char*)yyvsp[0]);
                ;
    break;}
case 44:
#line 295 "casl.y"
{
                    //-----------------有效地址也可以有十六進制數!!!!!----------------------
                    //unfinished now!!
                    //因為在使用的時候,我們不需要去理會十六進制與十進制的區別,因為詞法分析模塊已經替我們
                    //將十六進制的輸入換為十進制的數據了!!!!所以我們直接將HEX的地址量當DEC來用即可!!!
                    //-----------------------------------------------------------------
                    g_currentEAAddress.type = DEC_EA_ADDRESS;
                    g_currentEAAddress.addressVal.decAddress = yyvsp[0];
                ;
    break;}
case 45:
#line 307 "casl.y"
{
                    //g_iCurrentEARegNumber = g_iCurrentRegNumber;
                ;
    break;}
case 46:
#line 311 "casl.y"
{
                    g_iCurrentEARegNumber = REG_EMPTY;
                ;
    break;}
case 47:
#line 317 "casl.y"
{
            g_iCurrentEARegNumber = 0;
        ;
    break;}
case 48:
#line 321 "casl.y"
{
            g_iCurrentEARegNumber = 1;
        ;
    break;}
case 49:
#line 325 "casl.y"
{
            g_iCurrentEARegNumber = 2;
        ;
    break;}
case 50:
#line 329 "casl.y"
{
            g_iCurrentEARegNumber = 3;
        ;
    break;}
case 51:
#line 333 "casl.y"
{
            g_iCurrentEARegNumber = 4;
        ;
    break;}
case 52:
#line 338 "casl.y"
{ g_tempCode.iSrcCodeLineNumber = g_iLineNumber;;
    break;}
case 53:
#line 340 "casl.y"
{
                                            
                                if (NULL != yyvsp[-6])
                                {
                                    g_mapLabel.insert(LabelMap::value_type(g_lCurrentParseCodeNumber, (char*)yyvsp[-6]));
                                    free((char*)yyvsp[-6]);
                                }
                                g_tempCode.type = CASL_ST;
                                g_tempCode.operand1.type = REG_OPERAND;
                                g_tempCode.operand1.OperandVal.regOperand.regNumber = g_iCurrentRegNumber;
                                g_tempCode.operand2.type = EA_OPERAND;
                                //對于EA地址操作數的處理比較麻煩!!!!!!
                                g_tempCode.operand2.OperandVal.eaOperand.regNumber = g_iCurrentEARegNumber;
                                g_tempCode.operand2.OperandVal.eaOperand.address = g_currentEAAddress;
//                                g_tempCode.iSrcCodeLineNumber = g_iLineNumber - 1;
                                g_vecIntermediateCode.push_back(g_tempCode);   
                                //將下一個Parse的代碼的編號加一
                                g_lCurrentParseCodeNumber++;

                            ;
    break;}
case 54:
#line 362 "casl.y"
{ g_tempCode.iSrcCodeLineNumber = g_iLineNumber;;
    break;}
case 55:
#line 364 "casl.y"
{

                                if (NULL != yyvsp[-6])
                                {
                                    g_mapLabel.insert(LabelMap::value_type(g_lCurrentParseCodeNumber, (char*)yyvsp[-6]));
                                    free((char*)yyvsp[-6]);
                                }
                                g_tempCode.type = CASL_LEA;
                                g_tempCode.operand1.type = REG_OPERAND;
                                g_tempCode.operand1.OperandVal.regOperand.regNumber = g_iCurrentRegNumber;
                                g_tempCode.operand2.type = EA_OPERAND;
                                g_tempCode.operand2.OperandVal.eaOperand.regNumber = g_iCurrentEARegNumber;
                                g_tempCode.operand2.OperandVal.eaOperand.address = g_currentEAAddress;
//                                g_tempCode.iSrcCodeLineNumber = g_iLineNumber - 1;
                                g_vecIntermediateCode.push_back(g_tempCode);   
                                //將下一個Parse的代碼的編號加一
                                g_lCurrentParseCodeNumber++;

                            ;
    break;}
case 58:
#line 388 "casl.y"
{ g_tempCode.iSrcCodeLineNumber = g_iLineNumber;;
    break;}
case 59:
#line 390 "casl.y"
{

                                if (NULL != yyvsp[-6])
                                {
                                    g_mapLabel.insert(LabelMap::value_type(g_lCurrentParseCodeNumber, (char*)yyvsp[-6]));
                                    free((char*)yyvsp[-6]);
                                }
                                g_tempCode.type = CASL_ADD;
                                g_tempCode.operand1.type = REG_OPERAND;
                                g_tempCode.operand1.OperandVal.regOperand.regNumber = g_iCurrentRegNumber;
                                g_tempCode.operand2.type = EA_OPERAND;
                                g_tempCode.operand2.OperandVal.eaOperand.regNumber = g_iCurrentEARegNumber;
                                g_tempCode.operand2.OperandVal.eaOperand.address = g_currentEAAddress;
//                                g_tempCode.iSrcCodeLineNumber = g_iLineNumber - 1;
                                g_vecIntermediateCode.push_back(g_tempCode);   
                                //將下一個Parse的代碼的編號加一
                                g_lCurrentParseCodeNumber++;

                            ;
    break;}
case 60:
#line 410 "casl.y"
{ g_tempCode.iSrcCodeLineNumber = g_iLineNumber;;
    break;}
case 61:
#line 412 "casl.y"
{

                                if (NULL != yyvsp[-6])
                                {
                                    g_mapLabel.insert(LabelMap::value_type(g_lCurrentParseCodeNumber, (char*)yyvsp[-6]));
                                    free((char*)yyvsp[-6]);
                                }
                                g_tempCode.type = CASL_SUB;
                                g_tempCode.operand1.type = REG_OPERAND;
                                g_tempCode.operand1.OperandVal.regOperand.regNumber = g_iCurrentRegNumber;
                                g_tempCode.operand2.type = EA_OPERAND;
                                g_tempCode.operand2.OperandVal.eaOperand.regNumber = g_iCurrentEARegNumber;
                                g_tempCode.operand2.OperandVal.eaOperand.address = g_currentEAAddress;
//                                g_tempCode.iSrcCodeLineNumber = g_iLineNumber - 1;
                                g_vecIntermediateCode.push_back(g_tempCode);   
                                //將下一個Parse的代碼的編號加一
                                g_lCurrentParseCodeNumber++;

                            ;
    break;}
case 65:
#line 434 "casl.y"
{ g_tempCode.iSrcCodeLineNumber = g_iLineNumber;;
    break;}
case 66:
#line 436 "casl.y"
{

                                if (NULL != yyvsp[-6])
                                {
                                    g_mapLabel.insert(LabelMap::value_type(g_lCurrentParseCodeNumber, (char*)yyvsp[-6]));
                                    free((char*)yyvsp[-6]);
                                }
                                g_tempCode.type = CASL_AND;
                                g_tempCode.operand1.type = REG_OPERAND;
                                g_tempCode.operand1.OperandVal.regOperand.regNumber = g_iCurrentRegNumber;
                                g_tempCode.operand2.type = EA_OPERAND;
                                g_tempCode.operand2.OperandVal.eaOperand.regNumber = g_iCurrentEARegNumber;
                                g_tempCode.operand2.OperandVal.eaOperand.address = g_currentEAAddress;
//                                g_tempCode.iSrcCodeLineNumber = g_iLineNumber - 1;
                                g_vecIntermediateCode.push_back(g_tempCode);   
                                //將下一個Parse的代碼的編號加一

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品视频一区二区| 91小视频在线免费看| 日韩欧美一级在线播放| 日韩激情视频网站| 日韩区在线观看| 经典三级在线一区| 国产片一区二区三区| 成人18视频日本| 亚洲激情五月婷婷| 欧美男男青年gay1069videost| 国产成人午夜高潮毛片| 久久久久久**毛片大全| 99re在线精品| 日韩国产成人精品| 日韩精品一区二区三区四区视频| 国产无遮挡一区二区三区毛片日本| 最好看的中文字幕久久| 色又黄又爽网站www久久| 亚洲综合在线观看视频| 欧美福利一区二区| 国产精品538一区二区在线| 亚洲国产精品成人久久综合一区 | 欧美日本一区二区| 美女视频一区在线观看| 欧美激情中文不卡| 在线观看日韩毛片| 狠狠色丁香九九婷婷综合五月 | 在线精品视频一区二区三四| 亚洲福利视频导航| 国产日韩欧美麻豆| 欧美日韩精品福利| 成人午夜精品一区二区三区| 亚洲一二三四区| 久久精品夜夜夜夜久久| 欧美在线观看18| 国产精华液一区二区三区| 一区二区三区免费网站| 久久这里只有精品视频网| 波多野结衣在线aⅴ中文字幕不卡| 久久综合色鬼综合色| 91官网在线免费观看| 韩国精品主播一区二区在线观看 | 日韩一区二区在线播放| 波多野结衣在线aⅴ中文字幕不卡| 久久精品一区蜜桃臀影院| 欧美三级欧美一级| 成人动漫在线一区| 日本成人在线网站| 伊人开心综合网| 国产亚洲欧美激情| 欧美美女直播网站| 97久久超碰国产精品电影| 蜜桃免费网站一区二区三区| 亚洲视频免费观看| 国产人成亚洲第一网站在线播放 | 亚洲成av人片在线| 亚洲欧洲精品成人久久奇米网| 成人免费毛片a| 精品制服美女丁香| 日本在线不卡一区| 亚洲国产日韩在线一区模特| 中文字幕精品三区| 精品欧美一区二区三区精品久久 | 国产精品免费久久久久| 欧美一区二区三区免费视频 | 成人午夜精品一区二区三区| 男女激情视频一区| 视频一区视频二区在线观看| 亚洲永久精品大片| 一区二区三区在线视频播放| 亚洲欧洲成人自拍| 国产日韩欧美综合一区| 久久五月婷婷丁香社区| 欧美不卡在线视频| 亚洲精品一区二区三区四区高清| 国产成人在线观看免费网站| 久久99最新地址| 久久精品99国产精品日本| 天堂成人免费av电影一区| 亚洲成人在线观看视频| 亚洲国产成人av| 亚洲成av人片在www色猫咪| 一区二区三区波多野结衣在线观看 | 日韩不卡在线观看日韩不卡视频| 精品三级在线观看| 精品成人佐山爱一区二区| 欧美mv日韩mv国产网站| 337p日本欧洲亚洲大胆精品| 欧美一区二区免费视频| 日韩欧美国产不卡| 久久久91精品国产一区二区三区| 欧美性色黄大片| 欧美色图片你懂的| 日韩一级免费观看| 久久久99精品免费观看| 国产精品美女www爽爽爽| 亚洲精品视频在线看| 亚洲国产精品一区二区久久| 日本欧美一区二区三区| 精品午夜一区二区三区在线观看| 亚洲自拍欧美精品| 日韩av电影免费观看高清完整版| 亚洲丝袜制服诱惑| 一区二区高清在线| 麻豆精品视频在线观看免费| 国产白丝精品91爽爽久久| 99国内精品久久| 欧美二区三区的天堂| 久久亚洲精品小早川怜子| 亚洲欧洲成人自拍| 免费高清视频精品| 成人午夜碰碰视频| 7777精品伊人久久久大香线蕉经典版下载 | 一级特黄大欧美久久久| 亚洲国产精品久久久久秋霞影院 | 欧美日韩在线一区二区| 日韩亚洲欧美在线观看| 日本一区二区视频在线| 一区二区三区色| 久久精品国产澳门| av在线不卡电影| 欧美一级在线免费| 国产麻豆成人传媒免费观看| 成人黄色av电影| 欧美福利电影网| 成人欧美一区二区三区小说| 奇米影视一区二区三区小说| 成人做爰69片免费看网站| 欧美午夜精品一区二区三区 | 国产福利一区二区三区视频| 成人福利电影精品一区二区在线观看| 国产成人综合在线观看| 欧美色爱综合网| 国产亚洲精品中文字幕| 日韩精品成人一区二区三区| 成人深夜福利app| 欧美精品色一区二区三区| 中日韩av电影| 国内不卡的二区三区中文字幕 | 天堂影院一区二区| 91香蕉视频在线| 欧美精品一区二区三| 五月婷婷久久丁香| 日本韩国欧美一区| 中文字幕一区视频| 国产成人福利片| 久久这里只有精品视频网| 免费精品99久久国产综合精品| 久久国产免费看| 欧美精品色综合| 亚洲成人av福利| 一本大道av伊人久久综合| 国产精品自在在线| 欧美一级片免费看| 日韩在线a电影| 欧美日韩电影在线| 亚洲va欧美va天堂v国产综合| 日本亚洲欧美天堂免费| 欧美亚洲动漫制服丝袜| 亚洲精品国产视频| 色妹子一区二区| 亚洲乱码中文字幕综合| 99视频在线观看一区三区| 国产精品女主播在线观看| 国产精一品亚洲二区在线视频| 99精品国产一区二区三区不卡| 欧美在线免费观看亚洲| 亚洲精品乱码久久久久久久久| 日本一区中文字幕| 在线播放日韩导航| 欧美a级一区二区| 欧美成人a∨高清免费观看| 美国毛片一区二区三区| 日韩你懂的在线观看| 久久精品国产澳门| 国产亚洲视频系列| 成a人片国产精品| 亚洲男人的天堂在线观看| 在线观看91视频| 日韩国产成人精品| 亚洲精品在线三区| 成人性视频免费网站| 亚洲免费毛片网站| 欧美私人免费视频| 免费在线观看精品| 蓝色福利精品导航| 国产精品天干天干在观线| 99久久综合狠狠综合久久| 一区二区三区在线视频播放| 欧美日韩午夜影院| 国内精品在线播放| 国产精品第一页第二页第三页| 麻豆91免费看| 国产欧美综合在线观看第十页| 亚洲国产精品一区二区尤物区| 国产成人av福利| 国产精品国产三级国产aⅴ入口| 精品一区二区在线播放| 中文字幕av资源一区| 欧美中文字幕一区二区三区 |