コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
オペコード
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''オペコード'''(opcode)とは、[[機械語]]および[[アセンブリ言語]]における命令のことである。 オペコードの語源はオペレーションコード(operation code)の略称だと言われている。 主としてオペコードに続くかたちで指定される、オペコードの演算対象となる[[値]]や[[レジスター]]を[[オペランド]]という。 == オペコードのバイト数 == [[x86]]などの[[パソコン]]向け[[CPU]]の多くは、原則として[[8ビット]]で[[1バイト]]であり、[[機械語]]の1バイト目をオペコードとする。 これらでは[[四則演算]]や[[条件分岐]]などの各命令には数字の番号が割り振られており、[[バイト]]列(バイト配列)のうち1[[バイト]]目をその命令であるとみなす。つまり1バイトで表せる数字は0~255であるため、最大で256個の命令を搭載することができる。 === 可変長 === しかし、命令が増えまくり256個では足りなくなる[[CPU]]も多々あり、それらでは1バイト目が特定の数字の場合には2バイトもオペコードとするという事を行っている。 このような形式は主に[[x86]]や[[Z80]]などの[[インテル]]とその派生[[CPU]]で採用されている。 また[[仮想マシン]]である[[共通言語ランタイム]]および[[共通中間言語]]でも採用されている。 === 固定長 === これとは逆に拡張などあり得ないという前提で、オペコードのサイズ([[バイト]]数)を必要な命令数が収まるバイト数で固定長にしておき、オペコードの抽出や解析に必要な[[回路]]を簡略化したものを「[[バイトコード]]」と呼ぶ。 このような形式は[[RISC]]と呼ばれる種類の[[CPU]]に広く採用されており、最近では主に[[ARM]]などの[[CPU]]で採用されている。また[[仮想マシン]]である[[Java仮想マシン]]および[[Javaバイトコード]]でも採用されている形式である。 == 関連項目 == * [[オペコード]] * [[ニーモニック]] * [[命令セット]] [[category:プログラミング]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化