匯編語(yǔ)言指令集之串處理指令講解
串處理指令
串處理指令分類情況如下:
指令類型 | ||
---|---|---|
MOVS | move string | 傳傳送 |
CMPS | compare string | 串比較 |
SCAS | scan string | 串掃描 |
LODS | load from string | 從串取 |
STOS | store in to string | 存入串 |
INS | input from port to string | 串輸入 |
OUTS | output string to port | 串輸出 |
REP | repeat | 重復(fù) |
REPE/REPZ | repeat while equal/zero | 相等/為零則重復(fù) |
REPNE/REPNZ | repeat while not equal/zero | 不相等/不為零則重復(fù) |
1.MOVS
格式:
MOVS DST,SRC
MOVSB (字節(jié))
MOVSW (字)
MOVSD (雙字)(386及其后繼機(jī)型可用)
用法:
指令可以把SI指向的數(shù)據(jù)段中的一個(gè)字節(jié)、字或雙字(DS:SI)傳遞到由DI指向的附加段中的一個(gè)字節(jié)、字或雙字(ES:DI)中去,不影響條件標(biāo)志位,并根據(jù)DF以及數(shù)據(jù)格式對(duì)SI和DI進(jìn)行修改。
2.CMPS
格式:
CMPS SRC,DST
CMPSB (字節(jié))
CMPSW (字)
CMPSD (雙字)(386及其后繼機(jī)型可用)
用法:
指令把DS:SI指向的存儲(chǔ)單元中的數(shù)據(jù)與ES:SI指向的存儲(chǔ)單元中的數(shù)據(jù)相減,不保存結(jié)果但影響條件標(biāo)志位,并根據(jù)DF的值對(duì)SI和DI進(jìn)行修改。
3.SCAS
格式:
SCAS DST
SCASB (字節(jié))
SCASW (字)
SCASD (雙字)(386及其后繼機(jī)型可用)
用法:
指令把AL、AX或EAX中的數(shù)據(jù)與ES:DI指向的存儲(chǔ)單元中的數(shù)據(jù)相減,不保存結(jié)果但影響條件標(biāo)志位,并根據(jù)DF的值對(duì)SI和DI進(jìn)行修改。
4.LODS
格式:
LODS SRC
LODSB (字節(jié))
LODSW (字)
LODSD (雙字)(386及其后繼機(jī)型可用)
用法:
指令把DS:SI指向的存儲(chǔ)單元中的數(shù)據(jù)送到AL、AX或EAX中,并根據(jù)條件標(biāo)志位DF的值和數(shù)據(jù)類型來(lái)修改SI。
5.STOS
格式:
STOS DST
STOSB (字節(jié))
STOSW (字)
STOSD (雙字)(386及其后繼機(jī)型可用)
用法:
指令把AL、AX和EAX中的內(nèi)容存入由DS:SI指向的存儲(chǔ)單元,并根據(jù)DF的值及數(shù)據(jù)類型修改SI。
6.INS
格式:
INS DST,DX
INSB (字節(jié))
INSW (字)
INSD (雙字)(386及其后繼機(jī)型可用)
用法:
指令把端口在DX寄存器中的I/O空間的數(shù)據(jù)送到由ES:DI指向的存儲(chǔ)單元,并根據(jù)DF的值和數(shù)據(jù)類型修改DI。
7.OUTS
格式:
OUTS DX,SRC
OUTSB (字節(jié))
OUTSW (字)
OUTSD (雙字)(386及其后繼機(jī)型可用)
用法:
指令把由DS:SI指向的存儲(chǔ)單元中的數(shù)據(jù)送到端口號(hào)在DX寄存器中的I/O端口中,并根據(jù)DF的值和數(shù)據(jù)類型改變SI。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
X86匯編調(diào)試環(huán)境搭建的過(guò)程
本次使用vscode搭建的,需要的插件有X86 and X86_64 Assembly(也可以使用masm插件),還有一個(gè)hexdump for VSCode。 安裝NASM,并添加到環(huán)境變量,下面看下X86匯編調(diào)試環(huán)境搭建的過(guò)程吧2021-11-11匯編中的數(shù)組分配和指針的實(shí)現(xiàn)代碼
這篇文章主要介紹了匯編中的數(shù)組分配和指針的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-018086匯編開(kāi)發(fā)環(huán)境搭建和Debug模式介紹(圖文詳解)
這篇文章主要介紹了8086匯編開(kāi)發(fā)環(huán)境搭建和Debug模式介紹,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01匯編語(yǔ)言指令集學(xué)習(xí)CMPXCHG比較并交換操作指令詳解
這篇文章主要為大家介紹了匯編語(yǔ)言指令集學(xué)習(xí)CMPXCHG比較并交換操作的指令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11ARM匯編解決階乘及大小寫(xiě)轉(zhuǎn)換的問(wèn)題
這篇文章主要介紹了ARM匯編解決階乘及大小寫(xiě)轉(zhuǎn)換,包括ARM匯編大小寫(xiě)轉(zhuǎn)換以及存入內(nèi)存的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11