アセンブリプログラムを実行することはできません。 https://www.tutorialspoint.com/assembly_programmingそれはかなり強力なツールだように思えたが、それを学習を開始する場所を私は知りませんでしたので、私はそれをGoogleで検索して、この見つかったので、私は、今日のアセンブリを学ぶことにしました
をコンパイルとリンクのためにNASMとMinGWをインストールするように言われたので、ダウンロードしてインストールして、両方が正しく動作していることを確認しました。
私は与えられたコード
section .text
global _start ;must be declared for linker (ld)
_start: ;tells linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Hello, world!', 0xa ;string to be printed
len equ $ - msg ;length of the string
をコピーして、 "hello.asm" と呼ばれ、
nasm -f elf hello.asm
(later nasm -f win32 hello.asm)
、その後
ld hello.o -o hello.exe
(later ld hello.obj -o hello.exe)
を書き込むことによって、それをコンパイルし、空の文書に貼り付けます両方の時間が.exeファイルを正常に作成しましたが、実行しようとしたときには、 owsコマンドプロンプトと、 "hello.exeがもう動作しない"という新しいウィンドウが開きました。
これは何も出力されませんが、少なくとも実行するべきではないことは知っていますか?
どうしたのですか?
使用:
- のWindows 7のプロフェッショナル64
- AMDのFX 4350
- のnasm-2.12.02
- MinGW
これはLinuxのチュートリアルです。これはウィンドウでは機能しません。 – tkausl
アセンブリーは特殊ですか? –
いいえ、しかし、システムコールは( 'int 0x80')です – tkausl