■ このスレッドは過去ログ倉庫に格納されています
アセンブラ 13
- 1 :デフォルトの名無しさん:2011/08/28(日) 15:24:40.59 .net
- 前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/
- 2 :デフォルトの名無しさん:2011/08/28(日) 15:27:22.39 .net
- > アセンブラを勉強するのにいい、unix系の本がありますか?
「プログラミングの力を生み出す本」がわりと良かったのだが在庫切れ増刷未定のようだな。
- 3 :デフォルトの名無しさん:2011/08/28(日) 17:58:47.52 .net
- カーネルのソースだろ
- 4 :uy:2011/08/29(月) 06:06:41.24 .net
- >>3
こういう奴って
どのバージョンのカーネルのどのファイルのアセンブラソースさしてんだ
他の奴は答えなくていいから ちょっとお前答えてみろよ
で、そのソースファイルを読むとどういうアセンブラの知識がみに付くのか、言ってごらん
知ったかぶりでカーネルカーネルいってるなら 責任とって死ねよお前
- 5 :デフォルトの名無しさん:2011/08/29(月) 08:14:26.79 .net
- おまえも2ちゃんねる荒らしの責任とって死ねよ
- 6 :デフォルトの名無しさん:2011/09/03(土) 07:38:26.09 .net
- >>4
3じゃないがLinux 0.01のboot.s head.sなんかはよんでおいたほうがいいな。
16bit real modeでのBIOS interrupt callの使い方から、32bit保護モードへの以降
gdtr idtr等のディスクリプターテーブル、ページング機構の準備とか。
アセンブリの知識もあるけどx86アーキテクチャの知識も身につく
- 7 :デフォルトの名無しさん:2011/09/03(土) 08:41:50.59 .net
- うんこぶりぶりあせんぶり
- 8 :デフォルトの名無しさん:2011/09/13(火) 08:07:27.52 .net
- ザイログ形式以外身につかない
- 9 :デフォルトの名無しさん:2011/09/14(水) 14:13:17.97 .net
- Z80をIntelニーモニックで解説している本で勉強すればいいんじゃね?
(俺はZilogで覚えちゃったからMOVとかわからんちん)
それ以上の奴をいきなり最初にやるのは敷居が高い気がする
- 10 :デフォルトの名無しさん:2011/09/14(水) 16:15:16.64 .net
- マシン語レベルで同じなんだから
あとはコンパイラがザイログ形式を受け付けるか受け付けないかの違いでしかない
シンプルで使いやすいザイログ形式がこれだけ干されてるのが不思議だ
8080ニーモニック Z80ニーモニック
MOV A,M LD A,(HL)
MOV M,A LD (HL),A
LDAX B LD A,(BC)
LDAX D LD A,(DE)
STAX B LD (BC),A
STAX D LD (DE),A
LDA 1234 LD A,(1234)
STA 1234 LD (1234),A
LD一つで済むだろ
- 11 :デフォルトの名無しさん:2011/09/14(水) 17:46:04.25 .net
- 俺はアセンブラ程度は自分で作ったけど、全部「A=B」のような代入形式にしたな。
- 12 :デフォルトの名無しさん:2011/09/14(水) 17:48:15.57 .net
- そういえば昔、SMCなんとかという8bitパソコンがそんな感じだったな
- 13 :デフォルトの名無しさん:2011/09/14(水) 18:19:48.54 .net
- Zilogのはアセンブラがめんどくなるのでメモリ厳しい環境にやさしくない
- 14 :デフォルトの名無しさん:2011/10/07(金) 17:08:46.15 .net
- 0f 01 d8 vmrun
0f 01 d9 vmmcall
0f 01 da vmload
0f 01 db vmsave
0f 01 dc stgi
0f 01 dd clgi
0f 01 de skinit
0f 01 df invlpga
オペコード表には載ってないけどこんな命令あったのか
- 15 :デフォルトの名無しさん:2011/10/07(金) 19:22:05.03 .net
- AMDV?
- 16 :デフォルトの名無しさん:2011/10/07(金) 20:00:51.00 .net
- >>15
あーそれでしたどうもです
インテルのマニュアルには当たり前だけど何も載ってないから知らなかった
- 17 :デフォルトの名無しさん:2011/10/10(月) 12:39:42.35 .net
- longモードで
40 01 00 rex add %eax,(%rax)
01 00 add %eax,(%rax)
この二つは実質的にどういう違いがあるんでしょうか?
- 18 :デフォルトの名無しさん:2011/10/10(月) 13:32:41.88 .net
- x86で、アセンブラのソースとしては区別がつかない、ことなったバイナリ機械語列が
あることについての疑問?
特に差はないよ。昔からある。
- 19 :デフォルトの名無しさん:2011/10/10(月) 13:52:38.18 .net
- REXプリフィクスのWビットを作った目的は
新たに増えた8本のレジスタの下位32/16ビットをアクセスするためということでいいんでしょうか?
オペランドサイズを32bitにするだけならREXプリフィックスなしの命令を使えば済むはずですよね
66とREX.Wの二つのフラグがあって分かりにくいです
- 20 :デフォルトの名無しさん:2011/10/22(土) 07:51:13.15 .net
- C言語に挫折したので、アセンブラから修行しようと思います。
シンプルで学びやすく資料が多いものとなればZ80になりますでしょうか?
定番と呼べる解説書などあったら紹介してください。
- 21 :デフォルトの名無しさん:2011/10/22(土) 10:45:32.09 .net
- CASL2(情報処理試験用の架空アセンブラ)という手もある
素人向けの資料に関してはかなり多い、試験対策の参考書が大量に出回ってるからな
- 22 :デフォルトの名無しさん:2011/10/22(土) 12:06:05.99 .net
- CASLはやめとけ。
今時バイトアドレッシングじゃないアーキテクチャで入門の勉強しても、
後でわかりにくくなるだけだ。
- 23 :デフォルトの名無しさん:2011/10/22(土) 12:57:19.77 .net
- この人のやりたいのはC言語じゃね?
C言語の予備知識つける程度にならあれで充分な気もするが
- 24 :デフォルトの名無しさん:2011/10/24(月) 21:59:25.14 .net
- >>20
16bitマイコンが良いんじゃない?
秋月その他でキットが買えるルネサスのH8とか、TIのMSP430とか。
どちらも開発ツールは使いやすいとは言えないかもしれんが、
命令セット自体は割とシンプルで癖もなく使いやすい。
- 25 :デフォルトの名無しさん:2011/10/25(火) 00:18:32.65 .net
- windowsに付いてくるdebugで十分だよ
- 26 :デフォルトの名無しさん:2011/10/25(火) 11:44:17.71 .net
- いまさら8086の勉強しても…
確実にセグメントで挫折するぞ
- 27 :デフォルトの名無しさん:2011/10/25(火) 19:26:24.25 .net
- はじめて読む486のx86-64版みたいな本はないのかな。洋書でもいいんだけど。
- 28 :デフォルトの名無しさん:2011/10/26(水) 10:31:41.22 .net
- >>27
これは?
Professional Assembly Language (Programmer to Programmer) by Richard Blum
http://www.amazon.com/Professional-Assembly-Language-Programmer/dp/0764579010/ref=sr_1_1?ie=UTF8&qid=1319591733&sr=8-1
あと新しめなのが
The Art of Assembly Language by Randall Hyde
http://www.amazon.com/Art-Assembly-Language-Randall-Hyde/dp/1593272073/ref=sr_1_5?ie=UTF8&qid=1319591733&sr=8-5
この本ではHLA (High Level Assembler)というPascalっぽい独自のマクロアセンブラを使ってるね。
http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/index.html
- 29 :デフォルトの名無しさん:2011/10/26(水) 22:12:46.54 .net
- >>28
勧めてくれてありがたいんだけど、違う種類の本みたい。
- 30 :デフォルトの名無しさん:2011/12/12(月) 06:43:54.37 .net
- x86で処理実行するコアを指定する命令を教えてください
- 31 :デフォルトの名無しさん:2011/12/13(火) 14:17:11.74 .net
- それはOSのコマンドだ
cpusetとかな
- 32 :デフォルトの名無しさん:2011/12/15(木) 12:52:59.14 .net
- >>31
ありがとう。
こういうコマンドはどうやって実装してるのかな?
インテルのx86の説明書読んだけど、見つけられなかった。
- 33 :不明なデバイスさん:2011/12/15(木) 14:47:12.08 .net
- 読むもの間違ってる。CPUが勝手にプロセスをスイッチするわけないだろ?
関連する命令は載ってるだろうがそれだけでは何も解決しない。
自分でマルチプロセッサ対応のSMPマルチタスキングスケジューラーを作るなら、BSDかlinuxのカーネルのソースでも読めばいい。
OSがあるならAPI呼べ。
- 34 :デフォルトの名無しさん:2011/12/16(金) 03:46:10.74 .net
- x86にどんな命令があるかって
インテルから説明書とか仕様書のコピーとかそんな感じのもの買わないと分からない?
- 35 :デフォルトの名無しさん:2011/12/16(金) 04:53:53.02 .net
- >>33
ありがとう。
ちょっと興味があっただけなんで、時間があれば読みます。
- 36 :デフォルトの名無しさん:2011/12/16(金) 06:45:33.41 .net
- >>34
落とせ
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
http://www.intel.com/jp/download/index.htm
- 37 :デフォルトの名無しさん:2012/02/25(土) 17:08:40.88 .net
- x86のアセンブラでプログラミングをしたいのですが、
アセンブラ用のエディタとかIDEとかって無いのですか?
- 38 :デフォルトの名無しさん:2012/02/25(土) 18:28:46.64 .net
- 前世紀にはあった
- 39 :デフォルトの名無しさん:2012/02/25(土) 19:01:04.15 .net
- emu8086っての使ってた
15日ぐらいの試用でデバッガは使えなくなるけど自己解決しました
- 40 :37:2012/02/25(土) 21:00:01.36 .net
- >>39
使ってみましたが、入力画面がバグりますね…。
ググったらFASMのfreshっていうのがけっこう高機能そうなのでこれ使ってみます。
64bit非対応なのが難ですが。
- 41 :デフォルトの名無しさん:2012/02/25(土) 21:22:43.11 .net
- >>40
そうそう、選んだフォントによってはおかしくなる
自分に合ったのを使った方がいいね
- 42 :デフォルトの名無しさん:2012/03/17(土) 17:02:20.04 .net
- アッセンブリブリ
- 43 :デフォルトの名無しさん:2012/03/17(土) 19:35:52.22 .net
- >>37
WinASM
http://www.winasm.net/
RadASM
http://radasm.cherrytree.at/radasm/
- 44 :デフォルトの名無しさん:2012/03/17(土) 20:14:03.22 .net
- >>37
Visual C++ 2010 Express でいいじゃん。
http://www.microsoft.com/japan/msdn/vstudio/express/
ASM も C/C++ も使えるし、VB や C# に浮気すんのもラクチンだし、マジオススメ。
- 45 :デフォルトの名無しさん:2012/03/18(日) 13:52:08.72 .net
- >>37
インラインアセンブラがオススメやで?
逆アセンブルウィンドウとかも勉強になるしな
だから普通のVisual Studioちゃん
- 46 :デフォルトの名無しさん:2012/03/18(日) 14:56:52.43 .net
- >>43
WinASM以外と凄いな。
あんまりコード書かないで簡単なダイアログアプリ作れちゃったよ
- 47 :デフォルトの名無しさん:2012/03/21(水) 03:06:44.48 .net
- VirtualPCとかVMwareとかでアセンブルでオリジナルOSとか作れちゃったりする?
- 48 :デフォルトの名無しさん:2012/03/21(水) 17:18:52.57 .net
- OSならC++でやった方が楽だろう
- 49 :デフォルトの名無しさん:2012/03/22(木) 15:41:44.49 .net
- この程度のことを自力解決できない様では
何使っても結果は同じだろう
- 50 :デフォルトの名無しさん:2012/03/26(月) 02:30:25.17 .net
- gasで最近.intel_syntax使い始めたんだけど、
いままで
movw $Label, %SI
って書いてたのを
mov SI, Label
にすると即値代入じゃなくなってしまう。
どうすればいいんだろう。
- 51 :デフォルトの名無しさん:2012/03/26(月) 02:34:43.91 .net
- intel_syntaxやめればおk
- 52 :デフォルトの名無しさん:2012/03/26(月) 02:37:12.06 .net
- masm系だとoffset Labelだけど
gasだとintel_syntaxでも$Labelじゃなかったっけ?
自信ないけど。
- 53 :デフォルトの名無しさん:2012/03/26(月) 02:38:10.54 .net
- そうだ
movじゃなくてleaを使えば良いかも。
本質的な解決じゃないけど。
- 54 :デフォルトの名無しさん:2012/03/26(月) 02:45:03.10 .net
- >>50
gasなんて所詮はコンパイラの出力をアセンブルする程度のツールなんだから、縁を切るチャンスと思うほうが吉。
- 55 :デフォルトの名無しさん:2012/04/14(土) 10:08:42.94 .net
- 初歩的な質問ですまないけど一つ教えて。
call label_name@xxx
(xxxは整数値)の@xxxは何を意味するのでしょうか?
見かけたのは↓の"call _GetStdHandle@4"などの表記です。
ttp://ja.wikibooks.org/wiki/X86%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9/GAS%E3%81%A7%E3%81%AE%E6%96%87%E6%B3%95
- 56 :デフォルトの名無しさん:2012/04/14(土) 11:20:37.16 .net
- 単にそういう名前の関数なだけです
- 57 :デフォルトの名無しさん:2012/04/14(土) 22:23:48.97 .net
- 呼び出し規約が __stdcall(WINAPI) の場合の、引数の合計サイズですよ。
- 58 :55:2012/04/15(日) 03:55:29.17 .net
- >>57
thx.
そういう情報ってどこか集まっているサイトか資料(本とか)あるんですか?
ここで質問する前に結構探したつもりなんですが…。
- 59 :デフォルトの名無しさん:2012/04/15(日) 16:20:37.25 .net
- >>58
検索するとしたら "アセンブラ 呼び出し規約" かなあ。
例えば↓とか。
ttp://ray.sakura.ne.jp/asm/9.html
- 60 :デフォルトの名無しさん:2012/06/21(木) 21:51:25.92 .net
- BIOSでhello worldを表示するためのプログラムを作ってみたんですが、何も表示されません。
「mov (%bx), %al」コレがマズイ気がするのですが、表示する方法を教えてもらえませんか?
.code16
.text
_start:
.global _start
mov $msg, %dx
jmp loop1
loop:
mov $0x00, %bh
mov $0x07, %bl
mov $0x0e, %ah
int $0x10
loop1:
mov %dx, %bx
mov (%bx), %al
inc %dx
cmp $0, %al
jne loop
msg:
.ascii "Hello World\r\n\0"
end:
.org 0x200-2
.word 0xaa55
- 61 :デフォルトの名無しさん:2012/06/21(木) 22:13:23.04 .net
- >>60
動作環境ぐらい書いとけ(つーかその辺りから分かってないだろ?)
- 62 :デフォルトの名無しさん:2012/06/21(木) 22:50:24.78 .net
- >>61
vmwareです。
正直あまりわかってないけど、昔は同じようなプログラムを作った。
- 63 :60:2012/06/21(木) 22:53:34.34 .net
- 概ねこのサイトのコピペなんですが、どれもちゃんと動かないです。
何も表示されなかったり、文字化けしたり…
http://news.mynavi.jp/column/helloworld/021/index.html
- 64 :デフォルトの名無しさん:2012/06/21(木) 23:21:42.01 .net
- QEMUは「qemu -fda as_bios3.com」で起動します。
- 65 :60:2012/06/21(木) 23:33:32.01 .net
- 知ってたらでいいんで、文字列の目の前でcallする以外のスマートな方法ありますか?
FreeBSDのブートプログラム見たらそんなのないけど、アセンブラの知識不足でよくわかりません。
- 66 :デフォルトの名無しさん:2012/06/21(木) 23:38:44.15 .net
- >アセンブラの知識不足
パソコンのBIOSについての知識不足?
- 67 :60:2012/06/21(木) 23:40:09.64 .net
- それも不足してると思います。
- 68 :デフォルトの名無しさん:2012/06/21(木) 23:43:24.94 .net
- 63に書いてあることはやったの、DOS窓のほう?
- 69 :60:2012/06/21(木) 23:46:57.54 .net
- 一番下以外はvmwareで試しました。(おかしな表示になりました)。
Windowsじゃなくて、LinuxなんでDOS窓では動かしてません。
一番下のは明日やります。
アドバイスくれた人ありがとう。
釈然としませんが、とりあえずcallを使うと上手く行くらしいことだけわかりました。
- 70 :デフォルトの名無しさん:2012/06/21(木) 23:57:39.28 .net
- linuxならdosemu上でやってみたら
- 71 :60:2012/06/22(金) 00:10:17.98 .net
- dosemuインストールしましたが、使い方を調べてみます。
- 72 :60:2012/06/22(金) 01:07:07.83 .net
- http://d.hatena.ne.jp/pakepion/20080602/1212412508
この変見てるとcall使ってないんですが、nasmとgasの違いなのでしょうかね?
- 73 :デフォルトの名無しさん:2012/06/22(金) 01:14:32.98 .net
- int 0x10
がBIOSコール
- 74 :60:2012/06/22(金) 01:16:06.81 .net
- >>73
それはわかったのですが、なぜか文字化けor表示されないのです。
>>63のサイトでは、callを使えとあるんですが、いまいち理由がわからず困っています。
- 75 :60:2012/06/22(金) 01:24:53.38 .net
- コンパイルオプションの問題でした。
スレを汚してすみません。
- 76 :デフォルトの名無しさん:2012/06/22(金) 03:35:26.45 .net
- callに呼応しているのはpop %bp。
IA32ではipを直接movしたりip相対でアドレシングすることができないから
その代わり。
- 77 :60:2012/06/25(月) 00:29:00.44 .net
- >>76
遅くなりましたがありがとうございます。
割り込みに関するIDTRを調べているのですが、1組6byteのテーブルの内容がよくわかりません。
持っている本には、
1byte:ループカウンタ
1byte:P:DPL:タイプ
2byte:制御ワード
2byte:ハンドラへのジャンプテーブル
とあるのですが、ここでループカウンタと制御ワードの意味がわかる方がいれば教えてください。
- 78 :デフォルトの名無しさん:2012/06/25(月) 01:49:39.23 .net
- IDTRの知識を必要とするレベルには、とても見えないのだけれど。
万が一本当にその知識が必要なのであれば
http://www.intel.com/jp/download/index.htm#ia32 の中の
下巻: システム・プログラミング・ガイド
http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol3_i.pdf
でも読むといいかもね。
- 79 :デフォルトの名無しさん:2012/06/25(月) 09:00:36.87 .net
- 根本的におかしすぎてどうしようもないレベル
- 80 :デフォルトの名無しさん:2012/06/27(水) 01:56:38.88 .net
- BIOSでHelloWorldを表示ってどういう意味だ?
- 81 :デフォルトの名無しさん:2012/06/27(水) 23:21:56.66 .net
- NASMで「mov byte [es:edi], al」をgasで書き換えるとどうなるでしょうか?
- 82 :デフォルトの名無しさん:2012/06/27(水) 23:32:33.46 .net
- >[es:edi]
?
- 83 :デフォルトの名無しさん:2012/06/27(水) 23:44:32.19 .net
- mov %es:(%di),%al
- 84 :デフォルトの名無しさん:2012/06/28(木) 00:10:36.43 .net
- >>83
ありがとう。
- 85 :デフォルトの名無しさん:2012/06/28(木) 18:48:03.33 .net
- こういうのってバイナリで書いてnmの逆汗オプションで調べられないかな
- 86 :デフォルトの名無しさん:2012/06/28(木) 18:53:10.88 .net
- 今時バイナリを直で作るほうが大変でしょ
- 87 :デフォルトの名無しさん:2012/06/28(木) 22:54:47.43 .net
- int main(void)
{
__asm__("nop\n\tnop\n\tnop\n\tnop\n\tnop");
}
てのをコンパイルして、nopの所を適当なコードに書き換えてしまえばいいんでないかい
- 88 :デフォルトの名無しさん:2012/06/28(木) 23:00:12.45 .net
- インライン書くのなら、中身に直書きしたほうが
- 89 :デフォルトの名無しさん:2012/09/26(水) 19:30:11.06 .net
- nasm hoge.asm -o hoge.img
で良いじゃん。中身が単一の命令なら、それだけ吐き出されるだろ?
- 90 :デフォルトの名無しさん:2012/10/08(月) 02:03:11.10 .net
- おすすめのアセンブラをおせーて
- 91 :デフォルトの名無しさん:2012/10/08(月) 02:08:26.63 .net
- どんなアセンブラがお望みだい
x86系かい
armかい
役にたってもたたなくても、ともに300ルピーだよ
いっひっひ
- 92 :デフォルトの名無しさん:2012/10/08(月) 02:52:39.98 .net
- >>90
MicrosoftのMACRO-80はインテルニモニックにもザイログニモニックにも対応してるので超オススメ!
マクロも強力だし、最新版は6502にも対応してるヨ!
- 93 :デフォルトの名無しさん:2012/10/08(月) 03:55:52.59 .net
- ★修学旅行、韓国から国内に変更…宮崎・日南高
日本と韓国の関係悪化を受けて、宮崎県立日南高は2年生27人が12月に予定していた韓国への
修学旅行を国内に変更した。
日南高によると、同校の修学旅行は韓国と国内の二つから選べることになっており、今年は2年生
170人のうち、143人が東京や群馬などの国内を選択。27人が同校の姉妹校・冠陽高があるソウル
などへの旅行を希望していた。
竹島問題などを巡って、日韓関係が悪化していることから、韓国への修学旅行について慎重に検討した
結果、「韓国の情勢が不透明で、生徒の安全などを考慮した」として、行き先を国内に一本化したという。
県内の別の高校も来年3月に計画している韓国への修学旅行について、変更を検討しているという。
http://www.yomiuri.co.jp/kyoiku/news/20121006-OYT8T00695.htm
- 94 :デフォルトの名無しさん:2012/10/08(月) 06:37:40.09 .net
- 韓国より台湾へ行けば良いのに
- 95 :デフォルトの名無しさん:2012/10/08(月) 09:58:10.52 .net
- 尖閣問題で台湾だっていつ敵になるかわからんのに平和ボケもいいところだな
- 96 :デフォルトの名無しさん:2012/10/08(月) 10:27:00.15 .net
- 工作員ですね
わかります
- 97 :デフォルトの名無しさん:2012/10/08(月) 15:19:54.96 .net
- ν速に帰れ
- 98 :デフォルトの名無しさん:2012/10/08(月) 15:23:18.91 .net
- >>92
MASM はどう?
- 99 :デフォルトの名無しさん:2012/10/08(月) 15:25:30.06 .net
- nasmのがいいよ
- 100 :デフォルトの名無しさん:2012/10/09(火) 02:15:29.52 .net
- gasは?
総レス数 1000
154 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★