検索

JVM指令2

Jun 07, 2016 pm 03:14 PM
jvmコピー命令

0x59 dup 复制 栈顶数并将复制压入栈顶。 0x5a dup_x1 复制 栈顶数并将两个复制压入栈顶。 0x5b dup_x2 复制 栈顶数并将三个 ( 或两个 ) 复制 压入栈顶。 0x5c dup2 复制 栈顶一个 (long 或 double 类型的 ) 或两个 ( 其它 ) 数 并将复制压入栈顶。 0x5d dup

0x59  dup复制栈顶数值并将复制值压入栈顶。

0x5a  dup_x1复制栈顶数值并将两个复制值压入栈顶。

0x5b  dup_x2复制栈顶数值并将三个(或两个)复制值压入栈顶。

0x5c  dup2复制栈顶一个(long double 类型的)或两个(其它)值并将复制值压入栈顶。

0x5d  dup2_x1 dup_x1 指令的双倍版

0x5e  dup2_x2  dup_x2 指令的双倍版

0x5f  swap栈最顶端的两个数值互换(值不能是 long double 类型的)

0x60  iadd栈顶两 int 型数值相加并将结果压入栈顶。

0x61  ladd栈顶两 long型数值相加并将结果压入栈顶。

0x62  fadd栈顶两 float型数值相加并将结果压入栈顶。

0x63  dadd栈顶两 double型数值相加并将结果压入栈顶。

0x64  isub栈顶两 int 型数值相减并将结果压入栈顶。

0x65

lsub

栈顶两 long 型数值相减并将结果压入栈顶。

0x66

fsub

栈顶两 float 型数值相减并将结果压入栈顶。

0x67

dsub

栈顶两 double 型数值相减并将结果压入栈顶。

0x68

imul

栈顶两 int 型数值相乘并将结果压入栈顶。。

0x69

lmul

栈顶两 long 型数值相乘并将结果压入栈顶。

0x6a

fmul

栈顶两 float 型数值相乘并将结果压入栈顶。

0x6b

dmul

栈顶两 double 型数值相乘并将结果压入栈顶。

0x6c

idiv

栈顶两 int 型数值相除并将结果压入栈顶。

0x6d

ldiv

栈顶两 long 型数值相除并将结果压入栈顶。

0x6e

fdiv

栈顶两 float 型数值相除并将结果压入栈顶。

0x6f

ddiv

栈顶两 double 型数值相除并将结果压入栈顶。

0x70

irem

栈顶两 int 型数值作取模运算并将结果压入栈顶。

0x71

lrem

栈顶两 long 型数值作取模运算并将结果压入栈顶。

0x72

frem

栈顶两 float 型数值作取模运算并将结果压入栈顶。

0x73

drem

栈顶两 double 型数值作取模运算并将结果压入栈顶。

0x74

ineg

栈顶 int 型数值取负并将结果压入栈顶。

0x75

lneg

栈顶 long 型数值取负并将结果压入栈顶。

0x76

fneg

栈顶 float 型数值取负并将结果压入栈顶。

0x77

dneg

栈顶 double 型数值取负并将结果压入栈顶。

0x78

ishl

int 型数值左移位指定位数并将结果压入栈顶。

0x79

lshl

long 型数值左移位指定位数并将结果压入栈顶。

0x7a

ishr

int 型数值右(有符号)移位指定位数并将结果压入栈顶。

0x7b

lshr

long 型数值右(有符号)移位指定位数并将结果压入栈顶。

0x7c

iushr

int 型数值右(无符号)移位指定位数并将结果压入栈顶。

0x7d

lushr

long 型数值右(无符号)移位指定位数并将结果压入栈顶。

0x7e

iand

栈顶两 int 型数值作按位与并将结果压入栈顶。

0x7f

land

栈顶两 long 型数值作按位与并将结果压入栈顶。

0x80

ior

栈顶两 int 型数值作按位或并将结果压入栈顶。


0x81

lor

栈顶两 long 型数值作按位或并将结果压入栈顶。

0x82

ixor

栈顶两 int 型数值作按位异或并将结果压入栈顶。

0x83

lxor

栈顶两 long 型数值作按位异或并将结果压入栈顶。

0x84

iinc

将指定 int 变量增加指定值。

0x85

i2l

栈顶 int 型数值强制转换成 long型数值并将结果压入栈顶。

0x86

i2f

栈顶 int 型数值强制转换成 float型数值并将结果压入栈顶。

0x87

i2d

栈顶 int 型数值强制转换成 double型数值并将结果压入栈顶。

0x88

l2i

栈顶 long 型数值强制转换成 int型数值并将结果压入栈顶。

0x89

l2f

栈顶 long 型数值强制转换成 float型数值并将结果压入栈顶。

0x8a

l2d

栈顶 long 型数值强制转换成 double型数值并将结果压入栈顶。

0x8b

f2i

栈顶 float 型数值强制转换成 int型数值并将结果压入栈顶。

0x8c

f2l

栈顶 float 型数值强制转换成 long型数值并将结果压入栈顶。

0x8d

f2d

栈顶 float 型数值强制转换成 double型数值并将结果压入栈顶。

0x8e

d2i

栈顶 double 型数值强制转换成 int型数值并将结果压入栈顶。

0x8f

d2l

栈顶 double 型数值强制转换成 long型数值并将结果压入栈顶。

0x90

d2f

栈顶 double 型数值强制转换成 float型数值并将结果压入栈顶。

0x91

i2b

栈顶 int 型数值强制转换成 byte型数值并将结果压入栈顶。

0x92

i2c

栈顶 int 型数值强制转换成 char型数值并将结果压入栈顶。

0x93

i2s

栈顶 int 型数值强制转换成 short型数值并将结果压入栈顶。

0x94

lcmp

较栈顶两 long 型数值大小,并将结果(1,0,-1)压入栈顶

0x95

fcmpl

较栈顶两 float 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”,-1压入栈顶。

0x96

fcmpg

较栈顶两 float 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”, 1压入栈顶。

0x97

dcmpl

较栈顶两 double 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”,-1压入栈顶。

0x98

dcmpg

较栈顶两 double 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”, 1压入栈顶。

0x99

ifeq

栈顶 int 型数值等于 0时跳转。

0x9a

ifne

栈顶 int 型数值不等于 0时跳转。

0x9b

iflt

栈顶 int 型数值小于 0时跳转。

0x9c

ifge

栈顶 int 型数值大于等于 0时跳转。

0x9d

ifgt

栈顶 int 型数值大于 0时跳转。

0x9e

ifle

栈顶 int 型数值小于等于 0时跳转。

0x9f

if_icmpeq

较栈顶两 int 型数值大小,结果等于 0时跳转。

0xa0

if_icmpne

较栈顶两 int 型数值大小,结果不等于 0时跳转。

0xa1

if_icmplt

较栈顶两 int 型数值大小,结果小于 0时跳转。

0xa2

if_icmpge

较栈顶两 int 型数值大小,结果大于等于 0时跳转。

0xa3

if_icmpgt

较栈顶两 int 型数值大小,结果大于 0时跳转

0xa4

if_icmple

较栈顶两 int 型数值大小,结果小于等于 0时跳转。

0xa5

if_acmpeq

较栈顶两引用型数值,结果相等时跳转。

0xa6

if_acmpne

较栈顶两引用型数值,结果不相等时跳转。

0xa7

goto

无条件跳转。

0xa8

jsr

转至指定 16 offset 位置,并将 jsr 下一条指令地址压入栈顶。

0xa9

ret

返回至局部变量指定的 index 的指令位置(一般与 jsr,jsr_w联合使用)

0xaa

tableswitch

用于 switch 条件跳,case值连续(变长度指令)

0xab

lookupswitch

用于 switch 条件跳,case值不连续(变长度指令)

0xac

ireturn

从当前方法返回 int

0xad

lreturn

从当前方法返回 long

0xae

freturn

从当前方法返回 float

0xaf

dreturn

从当前方法返回 double

0xb0

areturn

从当前方法返回对象引用。

0xb1

return

从当前方法返回 void

0xb2

getstatic

获取指定类的静态域,并将其值压入栈顶。

0xb3

putstatic

为指定的类的静态域赋值。

0xb4

getfield

获取指定类的实例域,并将其值压入栈顶。

0xb5

putfield

为指定的类的实例域赋值。

0xb6

invokevirtual

调用实例方法。

0xb7

invokespecial

调用超类构造方法,实例初始化方法,私有方法。

0xb8

invokestatic

调用静态方法。

0xb9

invokeinterfac

e

调用接口方法。

0xba

invokedynamic

调用动态链接方法1

0xbb

new

创建一个对象,并将其引用值压入栈顶。

0xbc

newarray

创建一个指定原始类型( intfloatchar......)的数,并将其引用值压入栈顶。

0xbd

anewarray

创建一个引用型(如类,接口,)的数,并将其引用值压

栈顶。

0xbe

arraylength

获得数组的长度值并压入栈顶。

0xbf

athrow

栈顶的异常抛出。

0xc0

checkcast

检验类型转换,检验过将抛出 ClassCastException

0xc1   instanceof  检验对象是否是指定的类的实例,如果是将 1 压入栈顶,则将0 压入栈顶。

0xc2  monitorenter获得对象的 monitor,用于同步方法或同步块。

0xc3  monitorexit释放对象的 monitor,用于同步方法或同步块。

0xc4  wide扩展访问局部变量表的索引宽度。

0xc5  multianewarray创建指定类型和指定维度的多维数组(执行该指令时,操作栈中必须包维度的长度值),并将其引用值压入栈顶。

0xc6  ifnull null 时跳转。

0xc7  ifnonnull null 时跳转。

0xc8  goto_w无条件跳(宽索引)

0xc9  jsr_w跳转至指定 32 位地址偏移量位置,并将 jsr_w 下一条指令地址压入栈顶。

保留指令

0xca  breakpoint调试时的断点标志。

0xfe  impdep1用于在特定硬件中使用的语言后门。

0xff  impdep1用于在特定硬件中使用的语言后门。


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

MySQLは初心者に優しいですか?学習曲線の評価MySQLは初心者に優しいですか?学習曲線の評価Apr 17, 2025 am 12:19 AM

MySQLは初心者に適しています。1)インストールと構成、2)リッチラーニングリソース、3)直感的なSQL構文、4)強力なツールサポート。それにもかかわらず、初心者はデータベースの設計、クエリの最適化、セキュリティ管理、データのバックアップなどの課題を克服する必要があります。

SQLはプログラミング言語ですか?用語を明確にするSQLはプログラミング言語ですか?用語を明確にするApr 17, 2025 am 12:17 AM

はい、sqlisaprogramginglanguagespecializedfordatamanamanagement.1)それはdeclarative、focusingonwhattoachieveratherthanhow.2)

酸性の特性(原子性、一貫性、分離、耐久性)を説明します。酸性の特性(原子性、一貫性、分離、耐久性)を説明します。Apr 16, 2025 am 12:20 AM

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQL:データベース管理システムとプログラミング言語MySQL:データベース管理システムとプログラミング言語Apr 16, 2025 am 12:19 AM

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQL:SQLコマンドでデータの管理MySQL:SQLコマンドでデータの管理Apr 16, 2025 am 12:19 AM

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター