12/04/14 11:20:37.16
単にそういう名前の関数なだけです
57:デフォルトの名無しさん
12/04/14 22:23:48.97
呼び出し規約が __stdcall(WINAPI) の場合の、引数の合計サイズですよ。
58:55
12/04/15 03:55:29.17
>>57
thx.
そういう情報ってどこか集まっているサイトか資料(本とか)あるんですか?
ここで質問する前に結構探したつもりなんですが…。
59:デフォルトの名無しさん
12/04/15 16:20:37.25
>>58
検索するとしたら "アセンブラ 呼び出し規約" かなあ。
例えば↓とか。
URLリンク(ray.sakura.ne.jp)
60:デフォルトの名無しさん
12/06/21 21:51:25.92
BIOSでhello worldを表示するためのプログラムを作ってみたんですが、何も表示されません。
「mov (%bx), %al」コレがマズイ気がするのですが、表示する方法を教えてもらえませんか?
.code16
.text
_start:
.global _start
mov $msg, %dx
jmp loop1
loop:
mov $0x00, %bh
mov $0x07, %bl
mov $0x0e, %ah
int $0x10
loop1:
mov %dx, %bx
mov (%bx), %al
inc %dx
cmp $0, %al
jne loop
msg:
.ascii "Hello World\r\n\0"
end:
.org 0x200-2
.word 0xaa55
61:デフォルトの名無しさん
12/06/21 22:13:23.04
>>60
動作環境ぐらい書いとけ(つーかその辺りから分かってないだろ?)
62:デフォルトの名無しさん
12/06/21 22:50:24.78
>>61
vmwareです。
正直あまりわかってないけど、昔は同じようなプログラムを作った。
63:60
12/06/21 22:53:34.34
概ねこのサイトのコピペなんですが、どれもちゃんと動かないです。
何も表示されなかったり、文字化けしたり…
URLリンク(news.mynavi.jp)
64:デフォルトの名無しさん
12/06/21 23:21:42.01
QEMUは「qemu -fda as_bios3.com」で起動します。
65:60
12/06/21 23:33:32.01
知ってたらでいいんで、文字列の目の前でcallする以外のスマートな方法ありますか?
FreeBSDのブートプログラム見たらそんなのないけど、アセンブラの知識不足でよくわかりません。
66:デフォルトの名無しさん
12/06/21 23:38:44.15
>アセンブラの知識不足
パソコンのBIOSについての知識不足?
67:60
12/06/21 23:40:09.64
それも不足してると思います。
68:デフォルトの名無しさん
12/06/21 23:43:24.94
63に書いてあることはやったの、DOS窓のほう?
69:60
12/06/21 23:46:57.54
一番下以外はvmwareで試しました。(おかしな表示になりました)。
Windowsじゃなくて、LinuxなんでDOS窓では動かしてません。
一番下のは明日やります。
アドバイスくれた人ありがとう。
釈然としませんが、とりあえずcallを使うと上手く行くらしいことだけわかりました。
70:デフォルトの名無しさん
12/06/21 23:57:39.28
linuxならdosemu上でやってみたら
71:60
12/06/22 00:10:17.98
dosemuインストールしましたが、使い方を調べてみます。
72:60
12/06/22 01:07:07.83
URLリンク(d.hatena.ne.jp)
この変見てるとcall使ってないんですが、nasmとgasの違いなのでしょうかね?
73:デフォルトの名無しさん
12/06/22 01:14:32.98
int 0x10
がBIOSコール
74:60
12/06/22 01:16:06.81
>>73
それはわかったのですが、なぜか文字化けor表示されないのです。
>>63のサイトでは、callを使えとあるんですが、いまいち理由がわからず困っています。
75:60
12/06/22 01:24:53.38
コンパイルオプションの問題でした。
スレを汚してすみません。
76:デフォルトの名無しさん
12/06/22 03:35:26.45
callに呼応しているのはpop %bp。
IA32ではipを直接movしたりip相対でアドレシングすることができないから
その代わり。