2008年10月20日

[linux-users:108130] inux-2.2.26/arch/i386/boot/setup.S にある jmpi とは?

inux-2.2.26/arch/i386/boot/setup.S
の592行目にある

jmpi move_self_here,SETUPSEG ! jump to our final place

の "jmpi" という命令は何でしょうか。

linux-2.2.26/arch/i386/boot/bootsect.S

の67行目においても、

jmpi go,INITSEG

上記のように使われています。

linux-2.4.34/arch/i386/boot/setup.S
では、894行目付近に"jmpi"がありますが、

# NOTE: For high loaded big kernels we need a
# jmpi 0x100000,__KERNEL_CS
#
# but we yet haven't reloaded the CS register, so the default size
# of the target offset still is 16 bit.
# However, using an operand prefix (0x66), the CPU will properly
# take our 48 bit far pointer. (INTeL 80386 Programmer's Reference
# Manual, Mixing 16-bit and 32-bit code, page 16-6)

.byte 0x66, 0xea # prefix + jmpi-opcode
code32: .long 0x1000 # will be set to 0x100000
# for big kernels
.word __KERNEL_CS

上記のように、コメント中で "jmpi" という文字が使われるだけで、命令の記述としては
使われなくなっています。

linux-2.6.xx では、"jmpi" という文字は、コメントの中にも無くなったようです。

GAS は AT&T ASM syntax ということのようですが、その中で、
"jmpi"
という命令が定義されているのでしょうか。
ネット上をかなり調べましたが、回答に相当する情報をみつけることができませんでした。
意味もなく気になっているだけなのですが、この
jmpi
という命令が実際に定義されている文献を確認できれば、と思っています。
ネット上にある文献で jmpi を定義しているものがあれば、お教えください。

この jmpi についての記述がある文献ならば、GAS の文法書、AT&T ASM syntaxの文法書として
とても詳しく書かれたものかもしれず、そういう文献を文法の参考にできれば、とも思っています。

よろしくお願いします。

投稿者 xml-rpc : 2008年10月20日 06:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/78222
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。