日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

ARM汇编:汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等

發(fā)布時間:2025/6/15 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM汇编:汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

跳轉指令分三類:
一、無條件跳轉: JMP;
二、根據(jù) CX、ECX 寄存器的值跳轉: JCXZ(CX 為 0 則跳轉)、JECXZ(ECX 為 0 則跳轉);
三、根據(jù) EFLAGS 寄存器的標志位跳轉, 這個太多了.

根據(jù)標志位跳轉的指令:

JE ? ;等于則跳轉 JNE ?;不等于則跳轉JZ ? ;為 0 則跳轉 JNZ ?;不為 0 則跳轉JS ? ;為負則跳轉 JNS ?;不為負則跳轉JC ? ;進位則跳轉 JNC ?;不進位則跳轉JO ? ;溢出則跳轉 JNO ?;不溢出則跳轉JA ? ;無符號大于則跳轉 JNA ?;無符號不大于則跳轉 JAE ?;無符號大于等于則跳轉 JNAE ;無符號不大于等于則跳轉JG ? ;有符號大于則跳轉 JNG ?;有符號不大于則跳轉 JGE ?;有符號大于等于則跳轉 JNGE ;有符號不大于等于則跳轉JB ? ;無符號小于則跳轉 JNB ?;無符號不小于則跳轉 JBE ?;無符號小于等于則跳轉 JNBE ;無符號不小于等于則跳轉JL ? ;有符號小于則跳轉 JNL ?;有符號不小于則跳轉 JLE ?;有符號小于等于則跳轉 JNLE ;有符號不小于等于則跳轉JP ? ;奇偶位置位則跳轉 JNP ?;奇偶位清除則跳轉 JPE ?;奇偶位相等則跳轉 JPO ?;奇偶位不等則跳轉


跳轉相關的標志位:

JMP 測試

; Test28_1.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'jmp @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main;測試結果應該是: ;1 ;4 ;以下都應該是這樣.


JE 測試

; Test28_2.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov eax, 123cmp eax, 123je @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


JZ 測試

; Test28_3.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'xor eax, eaxjz @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


JS 測試

; Test28_4.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'xor eax, eaxdec eaxjs @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main

JC 測試

; Test28_5.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov al, 0FFhadd al, 1jc @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


JO 測試

; Test28_6.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov al, -128sub al, 1jo @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


JA 測試

; Test28_7.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov eax, 22cmp eax, 11ja @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


JG 測試

; Test28_8.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov eax, 1cmp eax, -1jg @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


JP 測試

; Test28_9.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'mov al, 00001110binc aljp @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


JECXZ 測試

; Test28_10.asm; .386 .model flat, stdcallinclude ? ?windows.inc include ? ?kernel32.inc include ? ?masm32.inc include ? ?debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib.code main procPrintText '1'xor ecx, ecxjecxz @FPrintText '2'PrintText '3' @@: PrintText '4'ret main endp end main


?

總結

以上是生活随笔為你收集整理的ARM汇编:汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。