第3章-4串操作指令_第1頁(yè)
第3章-4串操作指令_第2頁(yè)
第3章-4串操作指令_第3頁(yè)
第3章-4串操作指令_第4頁(yè)
第3章-4串操作指令_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章指令系統(tǒng)

串操作指令9/11/202313.3.4串操作指令串操作指令用來處理存放在存儲(chǔ)器中的一串字符或數(shù)據(jù)。數(shù)據(jù)串可以是字節(jié)串或字串。串可以是數(shù)值(二進(jìn)制/BCD碼),字母或數(shù)字(ASCII碼)。數(shù)據(jù)串在內(nèi)存中連續(xù)存放,以首地址、數(shù)據(jù)個(gè)數(shù),數(shù)據(jù)類型等來表達(dá)。數(shù)據(jù)串長(zhǎng)度的最大值為64K字節(jié)。9/11/202321.串傳送指令MOVS(1)字節(jié)串傳送 MOVSB;[DI]←[SI] SI←SI±1;DI←DI±1其中:①目標(biāo)操作數(shù)約定為內(nèi)存DI尋址(約定段ES),源操作數(shù)約定為內(nèi)存SI尋址(約定段DS),

且都是隱含的。即DS:SI指向的字節(jié)串傳送到ES:DI指向的內(nèi)存區(qū)。

②+/-由DF(方向標(biāo)志)確定,

若DF=0,從低地址向高地址方向處理,SI,DI增加

DF=1,從高地址向低地址方向處理,SI,DI減小不影響標(biāo)志位9/11/202331.串傳送指令MOVS(2)字串傳送

MOVSW ;[DI]←[SI] [DI±1]←[SI±1] SI←SI±2 DI←DI±2 或?qū)懗桑?/p>

MOVS目標(biāo)串,源串注意:MOVS與MOV指令不同,可以實(shí)現(xiàn)內(nèi)存單元之間的數(shù)據(jù)傳送。9/11/202342.串比較指令

CMPSB ; [SI]-[DI]

CMPSW SI←SI±1/±2(B/W) DI←DI±1/±2 或:CMPS源串,目標(biāo)串

相減結(jié)果:影響所有標(biāo)志位,自動(dòng)修改SI、DI。

作用:比較內(nèi)存中兩個(gè)字符串是否相等。若相同,則ZF=1。9/11/202353.串搜索(串掃描)指令

SCAS目標(biāo)串

;AL-[DI](B)SCASB/SCASW

;AX-[DI](W) DI←DI±1/±2其中:源——AL或AX,隱含的,關(guān)鍵字目標(biāo)——內(nèi)存DI尋址(ES),隱含

作用:在字符串中搜索有否與AL或AX中相同的字符。9/11/202364.讀串(串裝入)指令

LODS源串;

AL←[SI] (B)

LODSB/LODSW

;AX←[SI] (W) SI←SI±1/2(B/W)其中:目的——AL或AX,隱含

源——內(nèi)存SI尋址(DS),隱含

不影響標(biāo)志位

一般不使用重復(fù)前綴。9/11/202375.寫串(串存入)指令 STOS目標(biāo)串;[DI]←AL(B) STOSB/STOSW

;[DI]←AX(W) DI←DI±1/±2(B/W)不影響標(biāo)志位。9/11/202386.重復(fù)前綴指令重復(fù)指令:REP/REPE/REPNE/REPZ/REPNZ重復(fù)前綴指令格式:REP串指令

(1)是否重復(fù)受到隱含的計(jì)數(shù)器CX的控制。每執(zhí)行一次串操作,計(jì)數(shù)器CX減1計(jì)數(shù),直到CX=0為止。(2)CX:計(jì)數(shù)器的初值為字節(jié)個(gè)數(shù)或字個(gè)數(shù)(3)不影響標(biāo)志位。

9/11/20239重復(fù)前綴指令REP前綴指令用在MOVS、LODS、STOS指令前。

REPMOVS REPLODS REPSTOS9/11/202310(2)有附加條件的重復(fù)前綴指令①附加條件為ZF=‘1’的重復(fù)前綴指令

REPE串指令;相同則重復(fù) 或REPZ串指令重復(fù)條件:

·CX≠0·ZF=1不影響標(biāo)志位9/11/202311(2)有附加條件的重復(fù)前綴指令 ② 附加條件為ZF=‘0’的重復(fù)前綴指令

REPNE串指令;不同則重復(fù) 或 REPNZ串指令

重復(fù)條件:·CX≠0·ZF=0

REPE/REPZ CMPS;當(dāng)兩個(gè)串有不同時(shí)退出重

CMPSB

復(fù)。用來搜索與給定值不同

CMPSW

的內(nèi)容。REPNE/REPNZ SCAS;當(dāng)在字符串找到與AL或AX SCASB中字符相同的字符時(shí)退出重

SCASW

復(fù)。用來搜索與給定值相同

的內(nèi)容。9/11/202312串操作的小結(jié)操作數(shù)為內(nèi)存操作數(shù)或寄存器操作數(shù):隱含的、約定的。內(nèi)存操作數(shù):源串:DS:[SI]目的:ES:[DI]寄存器操作數(shù):字節(jié):AL;字:AX初始化:SI和DI的初始化方向標(biāo)志的初始化:CLD;/STD;計(jì)數(shù)器CX的初始化關(guān)鍵字(AL/AX)的初始化(如果有的話)9/11/202313例3.30串操作

串TAB1:字串,5個(gè)字,移到TAB2區(qū)解1:LEASI,TAB1LEADI,TAB2MOVCX,5CLD;令DF=0,“+”REPMOVSW

解2:LEASI,TAB1+8LEADI,TAB2+8MOVCX,5

STD;令DF=1,“-”REPMOVSW9/11/202314例3.30串操作解3:LEASI,TAB1LEADI,TAB2MOVCX,10CLD;令DF=0,“+”REPMOVSB9/11/202315例3.31串操作

查串TAB中有無‘A’,找到則…..LEADI,TABMOVAL,41HMOVCX,4CLD;令DF=0,“+”REPNZSCASB;AL-ES:[DI];ZF=?;CX=?

TABCXZF結(jié)果12340NZ(ZF=0)找完,未找到

123‘A’0ZF=1找完,找到12‘A’41ZF=1未找完,找到1‘A’342ZF=1未找完,找到‘A’2343ZF=1未找完,找到9/11/202316例3.32串操作

將1000H單元開始的100個(gè)存儲(chǔ)單元全部清零。

MOVDI,1000HMOVCX,0032H;50個(gè)字CLD;令DF=0,“+”MOVAX,0REPSTOSW9/11/202317串操作舉例例:在ES段中從1000H開始有10個(gè)ASCII

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論