[解決済み] WindowsでアセンブラでHello Worldを書くには?
2022-11-28 07:53:51
質問
Windowsでアセンブリの基本的なものを書きたく、NASMを使っているのですが、何も動作させることができません。
WindowsでC関数の助けを借りずにhello worldを書き、コンパイルするにはどうしたらよいでしょうか?
どのように解決するのですか?
NASMの例 .
libc stdioの呼び出し
printf
を実装しています。
int main(){ return printf(message); }
; ----------------------------------------------------------------------------
; helloworld.asm
;
; This is a Win32 console program that writes "Hello, World" on one line and
; then exits. It needs to be linked with a C library.
; ----------------------------------------------------------------------------
global _main
extern _printf
section .text
_main:
push message
call _printf
add esp, 4
ret
message:
db 'Hello, World', 10, 0
次に
nasm -fwin32 helloworld.asm
gcc helloworld.obj
a
また NasmでHello Worldを作るための無知な初心者向けガイド をCライブラリを使用せずに作成することもできます。そうすると、コードはこのようになります。
MS-DOS システム コールを使用した 16 ビット コード: DOS エミュレーターまたは NTVDM サポートのある 32 ビット Windows で動作します。 . x86-64 カーネルは vm86 モードを使用できないため、任意の 64 ビット Windows 上で "直接"(透過的に) 実行することはできません。
org 100h
mov dx,msg
mov ah,9
int 21h
mov ah,4Ch
int 21h
msg db 'Hello, World!',0Dh,0Ah,'$'
これを
.com
でロードされるように、実行形式を
cs:100h
にロードされ、すべてのセグメントレジスタが互いに等しくなります (小さなメモリモデル)。
がんばってください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン