rep //cx != 0,重複執行字串指令
repz / repe //cx != 0,且zf=1,相同時,重複執行字串指令
repnz / repne //cx != 0,且zf=0,不同時,重複執行字串指令
cld //置df=0,edi ++
std //置df=1,edi - -
1、movs / movsb / movsw / movsd
1//從esi拷貝資料到edi緩衝區
200404830 > 8d35 00904000 lea esi,dword ptr ds:[0x409000]3
00404836 8d35 10904000 lea esi,dword ptr ds:[0x409010]4
0040483c fc cld
5 0040483d b9 08000000 mov ecx,0x8
600404842 f3:a4 rep movs byte ptr es:[edi],byte ptr ds:[esi]
1、cmps / cmpsb / cmpsw / cmpsd
1//比較esi,edi緩衝區內容是否相同
200404830 > 8d35 00904000 lea esi,dword ptr ds:[0x409000]3
00404836 8d3d 10904000 lea edi,dword ptr ds:[0x409010]4
0040483c fc cld
5 0040483d b9 04000000 mov ecx,0x8
600404842 f3:a6 repe cmps byte ptr es:[edi],byte
ptr ds:[esi]
700404844 85c9 test ecx,ecx
1、scas / scasb / scasw / scasd
1//搜尋edi緩衝區是否包含「0x55」
200404830 > 8d3d 00904000 lea edi,dword ptr ds:[0x409000]3
00404836
66:b8 5500 mov ax,0x55
40040483a fc cld
5 0040483b b9 08000000 mov ecx,0x8
600404840 f2:ae repne scas byte ptr es:[edi]
1、scas / scasb / scasw / scasd
1//獲取edi緩衝區,以0結尾的字串長度(包含結尾字元「0」)
200404830 > 8d3d 00904000 lea edi,dword ptr ds:[0x409000]3
00404836 b9 ffffffff mov ecx,-0x1
40040483b 33c0 xor eax,eax
50040483d fc cld
6 0040483e f2:ae repne scas byte
ptr es:[edi]
700404840 f7d1 not ecx
1、stos / stosb / stosw / stosd
1//初始化edi緩衝區
200404830 > 8d3d 00904000 lea edi,dword ptr ds:[0x409000]3
00404836
fc cld
400404837
33c0 xor eax,eax
500404839 b9 08000000 mov ecx,0x8
6 0040483e f3:aa rep stos byte ptr es:[edi]
x86組合語言指令集
一 資料傳輸指令 8088 彙編跳轉 cmp a,b 比較a與b mov a,b 把b的值送給a ret 返回主程式 nop 無作用,英文 no operation 的簡寫,意思是 do nothing call 呼叫子程式 je 或jz 若相等則跳 jne或jnz 若不相等則跳 jmp 無條件跳 ...
X86彙編指令詳解
x86彙編基本分為七大體系 分別是 1 資料傳送指令 2 算術運算指令 3 邏輯運算指令 4 串操作指令 5 控制轉移指令 6 處理器控制指令 7 保護方式指令 先介紹資料傳送指令集 1 資料傳送指令 1.mov 格式 mov destination,source 功能 將s ource中的資料傳送...
ARM指令集和X86指令集的比較
指令的強弱是cpu的重要指標,指令集是提高微處理器效率的最有效工具之一。從現階段的主流體系結構講,指令集可分為複雜指令集 cisc 和精簡指令集 risc 兩部分。相應的,微處理隨著微指令的複雜度也可分為cisc及risc這兩類。cisc 是一種為了便於程式設計和提高記憶體訪問效率的晶元設計體系。在...