4.串操作指令
串可以是字節(jié)串(一組字節(jié))或字串(一組字)。串指令有兩類,每類有5種。一類是串操作命令,一類是控制操作重復執(zhí)行的前綴命令。串操作時,下列寄存器及標志起著特定的作用,程序應根據(jù)操作的具體要求先賦予初值。SI寄存器 源串變址用DI寄存器 目的串變址用CX寄存器 重復次數(shù)寄存器AL/AX 掃描值(關鍵字)FLAGS中標志位:
DF 0表示重復操作中DI、SI應自動增量,1表示自動減量。 ZF 用于控制掃描或比較操作結果。
(1)基本串操作命令
�、費OVS
格式: MOVS OPRD1,OPRD2
功能:將由SI作為偏移地址的源串中的一個字節(jié)或字,傳送到由DI作為偏移地址的目的串,且相應修改偏移地址,以指向串中下一個元素。傳送完一個字節(jié)或字后,則依據(jù)控制標志位DF和源、目的操作數(shù)的屬性,修改偏移地址。在使用MOVS指令之前,必須將源、目的操作數(shù)的偏移地址分別送SI、DI,并設置DF。
�、贛OVSB/MOVSW
字節(jié)串/字串傳送命令,不帶操作數(shù),地址修改MOVSB命令以±1形式修改偏移地址,MOVSW以±2形式修改偏移地址。其余與MOVS相同。
③CMPS
格式: CMPS OPRD1,OPRD2
功能:字節(jié)串或字串比較。從由SI作為偏移地址的源串中減去由DI為偏移地址的目標串(字或字節(jié)),減的結果不送至任何操作數(shù),僅反映到標志位上。同時修改源、目的串的偏移地址,以指向串中的下一個元素。標志位AF、CF、OF、PF、SF和ZF反映兩串元素之間的關系。
�、蹸MPSB/CMPSW
字節(jié)串/字串比較,無操作數(shù)。
�、軱ODS OPRD
讀出字節(jié)串或字串。從由SI為偏移地址的源串中讀出一個字節(jié)或一個字送AL或AX,同時修改偏移地址,指向串的下一個元素。此指令對標志位無影響。
⑥LODSB/LODSW
字節(jié)或字操作,無操作數(shù)。
�、逽CAS
格式: SCAS OPRD
功能:搜索(掃描)串元素命令。從AL(字節(jié)操作)或AX的內容中減去由DI作為偏移地址的目標串元素。結果不改變累加器的值,只改變標志位。利用SCAS指令可以進行搜索,此時將搜索關鍵字放在AL(字節(jié))或AX(字)中,用于查找字符串中有無此關鍵字,記下查找次數(shù)。
�、郤CASB/SCASW
搜索串中字節(jié)或字元素,無操作數(shù)。
⑨STOS
格式:STOS OPRD
功能:存儲字節(jié)或字串的指令。將AL(字節(jié))或AX(字)中內容,存儲到以DI為偏移地址的目的串中,同時修改偏移地址,指向串的下一個元素。
�、釹TOSB/STOSW
存儲字節(jié)串/字串,無操作數(shù)。
(2)重復前綴
�、賀EP
可作為串傳送、串比較、串存儲、串搜索指令的前綴。最常用的是串傳送指令,使用時數(shù)據(jù)長度必須放在CX中。
�、赗EPE/REPZ
用于串傳送、串搜索指令的前綴,使緊隨其后的指令重復執(zhí)行,直到CX=0或ZF=0為止。
�、跼EPNE/REPNZ
用于串比較或串搜索指令的前綴,使其重復執(zhí)行直到XC=1或ZF=1為止。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |