X



【boot】nasm【loader】
■ このスレッドは過去ログ倉庫に格納されています
0014デフォルトの名無しさん
垢版 |
2013/08/22(木) NY:AN:NY.AN
>>12
命名当時の流行りじゃね?
D言語みたいな
0016デフォルトの名無しさん
垢版 |
2013/08/23(金) NY:AN:NY.AN
>>3
限定はしてません

>>4
【】はたまたま思いついたものです
済みませんでした
nasm特有の機能についても深めていきたいです
0021デフォルトの名無しさん
垢版 |
2013/08/25(日) NY:AN:NY.AN
次の方どうぞ
0023デフォルトの名無しさん
垢版 |
2013/08/25(日) NY:AN:NY.AN
                _     __      rくヾ\
        ___  , ≠´ : : : :  ̄`:´ : : : : :  ̄:三>xヾ\\
        ///:厶/ : : : : : : : : : : : : : : : : : : : : : : : : : : :`ヾ:\\
.       ///:/イ: : : : : : : : : : : : : : : i: : : : : : : : : : : : : : : : 、\ゝィ1
      ///:/: : : : : : : : : : : : : : : : : : l: : : : : : : : : : : ヽ: : : : ヽ:ヘ l:|
.     lTlン: : : : : : : : : : : : : i : : : : : l: : : : : : : : : : : : : \: : : ',:ハ!jヽ
     ,∨: : : ; : : : : : : : :i: : : l : : : : : ト 、: : : : : : : : : : : : :ヽ: : ',:',:',
   /:/: : : :,': : : : : : : : :l: : : :l : : : : : l  \ : : : : : : : : : : : : \ハ: :',:l
.  /: l: : : : ;! : : : : : : : : !: : : :ト 、: : : :',   ` <: : : : : : : : : : : ヾ : l: :l
  / : :|: : : /|: : : : : : : : :,l: : : ;'_\ : : ヘ   ィ´ ` <: : : : : : : :ヘ: :!: :、
. /: : : | : :,': :| : : : : : : : ハ: :/   ` ヽ: : :ヽ '    _ \ : : : : : : :| :∧
/: : : : l : l、: :|: : : : : : : i _V-−- 、  \ : \ ,ィく-.、 トハ ト、: : : : : ! : : !
: : : : : ∨: |Y : : : : : : | f7て)−ミ. ヽ   ` ーニゝ.ヒ':::::}.l || l: :ヽ: : : :l: : : l
: : : : : : : : | `| : : : : : : | V! い::::::::}.l        い、::ク ノ/  l : : ハ: : ;l: : : :!
: : : : : : : :||: : : : : :.| ヾ 廴ー_'丿        ` ー "   |: : l ノ: 九: : : ',
: : : : : : : : :! い: : : : :|            ,、           八 l レ' !: : : : l  なんだ?呼んだか?
: : : : : : : : :l  ヽ : : : : ハ          r‐- - ┐       /: : :l   |: : : : :|
: : : : : : : : :1   \:_: : :ヽ、       い    ノ    イ 廴/     | : : : : |
: : : : : : : : :ハ     ーヒ、: みー   _ ` ー ´_ . <3{ ヽ.      |: : : :|
: : : : : : : : :.∧      /`¨〒==9oュTトく >x ∧ヘl (ハ       |: : : : :|
0024デフォルトの名無しさん
垢版 |
2013/08/28(水) NY:AN:NY.AN
test
0025デフォルトの名無しさん
垢版 |
2013/08/30(金) NY:AN:NY.AN
みなさんお世話になりました
明日で2ch終了らしいので
今のうちに最後のご挨拶をしておきます
0027!omikuji
垢版 |
2014/01/08(水) 10:41:03.41
祈願
0029デフォルトの名無しさん
垢版 |
2014/04/29(火) 14:37:55.93ID:tuCmfcOr
ダジャレを言うのは誰じゃ?
0030片山博文MZバグロボ ◆T6xkBnTXz7B0
垢版 |
2014/05/16(金) 00:57:30.53ID:YZ6eU1pI
xor eax,eaxはeaxをゼロにする、といったアセンブリ技術のことが沢山
書かれたサイトを教えて下さい。
0031デフォルトの名無しさん
垢版 |
2014/05/16(金) 08:37:55.25ID:W3ISF2rL
問題。
AL に入っている数値を [DI] に16進数2ケタで出力せよ。
※ [DI+00] に上位桁、[DI+01] に下位桁
0033デフォルトの名無しさん
垢版 |
2014/05/16(金) 18:01:24.75ID:lP/gHzU8
>>30 サイトより、タイトルに「マシン語秘伝の書」って入ってる古本を2冊ほどゲットするのが
結局てっとり早いと思う。

あともうちょっと高級な技なら "Hacker's delight" の元ネタの多くが書かれている HAKMEM とか。
0035デフォルトの名無しさん
垢版 |
2014/12/08(月) 07:57:03.31ID:5xVLQkK/
イィ
0036デフォルトの名無しさん
垢版 |
2015/02/05(木) 18:50:29.25ID:Wisgh0P5
遺言
0038デフォルトの名無しさん
垢版 |
2015/09/04(金) 08:36:37.34ID:efXmgHpK
nasmのnってなんですの
0039デフォルトの名無しさん
垢版 |
2015/10/15(木) 18:23:58.06ID:bdlPZJI1
nasmのnに決まってるだろ
0040デフォルトの名無しさん
垢版 |
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
0042デフォルトの名無しさん
垢版 |
2015/10/29(木) 18:02:16.22ID:wsfqWnTY
同意します
0043デフォルトの名無しさん
垢版 |
2015/10/30(金) 20:32:06.78ID:dIO+gS7v
回答ありがとうございます。
Endianも含め、学習しなおしてきます。
0044デフォルトの名無しさん
垢版 |
2015/12/20(日) 14:53:09.59ID:8RLYRFXT
GPIFとはなんぞ
0045デフォルトの名無しさん
垢版 |
2016/08/07(日) 17:00:15.20ID:nuDQx96v
GPU
0046デフォルトの名無しさん
垢版 |
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
0047デフォルトの名無しさん
垢版 |
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
0048デフォルトの名無しさん
垢版 |
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
0049デフォルトの名無しさん
垢版 |
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
0050デフォルトの名無しさん
垢版 |
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
0051デフォルトの名無しさん
垢版 |
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
0052デフォルトの名無しさん
垢版 |
2017/02/09(木) 14:10:14.97ID:dTuvJyk9
うむ
0053デフォルトの名無しさん
垢版 |
2017/04/13(木) 02:34:31.58ID:8XBnDqPS
こっちだな
0054デフォルトの名無しさん
垢版 |
2017/07/20(木) 19:19:38.81ID:7mH9PEZK
64bitないよね
0055デフォルトの名無しさん
垢版 |
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 しか入っていないという理解で合ってますか?
0058デフォルトの名無しさん
垢版 |
2018/03/05(月) 14:38:16.42ID:QTTd7ohZ
おいしいの?
0059デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:14:33.92ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

IJOVM
0060デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:29:48.73ID:RfoszcD2
VAT
0061デフォルトの名無しさん
垢版 |
2018/07/05(木) 11:44:19.13ID:trpgv+Lz
タイホ
0062デフォルトの名無しさん
垢版 |
2019/03/14(木) 11:26:43.72ID:s2YvJJWc
本太地
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況