Windowsってアセンブリで作られてる?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/07/24(金) 20:16:030002デフォルトの名無しさん
2009/07/24(金) 20:16:350003デフォルトの名無しさん
2009/07/24(金) 20:35:18言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
00041
2009/07/24(金) 21:00:550005デフォルトの名無しさん
2009/07/24(金) 21:03:310006デフォルトの名無しさん
2009/07/25(土) 00:49:06馬鹿だなぁ、確かにXPまではVBだったけど、VistaからはVB.NETだよ
0007デフォルトの名無しさん
2009/07/25(土) 00:49:500008デフォルトの名無しさん
2009/07/25(土) 02:00:480009デフォルトの名無しさん
2009/07/25(土) 12:44:100010デフォルトの名無しさん
2009/07/30(木) 23:20:53どんなソフトウェアも元をたどればハンドアセンブル。
0011デフォルトの名無しさん
2009/07/31(金) 14:02:41いいえ。
0012デフォルトの名無しさん
2009/07/31(金) 15:18:32アセンブリの部分なんて0.000000000000000000000000000000000000001%
くらいじゃね?
0013デフォルトの名無しさん
2009/08/05(水) 15:43:580014デフォルトの名無しさん
2009/08/09(日) 00:50:130015デフォルトの名無しさん
2009/08/09(日) 00:58:14アセンブリ言語は擬似命令が使えます。
0016デフォルトの名無しさん
2009/08/10(月) 08:12:290017デフォルトの名無しさん
2009/08/10(月) 11:01:40それだけでも素敵!
0018デフォルトの名無しさん
2009/08/10(月) 11:26:180019デフォルトの名無しさん
2009/08/10(月) 11:51:020020デフォルトの名無しさん
2009/08/10(月) 13:04:29それは酷い。H68/TR や LKit-16 並みですな。
0021デフォルトの名無しさん
2009/12/13(日) 18:16:180022デフォルトの名無しさん
2010/12/04(土) 19:52:39int getPSPsegment()
{
int psp = 0;
asm volatile(
"movb $0x62, %ah;"
"int $0x21;"
"movl %ebx, %eax;"
"movl %eax, -4(%ebp);"
);
return psp;
}
int main(int ac, char **av)
{
fprintf(stdout, "%08x", getPSPsegment());
return 0;
}
上のプログラムを cygwin の gcc でコンパイルしたのですが
Windows Vista の cmd.exe で実行するとアクセス違反で死にます
"int $0x21;"
の行だけ消すとエラーは出なくなります
int 21H を呼びたいのですがどうすれば良いでしょうか?
0023デフォルトの名無しさん
2010/12/04(土) 19:55:190024デフォルトの名無しさん
2010/12/04(土) 20:33:35Vistaをアンインストールしてwindows98か95をインストールしなさい。
0025デフォルトの名無しさん
2010/12/04(土) 22:06:44http://ja.wikipedia.org/wiki/COMMAND.COM
Windows 9x系上ではMS-DOSプロンプトとしてWindowsにおけるCUIシェルの役目も担い、
例えば32ビットWindowsアプリケーションの実行も可能であった。
しかしWindows XPの登場によって9x系のMS-DOS上で動くOSが無くなったため、
その役割はWindows 2000などのWindows NT系専用の拡張版であるコマンドプロンプト (Cmd.exe)に譲った。
しかし、互換性のため今でもWindows NT系にはCOMMAND.COMが付属しており、実行することができる。
● command.comとは何ですか。
http://questionbox.jp.msn.com/qa6350763.html
16bitのMS-DOSのエミュレータ…っぽいです。
XP以降では16bitアプリに関してはいろいろ制限が入ることになりますが…
その回避の為に用意されているのでしょう。
WindowsVistaやWindows7にあるかどうかは判りませんが。
int 21割り込み(システムコール)は、Windowsが32ビットになった時点で使用できなくなっていた…かと思います。
過渡期にMS-DOSでそういうプログラム組んだことないので細かい経緯は不明ですが。
> ちなみにwindows7の64bitでは動きませんでした。64ビットではコードが違うのでしょうか。
Win7のエディションが何を使われているのかわからないのでなんともいえませんし
(HomeとかStarterにはXPモードが無いです)64ビット版を持っていないので無責任な発言かもしれませんが、
世間一般ではXPモードで過去のアプリが動けばめっけもん程度の代物とのことです。
動作確認は VirtualPC2007(フリー)とかに古いOS入れて(フリーならOpenDOSとか、
ライセンスがあればMS-DOS、PC-DOS、DR- DOS、Win3〜XPとか)検証することをお勧めします。
0026デフォルトの名無しさん
2010/12/05(日) 02:36:51MASM/NASM使え
0027デフォルトの名無しさん
2010/12/05(日) 12:52:10だから、DOSのint 21hは使えない。
int 21hを呼ぶこと自体が目的なら、DOSプログラムを出力するコンパイラを使え。
何かやりたいことが具体的にあって、それをWindowsアプリケーションでやりたいというのなら、
そっちについて適切なスレで聞け。
0028デフォルトの名無しさん
2010/12/05(日) 12:58:490029デフォルトの名無しさん
2010/12/05(日) 19:57:26Vistaに怒られる。
0030デフォルトの名無しさん
2010/12/05(日) 22:53:270031デフォルトの名無しさん
2010/12/05(日) 23:55:45DDKとか使う前提ですか?
0032デフォルトの名無しさん
2010/12/07(火) 19:55:100034デフォルトの名無しさん
2011/10/15(土) 18:32:59.01誰も居ない海
0035デフォルトの名無しさん
2011/11/20(日) 11:19:04.580036デフォルトの名無しさん
2011/11/21(月) 17:20:47.960037デフォルトの名無しさん
2011/11/22(火) 16:11:14.67■ このスレッドは過去ログ倉庫に格納されています