The Netwide Assembler のスレです
http://www.nasm.us/
http://www.nasm.us/docs.php
http://www.nasm.us/pub/nasm/
関連スレ
MASM32 - 選ばれし本物のプログラマ
http://toro.2ch.net/test/read.cgi/tech/1348574727/
探検
【boot】nasm【loader】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AN2014/05/16(金) 13:46:41.38ID:4VYzJixg
>>31
ttp://ideone.com/1BWyMV
ttp://ideone.com/1BWyMV
2014/05/16(金) 18:01:24.75ID:lP/gHzU8
>>30 サイトより、タイトルに「マシン語秘伝の書」って入ってる古本を2冊ほどゲットするのが
結局てっとり早いと思う。
あともうちょっと高級な技なら "Hacker's delight" の元ネタの多くが書かれている HAKMEM とか。
結局てっとり早いと思う。
あともうちょっと高級な技なら "Hacker's delight" の元ネタの多くが書かれている HAKMEM とか。
2014/05/16(金) 23:11:27.82ID:xXlmOrih
x86よりARMの方が面白そう
でもnasmはx86専用なのか
でもnasmはx86専用なのか
35デフォルトの名無しさん
2014/12/08(月) 07:57:03.31ID:5xVLQkK/ イィ
36デフォルトの名無しさん
2015/02/05(木) 18:50:29.25ID:Wisgh0P5 遺言
37Office & Gamers ◆G144Hzgh2.0e
2015/04/24(金) 03:28:30.08ID:gsh3Hj5N MenuetOSでもお馴染みのflat assemblerだよw
http://flatassembler.net/index.php
http://flatassembler.net/index.php
38デフォルトの名無しさん
2015/09/04(金) 08:36:37.34ID:efXmgHpK nasmのnってなんですの
39デフォルトの名無しさん
2015/10/15(木) 18:23:58.06ID:bdlPZJI1 nasmのnに決まってるだろ
40デフォルトの名無しさん
2015/10/28(水) 21:11:10.66ID:Zfb2ITq0 質問です。
以下をnaskとnasmそれぞれでアセンブルしたら、
結果が異なりました。
7FFFFFFFと出力したいところ、FFFFFF7Fと出力してしまいます。
nasmの出力結果を、naskの出力結果とあわせたいです。
どうしたらいいでしょうか?
アセンブル前のコード
MOV EAX,CR0
AND EAX,0x7FFFFFFF
OR EAX,0x00000001
MOV CR0,EAX
nasmの出力
0F20C0 MOV EAX,CR0
6625FFFFFF7F AND EAX,0x7FFFFFFF
6683C801 OR EAX,0x00000001
0F22C0 MOV CR0,EAX
naskの出力
0F20C0 MOV EAX,CR0
66257FFFFFFF AND EAX,0x7FFFFFFF
6683C801 OR EAX,0x00000001
0F22C0 MOV CR0,EAX
以下をnaskとnasmそれぞれでアセンブルしたら、
結果が異なりました。
7FFFFFFFと出力したいところ、FFFFFF7Fと出力してしまいます。
nasmの出力結果を、naskの出力結果とあわせたいです。
どうしたらいいでしょうか?
アセンブル前のコード
MOV EAX,CR0
AND EAX,0x7FFFFFFF
OR EAX,0x00000001
MOV CR0,EAX
nasmの出力
0F20C0 MOV EAX,CR0
6625FFFFFF7F AND EAX,0x7FFFFFFF
6683C801 OR EAX,0x00000001
0F22C0 MOV CR0,EAX
naskの出力
0F20C0 MOV EAX,CR0
66257FFFFFFF AND EAX,0x7FFFFFFF
6683C801 OR EAX,0x00000001
0F22C0 MOV CR0,EAX
2015/10/29(木) 01:05:55.37ID:dmkvBav+
Big Endian ・ Little Endian でも違っているのでは?
42デフォルトの名無しさん
2015/10/29(木) 18:02:16.22ID:wsfqWnTY 同意します
43デフォルトの名無しさん
2015/10/30(金) 20:32:06.78ID:dIO+gS7v 回答ありがとうございます。
Endianも含め、学習しなおしてきます。
Endianも含め、学習しなおしてきます。
44デフォルトの名無しさん
2015/12/20(日) 14:53:09.59ID:8RLYRFXT GPIFとはなんぞ
45デフォルトの名無しさん
2016/08/07(日) 17:00:15.20ID:nuDQx96v GPU
46デフォルトの名無しさん
2017/01/31(火) 15:18:54.64ID:KYCEEpNK nasmでリスティングファイルも一緒に出力したい場合は
32bit
nasm -f elf -l hogehoge.lst hogehoge.s
64bit
nasm -f elf64 -l hogehoge.lst hogehoge.s
32bit
nasm -f elf -l hogehoge.lst hogehoge.s
64bit
nasm -f elf64 -l hogehoge.lst hogehoge.s
2017/01/31(火) 15:19:20.46ID:KYCEEpNK
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
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/01/31(火) 15:19:40.38ID:KYCEEpNK
ちなみに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での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
2017/01/31(火) 15:20:22.01ID:KYCEEpNK
Linuxでのアセンブル方法はこんな感じ
as -a=hogehoge.lst -o hogehoge.o hogehoge.s
ld -o hogehoge hogehoge.o
アセンブル方法はこんな感じ
aarch64-linux-gnu-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
aarch64-linux-gnu-ld -o hogehoge hogehoge.o
gcc-arm-linux-gnueabihf-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc-arm-linux-gnueabihf-ld -o hogehoge hogehoge.o
as -a=hogehoge.lst -o hogehoge.o hogehoge.s
ld -o hogehoge hogehoge.o
アセンブル方法はこんな感じ
aarch64-linux-gnu-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
aarch64-linux-gnu-ld -o hogehoge hogehoge.o
gcc-arm-linux-gnueabihf-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc-arm-linux-gnueabihf-ld -o hogehoge hogehoge.o
2017/01/31(火) 15:20:52.92ID:KYCEEpNK
アセンブラはじめるなら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
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
2017/01/31(火) 15:21:28.38ID:KYCEEpNK
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
gcc-arm-linux-gnueabihf-gcc -O2 -o hogehoge hogehoge.c
アセンブル方法はこんな感じ
aarch64-linux-gnu-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
aarch64-linux-gnu-ld -o hogehoge hogehoge.s
gcc-arm-linux-gnueabihf-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc-arm-linux-gnueabihf-ld -o hogehoge hogehoge.s
できたバイナリは普通に実行できる
./hogehoge
バイナリがどのアーキテクチャかはfileコマンドで確認できる
file hogehoge
ライブラリへのリンクを貼るだけで他の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
gcc-arm-linux-gnueabihf-gcc -O2 -o hogehoge hogehoge.c
アセンブル方法はこんな感じ
aarch64-linux-gnu-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
aarch64-linux-gnu-ld -o hogehoge hogehoge.s
gcc-arm-linux-gnueabihf-as -a=hogehoge.lst -o hogehoge.o hogehoge.s
gcc-arm-linux-gnueabihf-ld -o hogehoge hogehoge.s
できたバイナリは普通に実行できる
./hogehoge
バイナリがどのアーキテクチャかはfileコマンドで確認できる
file hogehoge
52デフォルトの名無しさん
2017/02/09(木) 14:10:14.97ID:dTuvJyk9 うむ
53デフォルトの名無しさん
2017/04/13(木) 02:34:31.58ID:8XBnDqPS こっちだな
54デフォルトの名無しさん
2017/07/20(木) 19:19:38.81ID:7mH9PEZK 64bitないよね
55デフォルトの名無しさん
2017/09/22(金) 20:34:45.97ID:WnQAL/Cu すごく基本的な事でごめんなさい。
db = define byte = 1byte
dw = define word = 2byte
dd = define double word = 4byte
は分かりましたが、
hoge: db 'aaaaaaaaaaaaaaaaaa'
みたいな記述って、aaaaaaaaaaaaaaaaaa は明らかに 1byte 以上あるのに、
どういう事なんでしょうか。内容的には、a しか入っていないという理解で合ってますか?
db = define byte = 1byte
dw = define word = 2byte
dd = define double word = 4byte
は分かりましたが、
hoge: db 'aaaaaaaaaaaaaaaaaa'
みたいな記述って、aaaaaaaaaaaaaaaaaa は明らかに 1byte 以上あるのに、
どういう事なんでしょうか。内容的には、a しか入っていないという理解で合ってますか?
2017/09/22(金) 20:37:06.73ID:WnQAL/Cu
2017/09/23(土) 12:38:38.12ID:fe2KLRAZ
hoge: db 0x61, 0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61
58デフォルトの名無しさん
2018/03/05(月) 14:38:16.42ID:QTTd7ohZ おいしいの?
59デフォルトの名無しさん
2018/05/23(水) 20:14:33.92ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IJOVM
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IJOVM
60デフォルトの名無しさん
2018/07/05(木) 01:29:48.73ID:RfoszcD2 VAT
61デフォルトの名無しさん
2018/07/05(木) 11:44:19.13ID:trpgv+Lz タイホ
62デフォルトの名無しさん
2019/03/14(木) 11:26:43.72ID:s2YvJJWc 本太地
63デフォルトの名無しさん
2021/03/10(水) 11:57:19.45ID:GqqrwlDC■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【コメ】卸売業者「簡単に安売りできない」 「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 [Hitzeschleier★]
- 空自機レーダー照射、音声データ公開 中国 ★4 [蚤の市★]
- 中国から訓練の連絡あったが、区域など具体的な内容知らされず=小泉防衛相 [♪♪♪★]
- 【高市早苗総理】食料品消費減税に慎重「今すぐ約束できない」…「物価上昇率は徐々に落ち着いていくと見込んでいる」 [Hitzeschleier★]
- 高市早苗総理「農水大臣が大好きなおこめ券」 野党が“おこめ券”追及 [Hitzeschleier★]
- TOTOのウォシュレット、累計販売台数が7000万台突破…トイレットペーパー不足のアメリカで急増 [♪♪♪★]
- 【高市速報】小泉進次郎「事前に中国軍から飛行訓練を開始すると連絡があったのは事実」 [931948549]
- 【正論】高市さん「長期金利が上がり続けていくことよりも、日本が成長していく方が大事」 [519511584]
- 日本の国内線「日本に航空会社が多すぎるとは考えていない」IATA事務総長 [943688309]
- トランプが高市に助け船を出さない理由🤔 [445522505]
- (´・ω・`)暇だから柏の葉キャンパス駅まで歩こうと思う
- 【悲報】アイ・オー、SSDなど165製品の価格改定 最大54.8%値上げ [966095474]
