日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

當(dāng)前位置:電子發(fā)燒友網(wǎng) > 圖書頻道 > 電子 > 《計(jì)算機(jī)組成原理與匯編語言》 > 第3章 指令系統(tǒng)與匯編語言設(shè)計(jì)

第5節(jié) 串操作指令

3.5.1 串操作指令

在存貯器中存放的一串字或字節(jié),可以是二進(jìn)制數(shù),也可以是BCD碼或ASCII碼。它們存放在某一個連續(xù)的內(nèi)存區(qū)中,若對它們的每個字或字節(jié)均作同樣的操作,

就稱為串操作。我們把能完成這樣功能的指令稱為字符串操作指令或簡稱為串操作指令。

        1. MOVS/MOVSB/MOVSW

該類指令是串傳送指令,用于內(nèi)存區(qū)之間字節(jié)串或字串的傳送。
           
            該類指令一般格式為:

              MOVS OPDR1,OPDR2 ;OPDR2是源串,OPDR1是目的串
              MOVSB;字節(jié)傳送
              MOVSW;字傳送

       2.CMPS/CMPSB/CMPSW

該類指令是串比較指令,常用于內(nèi)存區(qū)之間的數(shù)據(jù)、字符等的比較。 該指令執(zhí)行后,也將使SI、DI加減1和2,具體由DF的值決定。
           
            該類指令的一般格式為:

              CMPS OPRD1,OPRD2;OPRD1是源串,OPRD2是目的串
                CMPSB ;字節(jié)比較
                CMPSW ;字比較

        3. SCAS/SCASB/SCASW

該類指令是串掃描指令,用于尋找內(nèi)存區(qū)中指定的數(shù)據(jù)和字符。該類指令的一般格式為:

                 SCAS OPRD
                 SCASB ;字節(jié)操作
                 SCASW ;字操作 

        4. LODS/LODSB/LODSW

該類指令是字串裝入指令。它將由SI所指定的源串字節(jié)或字裝入到累加器AL或AX中去,并根據(jù)DF的值修改指針SI,以指向下一個要裝入的字節(jié)或字。
            
             該類指令的一般格式為:

                LODS OPRD ;OPRD為源串
                   LODSB
                LODSW

          5. STOS/STOSB/STOSW

該類指令是字串存貯指令。它將AL或AX中的字節(jié)或字存貯到由DI所指定的附加段中去,且根據(jù)DF的值來修改DI的值。
             
           該類指令一般格式為:

                STOS OPRD ;OPRD為目的串
                   STOSB ;字節(jié)串
                   STOSW ;字串

          6.REP

它是串指令的前綴。當(dāng)某一條串指令需要多次重復(fù)時,就可以加上該前綴。重復(fù)次數(shù)應(yīng)放在寄存器CX中。這樣每重復(fù)執(zhí)行一次,CX內(nèi)容減1,直到CX=0,才停止重復(fù)。

           7. REPE/REPNE

它們是條件重復(fù)前綴。當(dāng)條件滿足時,才重復(fù)執(zhí)行后面的串指令,一旦條件不滿足,重復(fù)就停止。

              例:將1000個字符的字符串從內(nèi)存的BUFFER1搬移到內(nèi)存的BUFFER2中去。

                      MOV SI,OFFSETBUFFER1 ;BUFFER1偏移地址送SI
                   MOVDI,OFFSETBUFFER2 ;BUFFER2偏移地址送DI
                   MOVCX,1000 ;傳送次數(shù)送CX
                   REPEMOVSBUFFER2,BUFFER1;重復(fù)搬移

              例:將數(shù)據(jù)段中100個字的數(shù)據(jù)塊BLOCK1搬移到同一個數(shù)據(jù)段的BLOCK2中去。

                      PUSH DS
                   POP ES ;使DS=ES
                   LEA SI,BLOCK1 ;源串地址送SI
                   LEADI,BLOCK2 ;目的串地址送DI
                   MOV CX,0064H ;重復(fù)次數(shù)送CX
                   CLD ;使DF=0,SI、DI做加2操作
                   REPE MOVSW ;重復(fù)執(zhí)行,直到CX=0為止 

               例:比較DEST和SOURCE中的500個字節(jié),找出第一個不相同的字節(jié),如果找到,則將SOURCE中的這個數(shù)送AL中。

                      CLD
                   LEADI,ES:DEST
                   LEASI,SOURCE
                   MOVCX,500
                   REPECMPB
                   JCXZMEXT
                   MATCH:DEC SI
                   MOV AL,BYTEPTR[SI]
                    … NEXT: … 
 

 

?
邓州市| 丹凤县| 深州市| 郓城县| 灵丘县| 白河县| 巩留县| 泰州市| 石屏县| 高邑县| 额敏县| 白城市| 依安县| 建瓯市| 佛山市| 清新县| 深州市| 岚皋县| 双牌县| 莱阳市| 玛多县| 阿鲁科尔沁旗| 望都县| 松江区| 吉木乃县| 喀什市| 黄大仙区| 娄烦县| 阿拉善右旗| 普兰县| 天全县| 临城县| 左贡县| 饶平县| 昭苏县| 崇文区| 麟游县| 巴彦县| 蕉岭县| 高台县| 怀集县|