Windows互換を目指すReactOS Part12

207Be名無しさん2018/03/13(火) 15:45:06.65
これについて少し調べたよ。
http://cx20.main.jp/blog/hello/wp-content/plugins/wp-syntax-download-extension/wp-syntax-download-extension.php/402/hello.asm

これはVisual StudioにMASMを入れた状態でアセンブルする事を前提にしており、
EXTRN _printf:PROC
この部分で外部呼出しを使用している。だから、きっちり環境整備を使用しないとアセンブル&実行できないだろう。

またアセンブルとリンク方法は下記の通りでlibcmt.libも必要になる。
C:\> ml -c hello.asm
C:\> link hello.obj libcmt.lib
32bit環境で32bitの実行ファイルを作ると言う事である。

一方、DOSコマンドは16bitで動かすものと考えるなら外部呼出しを使用せずDOSのint 21のシステムコールを使用すべきであろう。
32bitで動作するDOS窓ソフトを作るのなら別にWindowsソフトで問題無いし、MASMの勉強をしたいのか単にソフトを作りたいのかがあやふやだ。

指摘の通りMicrosoft Macro Assembler 8.0 (MASM) パッケージ (x86 用)は16bit対応の様であるが、
VisualStudio付属のlinkは16bitに対応していないので別途16bitのlinkが必要であろう。
はっきりは覚えてないがMS-DOSは標準でlink.exeが入っていたはずだ。(古いバージョンのMS-DOSではmasmも入っていた。)

新着レスの表示
レスを投稿する