OS Project Wiki の保存版 ヒデさん・アリスさんほか、OS部のみなさんが書いたものです。
2019年にサイトが消滅しました。当時あった211ページのうち、本文が残っていたのは86ページです。すべては復旧できていません。Common Crawl と Internet Archive に 残っていたものを組み直しています(最終取得 2019-05-24)。
編集・検索・添付などの機能は動きません。表示のみです。

検索

まずは、検索!

Index

人気の20件
最新の20件
2018-12-022018-01-092017-05-072017-04-252016-05-012015-02-242014-01-032013-06-252012-12-302012-12-292012-07-272012-07-162012-02-052012-01-292011-10-012011-09-18

アセンブリ言語

目次

はじめに

Register?なども、参考にしてください。

オペランドは、0個以上のソースと1つのデスティネーションからなる。

ソース(Source)
源、情報源などの意味。固定値、レジスタ、メモリなどを指定する。
ディスティネーション(Destination)
宛先の意味。レジスタ、メモリなどを指定する。

C

call

	call	Source

スタックにIPの値を格納したあとに、Sourceへジャンプする。
意味的には次と同じ。

	push	ip
	jmp	Source

ただし、IPを直接扱うことができないので、これは不可能。

L

leave

	leave

以下の命令をまとめたもの。
おもに、c言語の関数を抜ける直前(retの直前)に書く。

	mov	esp,	ebp
	pop	ebp

P

pop

&t;pop	Destination

SS:SPの内容をDestinationに格納し、SPの値をDestinationのバイト数分増やす。
Destinationに8bitは使用できない。
意味的には次と同じ。

	mov	Destination, [ss:sp]
	add	sp, 2(4)

push

	push	Source

SPの値をSourceのバイト数分減らし、Sourceの内容をSS:SPに格納する。
Sourceに8bitは使用できない。
意味的には次と同じ。

	sub	sp, 2(4)
	mov	[ss:sp], Source

R

ret

	ret

サブルーチンの呼び出し元に戻る。
正確には、[ss:sp]の内容をIPに格納し、SPの値を2(4)増やす。
意味的には次と同じ。

	pop	ip

ただし、IPを直接扱うことができないので、これは不可能。


Since 2008 July. OS Project Wiki
保存 2019-05-20 ・ ページ一覧