アセンブラ初心者スレッド 2©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/13(木) 17:35:55.70ID:1WMn3pSz
初心者OK!質問大歓迎!のアセンブラのスレッドです。
基本情報の勉強中の人、PICやH8を勉強中の学生などなど…

前スレ
アセンブラ初心者スレッド
http://echo.2ch.net/test/read.cgi/tech/1314502612/

関連スレ
アセンブラ 13
http://echo.2ch.net/test/read.cgi/tech/1314512680/
2017/04/13(木) 17:41:03.83ID:m/ZfxtWH
>>1
3デフォルトの名無しさん
垢版 |
2017/04/13(木) 18:14:24.24ID:VLmLig3K
v3
2017/04/13(木) 18:15:04.12ID:Gon4S40X
あぼーん
5デフォルトの名無しさん
垢版 |
2017/04/13(木) 18:15:32.34ID:VLmLig3K
終了
2017/04/13(木) 19:36:20.78ID:RYqONwMZ
きょうびの時代にアセンブラの優位性を主張する,とすれば
どのような分野で有効でしょうか?
7デフォルトの名無しさん
垢版 |
2017/04/13(木) 19:43:03.43ID:VLmLig3K
asm.js とかさ
LLVM とかさ
このスレで扱っても良いと思うのね
2017/04/13(木) 20:44:33.86ID:nESB199J
ごもっともですわ
2017/04/13(木) 21:26:38.34ID:J4z4l4hW
うん需要ある?
2017/04/14(金) 08:40:42.32ID:sKcRbeeD
組み込みでなら多少は。
2017/04/14(金) 10:04:28.48ID:L6e5ZQwW
あ。。。IoTとか?
2017/04/15(土) 04:12:03.81ID:2Mj3RTtW
アセンブラはじめるならLinuxでやるといいよ
DOSと同じような感覚でアセンブラプログラミングができるから

こんな感じ

Linux でアセンブリプログラミング
http://www.mztn.org/lxasm/asm00.html
Linux で64bitアセンブリプログラミング
http://www.mztn.org/lxasm64/amd00.html

Linuxでのアセンブル方法はこんな感じ
as -a=hogehoge.lst -o hogehoge.o hogehoge.s
ld -o hogehoge hogehoge.s

gccのでアセンブラ出力&アセンブル
gcc -S -o hogehoge.s hogehoge.c
as -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc -o hogehoge hogehoge.o
2017/04/15(土) 04:12:41.23ID:2Mj3RTtW
ちなみにx86_64上のLinuxで32bitのバイナリを作成したい場合はこう


x86_64のLinuxでのCの32bitのx86バイナリのコンパイル
gcc -m32 -O2 -o hogehoge hogehoge.c

x86_64のLinuxでの32bitのx86アセンブル
as --32 -a=hogehoge.lst -o hogehoge.o hogehoge.s
ld -melf_i386 -o hogehoge hogehoge.o

x86_64のLinuxでのgccので32bitアセンブラ出力&アセンブル
gcc -m32 -S -o hogehoge.s hogehoge.c
as --32 -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc -m32 -o hogehoge hogehoge.o
2017/04/15(土) 04:13:21.76ID:2Mj3RTtW
nasmでのx86_64のLinuxでの32bitアセンブル

nasm -f elf hogehoge.s
ld -melf_i386 -o hogehoge hogehoge.o


nasmでのx86_64のLinuxでの64bitアセンブル
nasm -f elf64 $1.s
ld -o $1 $1.o


Ubuntuでのnasmのインストール方法

sudo apt-get install nasm
2017/04/15(土) 04:42:00.93ID:2Mj3RTtW
UbuntuだとQEMUを入れるだけでQEMU+binfmtの設定が自動せされるから
ライブラリへのリンクを貼るだけで他のCPUのバイナリをそのまま実行できるようになる
UbuntuだとARM、MIPS、PowerPCができる

64bitARMならこんな感じ
sudo apt-get install qemu
sudo apt-get install g++-aarch64-linux-gnu
sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib
sudo ln -s /usr/aarch64-linux-gnu/lib /lib/aarch64-linux-gnu

32bitARMならこんな感じ
sudo apt-get install qemu
sudo apt-get install g++-arm-linux-gnueabihf
sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 /lib
sudo ln -s /usr/arm-linux-gnueabihf/lib /lib/arm-linux-gnueabihf

Cのコンパイル方法はこんな感じ
aarch64-linux-gnu-gcc -O2 -o hogehoge hogehoge.c

arm-linux-gnueabihf-gcc -O2 -o hogehoge hogehoge.c

数学ライブラリを使う場合のCのコンパイル方法はこんな感じ
aarch64-linux-gnu-gcc -O2 -o hogehoge hogehoge.c -lm
(Ubuntuでは依存するライブラリを後ろに書く)

arm-linux-gnueabihf-gcc -O2 -o hogehoge hogehoge.c -lm
■ このスレッドは過去ログ倉庫に格納されています