微機(jī)原理與接口技術(shù)第八講 計(jì)算機(jī)教學(xué)課件PPT

上傳人:文*** 文檔編號(hào):53704055 上傳時(shí)間:2022-02-10 格式:PPT 頁(yè)數(shù):37 大小:1.13MB
收藏 版權(quán)申訴 舉報(bào) 下載
微機(jī)原理與接口技術(shù)第八講 計(jì)算機(jī)教學(xué)課件PPT_第1頁(yè)
第1頁(yè) / 共37頁(yè)
微機(jī)原理與接口技術(shù)第八講 計(jì)算機(jī)教學(xué)課件PPT_第2頁(yè)
第2頁(yè) / 共37頁(yè)
微機(jī)原理與接口技術(shù)第八講 計(jì)算機(jī)教學(xué)課件PPT_第3頁(yè)
第3頁(yè) / 共37頁(yè)

本資源只提供3頁(yè)預(yù)覽,全部文檔請(qǐng)下載后查看!喜歡就下載吧,查找使用更方便

20 積分

下載資源

資源描述:

《微機(jī)原理與接口技術(shù)第八講 計(jì)算機(jī)教學(xué)課件PPT》由會(huì)員分享,可在線閱讀,更多相關(guān)《微機(jī)原理與接口技術(shù)第八講 計(jì)算機(jī)教學(xué)課件PPT(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、12加加 法法減減 法法SUB減法減法SBB帶借位的減法帶借位的減法DEC減量減量NEG取負(fù)取負(fù)CMP比較比較AAS減法的減法的ASCII調(diào)整調(diào)整DIV無(wú)符號(hào)數(shù)除法無(wú)符號(hào)數(shù)除法DAS減法的十進(jìn)制調(diào)整減法的十進(jìn)制調(diào)整IDIV整數(shù)除法整數(shù)除法乘乘 法法AAD除法的除法的ASCII調(diào)整調(diào)整MUL無(wú)符號(hào)數(shù)乘法無(wú)符號(hào)數(shù)乘法CBW把字節(jié)轉(zhuǎn)換成字把字節(jié)轉(zhuǎn)換成字IMUL整數(shù)乘法整數(shù)乘法CWD把字轉(zhuǎn)換成雙字把字轉(zhuǎn)換成雙字AAM乘法的乘法的ASCII調(diào)整調(diào)整3456067502010378邏輯運(yùn)算邏輯運(yùn)算循環(huán)移位循環(huán)移位循環(huán)左移循環(huán)左移循環(huán)右移循環(huán)右移通過(guò)進(jìn)位的循環(huán)左移通過(guò)進(jìn)位的循環(huán)左移通過(guò)進(jìn)位的循環(huán)右移通過(guò)進(jìn)位

2、的循環(huán)右移91邏輯運(yùn)算指令邏輯運(yùn)算指令(Logical Operations) NOT取反指令取反指令(Logical Not)指令格式:指令格式:NOT 目的目的指令功能:指令功能:目的目的 目的取反目的取反操作數(shù)要求:操作數(shù)要求: 可以是可以是8位或位或16位寄存器、存儲(chǔ)器。位寄存器、存儲(chǔ)器。 對(duì)于存儲(chǔ)器操作,需指明是字還是字節(jié)。對(duì)于存儲(chǔ)器操作,需指明是字還是字節(jié)。 注意注意:指令執(zhí)行后,:指令執(zhí)行后,對(duì)標(biāo)志位無(wú)影響。對(duì)標(biāo)志位無(wú)影響。 例例 NOT AX;AX AX取反取反 NOT BL;BL BL取反取反 NOT BYTE PTRBX;對(duì)存儲(chǔ)單元字節(jié)內(nèi)容取反后送回該單元;對(duì)存儲(chǔ)單元字節(jié)內(nèi)

3、容取反后送回該單元10 AND邏輯與指令(Logical AND)指令格式:AND 目的,源指令功能:目的目的源主要用于使操作數(shù)的某些位保留(和“1”相與),而使某些位清除(和“0”相與)。 OR邏輯或指令(Logical OR)指令格式:OR 目的,源指令功能:目的目的源 主要用于使操作數(shù)的某些位保留(和“0”相或),而使某些位置位(和“1”相或)。 例 MOV AX, 3538H AND AX, 0F0FH ; AX 0508H OR AX,3030H;AX 3538H11 XOR異或操作指令異或操作指令(Exclusive OR)指令格式:指令格式:XOR 目的,源目的,源指令功能:指令

4、功能:目的目的目的目的源源主要主要用于使操作數(shù)的某些位保留用于使操作數(shù)的某些位保留(和(和“0”相異或),而使相異或),而使某些位取反某些位取反(和(和“1”相異或)相異或) TEST測(cè)試指令測(cè)試指令(Test)指令格式:指令格式:TEST 目的,源目的,源指令功能:指令功能:目的目的源源邏輯與操作,并修改標(biāo)志位,但不回送結(jié)果,兩個(gè)操作數(shù)都不變。邏輯與操作,并修改標(biāo)志位,但不回送結(jié)果,兩個(gè)操作數(shù)都不變。 常用于在要檢測(cè)某些條件是否滿足,但又不希望改變?cè)胁僮鲾?shù)的常用于在要檢測(cè)某些條件是否滿足,但又不希望改變?cè)胁僮鲾?shù)的 情況下。緊跟在這條指令后面的往往是一條條件轉(zhuǎn)移指令,根據(jù)測(cè)情況下。緊跟在這

5、條指令后面的往往是一條條件轉(zhuǎn)移指令,根據(jù)測(cè) 試結(jié)果產(chǎn)生分支,轉(zhuǎn)向不同的處理程序。試結(jié)果產(chǎn)生分支,轉(zhuǎn)向不同的處理程序。 12對(duì)對(duì)AND 、 OR 、XOR和和TEST指令的說(shuō)明:指令的說(shuō)明: 源操作數(shù)可以是源操作數(shù)可以是8位或位或16位立即數(shù)、寄存器、存儲(chǔ)器;位立即數(shù)、寄存器、存儲(chǔ)器; 目的操作數(shù)只能是寄存器、存儲(chǔ)器,兩操作數(shù)不能同時(shí)為存儲(chǔ)器;目的操作數(shù)只能是寄存器、存儲(chǔ)器,兩操作數(shù)不能同時(shí)為存儲(chǔ)器; 指令執(zhí)行后,均將指令執(zhí)行后,均將CF和和OF清零清零,ZF、SF和和 PF反映操作結(jié)果,反映操作結(jié)果,AF未定未定義。義。例例 設(shè)設(shè)AL寄存器中存有報(bào)警標(biāo)志。若寄存器中存有報(bào)警標(biāo)志。若D71,表示

6、溫度報(bào)警,程序要轉(zhuǎn)到溫,表示溫度報(bào)警,程序要轉(zhuǎn)到溫度報(bào)警處理程序度報(bào)警處理程序T_ ALARM;D61,則轉(zhuǎn)壓力報(bào)警程序,則轉(zhuǎn)壓力報(bào)警程序P_ALARM。用。用TEST指令來(lái)實(shí)現(xiàn)這種功能。指令來(lái)實(shí)現(xiàn)這種功能。 解:解: TEST AL, 80H; 查查AL的的D71? JNZ T_ALARM; 是是1(非零非零),則轉(zhuǎn)溫度報(bào)警程序,則轉(zhuǎn)溫度報(bào)警程序 TEST AL, 40H ; D70,D61? JNZ P_ALARM; 是是1,轉(zhuǎn)壓力報(bào)警,轉(zhuǎn)壓力報(bào)警 (其中:(其中:JNZ為條件轉(zhuǎn)移指令,表示結(jié)果非為條件轉(zhuǎn)移指令,表示結(jié)果非0 (ZF1)則轉(zhuǎn)移)則轉(zhuǎn)移)132算術(shù)邏輯移位指令(Shift A

7、rithmetic and Shift Logical) 這類指令可對(duì)寄存器、存儲(chǔ)器中的字或字節(jié)的各位進(jìn)行算術(shù)移位或邏輯移位,移位的次數(shù)由指令中的計(jì)數(shù)值決定。 移位指令的操作示意圖如下:14 SAL算術(shù)左移指令算術(shù)左移指令(Shift Arithmetic Left) 指令格式:指令格式:SAL 目的,計(jì)數(shù)值目的,計(jì)數(shù)值 SHL邏輯左移指令邏輯左移指令(Shift Logic Left)指令格式:指令格式:SHL 目的,計(jì)數(shù)值目的,計(jì)數(shù)值指令功能:指令功能:以上兩條指令的功能完全相同,均將寄存器或存儲(chǔ)器中的以上兩條指令的功能完全相同,均將寄存器或存儲(chǔ)器中的目的操作數(shù)目的操作數(shù)的各位的各位左移左

8、移,每移一次,最低有效位,每移一次,最低有效位LSB補(bǔ)補(bǔ)0,而最高有效位而最高有效位MSB進(jìn)入標(biāo)志進(jìn)入標(biāo)志位位CF。例例 MOV AH,06H;AH=06H SAL AH,1;將;將AH的內(nèi)容左移的內(nèi)容左移1次,次,AH=0CH MOV CL,03H SHL DI,CL;將;將DI的內(nèi)容左移的內(nèi)容左移3次次 SAL BYTE PTRBX ;將內(nèi)存單元的字節(jié)左移;將內(nèi)存單元的字節(jié)左移1位位15注意:注意:移動(dòng)一次,相當(dāng)于將移動(dòng)一次,相當(dāng)于將目的操作數(shù)目的操作數(shù)乘以乘以2;計(jì)數(shù)值就是所要移位的次數(shù)。計(jì)數(shù)值就是所要移位的次數(shù)。若移位一次,直接將計(jì)數(shù)值置若移位一次,直接將計(jì)數(shù)值置l;移位次數(shù)大于移位次

9、數(shù)大于1,將移位次數(shù)送進(jìn),將移位次數(shù)送進(jìn)CL,再把,再把CL放在計(jì)數(shù)值位置上。放在計(jì)數(shù)值位置上。對(duì)標(biāo)志位的影響對(duì)標(biāo)志位的影響:移位次數(shù)為移位次數(shù)為1時(shí),若移位后最高位的值被改變,時(shí),若移位后最高位的值被改變,OF置置1,否則,否則OF清清0。多次移位時(shí),多次移位時(shí),OF的值不確定。的值不確定。不論移多少次,不論移多少次,CF總是等于目的操作數(shù)總是等于目的操作數(shù)最后被移出去的值最后被移出去的值。SF和和 ZF 將根將根據(jù)指令執(zhí)行后目的操作數(shù)的狀態(tài)來(lái)決定,據(jù)指令執(zhí)行后目的操作數(shù)的狀態(tài)來(lái)決定,PF只有當(dāng)目的操作數(shù)在只有當(dāng)目的操作數(shù)在AL中時(shí)才中時(shí)才有效,有效,AF不定不定。16 邏輯右移指令邏輯右移

10、指令(Shift Logic Right)指令格式:指令格式:SHR 目的,計(jì)數(shù)值目的,計(jì)數(shù)值指令功能:指令功能:各位進(jìn)行右移各位進(jìn)行右移。每移一次,。每移一次,低位進(jìn)入低位進(jìn)入CF,最高位補(bǔ)最高位補(bǔ)0。 注意:注意:若目的操作數(shù)為若目的操作數(shù)為無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù),每,每右移一次右移一次,目的操作數(shù),目的操作數(shù)除以除以2,余數(shù)被丟掉。余數(shù)被丟掉。例例 用右移的方法作除法用右移的方法作除法1338165。 解:解: MOV AL,1000 0101B;AL133 MOV CL,03H ;CL移位次數(shù)移位次數(shù) SHR AL,CL;右移;右移3次次 結(jié)果:結(jié)果:指令執(zhí)行后,指令執(zhí)行后,AL10H16,

11、余數(shù)余數(shù)5被丟失被丟失。標(biāo)志位標(biāo)志位CF、AF不定。不定。 17 SAR算術(shù)右移指令(Shift Arithmetic Right)指令格式:SAR 目的,計(jì)數(shù)值指令功能:各位右移。每移位一次,最低位進(jìn)入CF,但最高位(即符號(hào)位)保持不變。注意:每移一次,相當(dāng)于對(duì)帶符號(hào)數(shù)進(jìn)行除2操作。例 用SAR指令計(jì)算128816。 解: MOV AL,1000 0000B ; AL128 MOV CL,03H ; 右移次數(shù)3 SAR AL,CL ; 算術(shù)右移3次后,AL11110000B 0F0H16 11110000B 原碼為:10010000B181920212223指令名稱指令名稱字節(jié)字節(jié)/字操作字

12、操作字節(jié)操作字節(jié)操作字操作字操作字符串傳送字符串傳送字符串比較字符串比較字符串掃描字符串掃描字符串裝入字符串裝入字符串存儲(chǔ)字符串存儲(chǔ)MOVS 目的串,源串目的串,源串CMPS 目的串,源串目的串,源串SCAS 目的串目的串LODS 源串源串STOS 目的串目的串MOVSCMPSSCASLODSSTOSMOVSWCMPSWSCASWLODSWSTOSW說(shuō)明:說(shuō)明:每種指令都有每種指令都有3種格式種格式。有兩種方法用以說(shuō)明是有兩種方法用以說(shuō)明是字節(jié)操作還是字操作。字節(jié)操作還是字操作。方法一:方法一:用指令中的源串和目的用指令中的源串和目的串名串名(即操作數(shù)即操作數(shù))來(lái)來(lái)表明表明是字節(jié)還是字;是字節(jié)

13、還是字;方法二方法二:在指令助記符后在指令助記符后加加B說(shuō)明是字節(jié),說(shuō)明是字節(jié),加加W說(shuō)明是字操作。說(shuō)明是字操作。24關(guān)于隱合約定:關(guān)于隱合約定: 源串源串:起始地址:起始地址(或末地址或末地址)為為DS:SI。源串允許源串允許使用使用段超越前綴來(lái)修段超越前綴來(lái)修 改段地址改段地址。目的串目的串:起始地址:起始地址(或末地址或末地址)為為ES:DI。目的串不允許目的串不允許使用使用段超越前綴修段超越前綴修改改ES。如果要在同一段內(nèi)進(jìn)行串運(yùn)算,必須使。如果要在同一段內(nèi)進(jìn)行串運(yùn)算,必須使DS和和ES指向同一段。指向同一段。指針指針:每執(zhí)行一次字符串指令,:每執(zhí)行一次字符串指令,指針指針SI和和DI

14、會(huì)會(huì)自動(dòng)修改自動(dòng)修改,以指向下一個(gè)待,以指向下一個(gè)待操作單元。操作單元。DF標(biāo)志:控制字符串處理的方向。標(biāo)志:控制字符串處理的方向。 DF0為遞增方向。為遞增方向。DS:SI指向源串首地址,每執(zhí)行一次串操作:指向源串首地址,每執(zhí)行一次串操作:字節(jié)串操作時(shí),字節(jié)串操作時(shí),SI、DI分別增分別增1;字串操作時(shí),;字串操作時(shí),SI和和DI分別增分別增2; DF1為遞減方向。為遞減方向。DS:SI指向源串末地址,每執(zhí)行一次串操作:指向源串末地址,每執(zhí)行一次串操作:字節(jié)串操作時(shí)減字節(jié)串操作時(shí)減1;字串操作時(shí)減;字串操作時(shí)減2。 STD使使DF置置1,CLD將將DF清清0。串長(zhǎng)度:串長(zhǎng)度:要處理的要處理的

15、字符串長(zhǎng)度字符串長(zhǎng)度(字節(jié)或字?jǐn)?shù)字節(jié)或字?jǐn)?shù))放放在在CX寄存器中。寄存器中。25 關(guān)于重復(fù)前綴:關(guān)于重復(fù)前綴:功能:功能:在基本指令前加重復(fù)前綴,可在基本指令前加重復(fù)前綴,可加快加快串運(yùn)算指令的串運(yùn)算指令的執(zhí)行速度執(zhí)行速度。每重復(fù)執(zhí)行。每重復(fù)執(zhí)行一次,地址一次,地址指針指針SI和和DI按方向標(biāo)志按方向標(biāo)志自動(dòng)修改自動(dòng)修改,CX的值的值自動(dòng)減自動(dòng)減1。類型與格式:類型與格式: REP:無(wú)條件重復(fù)無(wú)條件重復(fù)(Repeat),常與,常與 (MOVS)連用連用,連續(xù)傳送字符串。,連續(xù)傳送字符串。直直 到到傳送完畢,即傳送完畢,即CX0為止為止。 REPE/REPZ:相等相等/結(jié)果為零則重復(fù)結(jié)果為零則重

16、復(fù)(Repeat while Equal/Zero),常與,常與 (CMPS)連用連用,連續(xù)比較字符串。當(dāng)兩個(gè)字符串相等,連續(xù)比較字符串。當(dāng)兩個(gè)字符串相等(ZF1)和和CX0時(shí),則時(shí),則重復(fù)進(jìn)行比較,重復(fù)進(jìn)行比較,直到直到ZF0或或CX0為止為止。( 比較不同點(diǎn))比較不同點(diǎn)) REPNE/REPNZ :不相等不相等/結(jié)果非零則重復(fù)結(jié)果非零則重復(fù)Repeat while Not Equal/Not Zero),常與常與 (SCAS)連用連用,當(dāng)結(jié)果非,當(dāng)結(jié)果非0(ZF0)和和CX0時(shí),重復(fù)進(jìn)行掃描,直時(shí),重復(fù)進(jìn)行掃描,直到到ZF1或或CX0為止。為止。(找關(guān)鍵字)(找關(guān)鍵字) 帶有重復(fù)前綴的串指

17、令執(zhí)行過(guò)程中允許有中斷進(jìn)入帶有重復(fù)前綴的串指令執(zhí)行過(guò)程中允許有中斷進(jìn)入。26指令格式:指令格式:MOVS 目的串,源串目的串,源串指令功能:指令功能:SI作指針的源串中的一個(gè)字節(jié)或字作指針的源串中的一個(gè)字節(jié)或字DI作指針的目的串;自動(dòng)作指針的目的串;自動(dòng)修改指針修改指針SI和和DI。應(yīng)用:應(yīng)用:解決解決MOV指令不能直接在指令不能直接在存儲(chǔ)單元間進(jìn)行數(shù)據(jù)傳送存儲(chǔ)單元間進(jìn)行數(shù)據(jù)傳送的問(wèn)題。的問(wèn)題。若使用若使用重復(fù)前綴重復(fù)前綴,還可以利用一條指令,還可以利用一條指令傳送一批數(shù)據(jù)傳送一批數(shù)據(jù)。例例 要求把數(shù)據(jù)段中以要求把數(shù)據(jù)段中以SRC_MESS為偏移地址的一串字符為偏移地址的一串字符“HELLO!

18、”,傳送到附加段中以,傳送到附加段中以NEW_LOC開(kāi)始的單元中。開(kāi)始的單元中。27 DATA SEGMENT;數(shù)據(jù)段;數(shù)據(jù)段 SRC_MESS DB HELLO!;源串;源串 DATA ENDS ; EXTRA SEGMENT;附加段;附加段 NEW_LOC DB 6 DUP(?) ;存放目的串;存放目的串 EXTRA ENDS ; CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:EXTRA START: MOV AX,DATA MOV DS,AX ;DS數(shù)據(jù)段段址數(shù)據(jù)段段址 28MOV AX,EXTRA MOV ES,AX;ES附加段段址附加段段址LEA

19、SI,SRC_MESS;SI指向源串偏移地址指向源串偏移地址LEA DI,NEW_LOC;DI指向目的串偏移地址指向目的串偏移地址MOV CX,6;CX作串長(zhǎng)度計(jì)數(shù)器作串長(zhǎng)度計(jì)數(shù)器 CLD;清方向標(biāo)志,地址增量;清方向標(biāo)志,地址增量REP MOVSB ;重復(fù)傳送串中各字節(jié),直到;重復(fù)傳送串中各字節(jié),直到CX=0 其中其中“REP MOVSB”指令可用以下幾條指令代替:指令可用以下幾條指令代替: AGAIN: MOVS NEW_LOC, SRC_MESS DEC CX JNZ AGAIN 292CMPS字符串比較指令字符串比較指令(Compare Sting)指令格式:指令格式:CMPS 目的串

20、,源串目的串,源串指令功能:指令功能:SI作指針的源串作指針的源串減去減去DI作指針的目的串?dāng)?shù)據(jù),作指針的目的串?dāng)?shù)據(jù),結(jié)果結(jié)果反映在反映在標(biāo)志位標(biāo)志位上上;兩個(gè)數(shù)據(jù)串的;兩個(gè)數(shù)據(jù)串的原始值不變?cè)贾挡蛔?;源串和目的串;源串和目的串指針自?dòng)修改指針自動(dòng)修改,指向下一對(duì)待,指向下一對(duì)待比較的串。比較的串。 加重復(fù)前綴:加重復(fù)前綴: REPE/REPZ CMPS ;直至;直至CX0(比完了比完了)或或ZF0(兩串不相等兩串不相等)時(shí)時(shí)停止停止操作。操作。 REPNE/REPNZ CMP;直至;直至CX0(比完了比完了)或或ZF1(兩串相等兩串相等)時(shí)時(shí)停停止止比較。比較。例例 比較兩個(gè)字符串,一個(gè)是

21、程序中設(shè)定的口令串比較兩個(gè)字符串,一個(gè)是程序中設(shè)定的口令串PASSWORD,另一個(gè)是,另一個(gè)是從鍵盤輸入的字符串從鍵盤輸入的字符串IN_WORD,若輸入串與口令串相同,程序?qū)㈤_(kāi)始執(zhí)行。,若輸入串與口令串相同,程序?qū)㈤_(kāi)始執(zhí)行。否則,程序驅(qū)動(dòng)否則,程序驅(qū)動(dòng)PC機(jī)的揚(yáng)聲器發(fā)聲,警告用戶口令不符,拒絕往下執(zhí)行。機(jī)的揚(yáng)聲器發(fā)聲,警告用戶口令不符,拒絕往下執(zhí)行。 這可以用這可以用CMPS指令來(lái)實(shí)現(xiàn),有關(guān)程序段如下:指令來(lái)實(shí)現(xiàn),有關(guān)程序段如下:30DATASEGMENT;數(shù)據(jù)段數(shù)據(jù)段PASSWORDDB750424LI;口令串口令串IN_WORDDB750424LE;從鍵盤輸入的串從鍵盤輸入的串COUNTE

22、QU8;串長(zhǎng)度串長(zhǎng)度DATAENDSCODESEGMENT;代碼段代碼段LEASI, PASSWORD;源串指針源串指針LEADI, IN_WORD;目的串指針目的串指針MOV CX, COUNT;串長(zhǎng)度串長(zhǎng)度CLD;地址增量地址增量31REPZ CMPSB;CX0且串相等時(shí)重復(fù)比較且串相等時(shí)重復(fù)比較JNESOUND;若不相等,轉(zhuǎn)發(fā)聲程序若不相等,轉(zhuǎn)發(fā)聲程序OK:;比完且相等,往下執(zhí)行比完且相等,往下執(zhí)行SOUND: ;使使PC機(jī)揚(yáng)聲器發(fā)聲機(jī)揚(yáng)聲器發(fā)聲;并退出并退出CODEENDS323. SCAS3. SCAS字符串掃描指令字符串掃描指令( (Scan String) ) 指令格式指令格式:

23、SCAS 目的串目的串指令功能指令功能:AL/AX(字節(jié)字節(jié)/字操作字操作)內(nèi)容內(nèi)容減去減去ES:DI中的串元素,中的串元素,結(jié)果反映在標(biāo)志位上結(jié)果反映在標(biāo)志位上,源操作數(shù)不變?cè)床僮鲾?shù)不變,操作后目的串,操作后目的串指針會(huì)指針會(huì)自動(dòng)修改自動(dòng)修改,指向下一個(gè)待搜索的串元素。,指向下一個(gè)待搜索的串元素。應(yīng)用:應(yīng)用: 利用利用SCAS指令,可在內(nèi)存中指令,可在內(nèi)存中搜索關(guān)鍵字搜索關(guān)鍵字。指令執(zhí)行前,。指令執(zhí)行前,必須事先將關(guān)鍵字存在必須事先將關(guān)鍵字存在AL(字節(jié)字節(jié))或或AX(字字)中,才能用中,才能用SCAS指令進(jìn)行搜索。指令進(jìn)行搜索。 SCAS指令指令可以加重復(fù)前綴可以加重復(fù)前綴。33 例例 在

24、某一字符串中搜尋是否有字符在某一字符串中搜尋是否有字符A,若有,則把搜索次數(shù)記下來(lái),送到,若有,則把搜索次數(shù)記下來(lái),送到BX寄存器中,若沒(méi)有查到,則將寄存器中,若沒(méi)有查到,則將BX寄存器清寄存器清0。設(shè)字符串起始地址。設(shè)字符串起始地址STRING的的偏移地址為偏移地址為0,字符串長(zhǎng)度為,字符串長(zhǎng)度為CX。解:解: MOV DI,OFFSET STRING;DI字符串偏移地址字符串偏移地址 MOV CX,COUNT;CX字符串長(zhǎng)度字符串長(zhǎng)度 MOV AL,A;AL關(guān)鍵字關(guān)鍵字A的的A5CII碼碼 CLD;清標(biāo)志方向;清標(biāo)志方向 REPNE SCASB ;CX0(沒(méi)查完)和(沒(méi)查完)和ZF=0(不

25、相等)時(shí)重復(fù)(不相等)時(shí)重復(fù) JZ FIND;若;若ZF=1,表示已搜到,轉(zhuǎn)出,表示已搜到,轉(zhuǎn)出 MOV DI,0;若;若ZF=0,表示沒(méi)搜到,表示沒(méi)搜到,DI 0FIND:MOV BX,DI;BX搜索次數(shù)搜索次數(shù) HLT說(shuō)明:說(shuō)明:DI初值存起始地址初值存起始地址偏移量偏移量0,搜索一次后,搜索一次后,DI自動(dòng)加自動(dòng)加1,使,使DI的值等于的值等于1;每執(zhí)行一次搜索操作,每執(zhí)行一次搜索操作,DI自動(dòng)增自動(dòng)增1;因此可用因此可用DI的值表示的值表示搜索次數(shù)搜索次數(shù)。344LODS數(shù)據(jù)串裝入指令數(shù)據(jù)串裝入指令(Load String)指令格式:指令格式:LODS 源串源串指令功能:指令功能:DS

26、:SI中的串元素中的串元素 AL/AX(字節(jié)字節(jié)/字操作字操作)中,中,修改修改SI,以指向串,以指向串中的下一個(gè)元素,修改量中的下一個(gè)元素,修改量遵守隱含約定。遵守隱含約定。 注:注:該指令加該指令加重復(fù)前綴意義不大重復(fù)前綴意義不大,因?yàn)橹貜?fù)傳送只能保留最后寫入的數(shù)據(jù)。,因?yàn)橹貜?fù)傳送只能保留最后寫入的數(shù)據(jù)。 5STOS數(shù)據(jù)串存儲(chǔ)指令數(shù)據(jù)串存儲(chǔ)指令(Store string)指令格式:指令格式:STOS 目的串目的串指令功能:指令功能:AL/AX(字節(jié)字節(jié)/字操作字操作)的一個(gè)字節(jié)或字的一個(gè)字節(jié)或字ES:DI所指的目的串所指的目的串; 修改修改DI,以指向串中的下一個(gè)單元。,以指向串中的下一個(gè)

27、單元。關(guān)于重復(fù)前綴關(guān)于重復(fù)前綴:“REP STOS” ,可用累加器中的常數(shù),對(duì),可用累加器中的常數(shù),對(duì)數(shù)據(jù)串初始化數(shù)據(jù)串初始化。如初始化為全如初始化為全0串串35把數(shù)據(jù)塊作為數(shù)據(jù)串處理:把數(shù)據(jù)塊作為數(shù)據(jù)串處理: 用用SI作源串指針;作源串指針; DI和和BX分別作正、負(fù)數(shù)目的緩沖區(qū)的指針?lè)謩e作正、負(fù)數(shù)目的緩沖區(qū)的指針; CX用于控制循環(huán)次數(shù)。用于控制循環(huán)次數(shù)。 技巧:技巧: 使用使用STOSB指令必須以指令必須以SI為源指針,為源指針,DI為目的指針;為目的指針; 負(fù)數(shù)區(qū)的目的指針在負(fù)數(shù)區(qū)的目的指針在BX中,中,要用要用XCHG指令指令將將BX內(nèi)容送進(jìn)內(nèi)容送進(jìn)DI,讓,讓DI指向指向負(fù)數(shù)區(qū),同

28、時(shí)也把負(fù)數(shù)區(qū),同時(shí)也把DI中的正數(shù)區(qū)目的指針保護(hù)了起來(lái);中的正數(shù)區(qū)目的指針保護(hù)了起來(lái); 執(zhí)行執(zhí)行STOSB指令后,再用指令后,再用XCHG指令指令交換回來(lái),以便下次重復(fù)執(zhí)行時(shí)(交換回來(lái),以便下次重復(fù)執(zhí)行時(shí)(轉(zhuǎn)回轉(zhuǎn)回GOON標(biāo)號(hào)后),標(biāo)號(hào)后),LODS指令仍能正確執(zhí)行。指令仍能正確執(zhí)行。 寫出如下程序段:寫出如下程序段:例例 若在數(shù)據(jù)段中有一個(gè)數(shù)據(jù)塊,起始地址為若在數(shù)據(jù)段中有一個(gè)數(shù)據(jù)塊,起始地址為BLOCK,數(shù)據(jù)塊中的數(shù)為,數(shù)據(jù)塊中的數(shù)為8位帶位帶符號(hào)數(shù),要求將其中所含的正、負(fù)數(shù)分開(kāi),然后把正數(shù)送到符號(hào)數(shù),要求將其中所含的正、負(fù)數(shù)分開(kāi),然后把正數(shù)送到附加段附加段中始址為中始址為PLUSDATA的

29、緩沖區(qū),負(fù)數(shù)則送到的緩沖區(qū),負(fù)數(shù)則送到附加段附加段中始址為中始址為MINUS DATA的緩沖區(qū)。的緩沖區(qū)。36START: MOVSI, OFFSET BLOCK;SI為源串指針為源串指針MOVDI, OFFSET PLUS_DATA;DI為正數(shù)目的區(qū)指針為正數(shù)目的區(qū)指針MOVBX, OFFSET MINUS_DATA;BX為負(fù)數(shù)目的區(qū)指針為負(fù)數(shù)目的區(qū)指針MOVCX, COUNT;CX放循環(huán)次數(shù)放循環(huán)次數(shù)CLDGOON: LODSBLOCK;AL源操作數(shù)的一個(gè)字節(jié)源操作數(shù)的一個(gè)字節(jié)TESTAL, 80H ;是負(fù)數(shù)?是負(fù)數(shù)?JNZMINUS;是,轉(zhuǎn)是,轉(zhuǎn)MINUSSTOSB;非負(fù)數(shù),將字節(jié)送正數(shù)區(qū)非負(fù)數(shù),將字節(jié)送正數(shù)區(qū)JMPAGAIN;處理下一個(gè)字節(jié)處理下一個(gè)字節(jié)MINUS: XCHGBX, DI;交換正負(fù)數(shù)指針交換正負(fù)數(shù)指針STOSB;負(fù)數(shù)送入負(fù)數(shù)區(qū)負(fù)數(shù)送入負(fù)數(shù)區(qū)XCHGBX, DI;恢復(fù)正負(fù)數(shù)指針恢復(fù)正負(fù)數(shù)指針AGAIN: DECCX;次數(shù)減次數(shù)減1JNZGOON;未處理完,繼續(xù)傳送未處理完,繼續(xù)傳送HLT;停機(jī)停機(jī)20:1137

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!