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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

CMPSB ; [SI]-[DI]

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

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

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

SCAS目標串

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

;AX-[DI](W) DI←DI±1/±2其中:源——AL或AX,隱含的,關(guān)鍵字目標——內(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),隱含

不影響標志位

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

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

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

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不影響標志位9/11/202311(2)有附加條件的重復(fù)前綴指令 ② 附加條件為ZF=‘0’的重復(fù)前綴指令

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

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

REPE/REPZ CMPS;當兩個串有不同時退出重

CMPSB

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

CMPSW

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

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的初始化方向標志的初始化:CLD;/STD;計數(shù)器CX的初始化關(guān)鍵字(AL/AX)的初始化(如果有的話)9/11/202313例3.30串操作

串TAB1:字串,5個字,移到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個存儲單元全部清零。

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

溫馨提示

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

評論

0/150

提交評論