1read 100read
2013年17プログラム199: アセンブラ 13 (144) TOP カテ一覧 スレ一覧 2ch元 削除依頼
OpenWatcom C++ (754)
今まで見た中で一番すげーコメント (584)
ふらっとVisual C#,C♯,C#(初心者用) Part106 (992)
【統計分析】機械学習・データマイニング3 (308)
★★ Java の宿題ここで答えます Part 72 ★★ (750)
推薦図書/必読書のためのスレッド 70 (615)

アセンブラ 13


1 :2011/08/28 〜 最終レス :2013/08/21
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/

2 :
> アセンブラを勉強するのにいい、unix系の本がありますか?
「プログラミングの力を生み出す本」がわりと良かったのだが在庫切れ増刷未定のようだな。

3 :
カーネルのソースだろ

4 :
>>3
こういう奴って
どのバージョンのカーネルのどのファイルのアセンブラソースさしてんだ
他の奴は答えなくていいから ちょっとお前答えてみろよ
で、そのソースファイルを読むとどういうアセンブラの知識がみに付くのか、言ってごらん

知ったかぶりでカーネルカーネルいってるなら 責任とってRよお前

5 :
おまえも2ちゃんねる荒らしの責任とってRよ

6 :
>>4
3じゃないがLinux 0.01のboot.s head.sなんかはよんでおいたほうがいいな。
16bit real modeでのBIOS interrupt callの使い方から、32bit保護モードへの以降
gdtr idtr等のディスクリプターテーブル、ページング機構の準備とか。
アセンブリの知識もあるけどx86アーキテクチャの知識も身につく

7 :
うんこぶりぶりあせんぶり

8 :
ザイログ形式以外身につかない

9 :
Z80をIntelニーモニックで解説している本で勉強すればいいんじゃね?
(俺はZilogで覚えちゃったからMOVとかわからんちん)
それ以上の奴をいきなり最初にやるのは敷居が高い気がする

10 :
マシン語レベルで同じなんだから
あとはコンパイラがザイログ形式を受け付けるか受け付けないかの違いでしかない
シンプルで使いやすいザイログ形式がこれだけ干されてるのが不思議だ
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 :
俺はアセンブラ程度は自分で作ったけど、全部「A=B」のような代入形式にしたな。

12 :
そういえば昔、SMCなんとかという8bitパソコンがそんな感じだったな

13 :
Zilogのはアセンブラがめんどくなるのでメモリ厳しい環境にやさしくない

14 :
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 :
AMDV?

16 :
>>15
あーそれでしたどうもです
インテルのマニュアルには当たり前だけど何も載ってないから知らなかった

17 :
longモードで
40 01 00 rex add %eax,(%rax)
01 00 add %eax,(%rax)
この二つは実質的にどういう違いがあるんでしょうか?

18 :
x86で、アセンブラのソースとしては区別がつかない、ことなったバイナリ機械語列が
あることについての疑問?
特に差はないよ。昔からある。

19 :
REXプリフィクスのWビットを作った目的は
新たに増えた8本のレジスタの下位32/16ビットをアクセスするためということでいいんでしょうか?
オペランドサイズを32bitにするだけならREXプリフィックスなしの命令を使えば済むはずですよね
66とREX.Wの二つのフラグがあって分かりにくいです

20 :
C言語に挫折したので、アセンブラから修行しようと思います。
シンプルで学びやすく資料が多いものとなればZ80になりますでしょうか?
定番と呼べる解説書などあったら紹介してください。

21 :
CASL2(情報処理試験用の架空アセンブラ)という手もある
素人向けの資料に関してはかなり多い、試験対策の参考書が大量に出回ってるからな

22 :
CASLはやめとけ。
今時バイトアドレッシングじゃないアーキテクチャで入門の勉強しても、
後でわかりにくくなるだけだ。

23 :
この人のやりたいのはC言語じゃね?
C言語の予備知識つける程度にならあれで充分な気もするが

24 :
>>20
16bitマイコンが良いんじゃない?
秋月その他でキットが買えるルネサスのH8とか、TIのMSP430とか。
どちらも開発ツールは使いやすいとは言えないかもしれんが、
命令セット自体は割とシンプルで癖もなく使いやすい。

25 :
windowsに付いてくるdebugで十分だよ

26 :
いまさら8086の勉強しても…
確実にセグメントで挫折するぞ

27 :
はじめて読む486のx86-64版みたいな本はないのかな。洋書でもいいんだけど。

28 :
>>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 :
>>28
勧めてくれてありがたいんだけど、違う種類の本みたい。

30 :
x86で処理実行するコアを指定する命令を教えてください

31 :
それはOSのコマンドだ
cpusetとかな

32 :
>>31
ありがとう。
こういうコマンドはどうやって実装してるのかな?
インテルのx86の説明書読んだけど、見つけられなかった。

33 :
読むもの間違ってる。CPUが勝手にプロセスをスイッチするわけないだろ?
関連する命令は載ってるだろうがそれだけでは何も解決しない。
自分でマルチプロセッサ対応のSMPマルチタスキングスケジューラーを作るなら、BSDかlinuxのカーネルのソースでも読めばいい。
OSがあるならAPI呼べ。

34 :
x86にどんな命令があるかって
インテルから説明書とか仕様書のコピーとかそんな感じのもの買わないと分からない?

35 :
>>33
ありがとう。
ちょっと興味があっただけなんで、時間があれば読みます。

36 :
>>34
落とせ
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
http://www.intel.com/jp/download/index.htm

37 :
x86のアセンブラでプログラミングをしたいのですが、
アセンブラ用のエディタとかIDEとかって無いのですか?

38 :
前世紀にはあった

39 :
emu8086っての使ってた
15日ぐらいの試用でデバッガは使えなくなるけど自己解決しました

40 :
>>39
使ってみましたが、入力画面がバグりますね…。
ググったらFASMのfreshっていうのがけっこう高機能そうなのでこれ使ってみます。
64bit非対応なのが難ですが。

41 :
>>40
そうそう、選んだフォントによってはおかしくなる
自分に合ったのを使った方がいいね

42 :
アッセンブリブリ

43 :
>>37
WinASM
http://www.winasm.net/
RadASM
http://radasm.cherrytree.at/radasm/

44 :
>>37
Visual C++ 2010 Express でいいじゃん。
http://www.microsoft.com/japan/msdn/vstudio/express/
ASM も C/C++ も使えるし、VB や C# に浮気すんのもラクチンだし、マジオススメ。

45 :
>>37
インラインアセンブラがオススメやで?
逆アセンブルウィンドウとかも勉強になるしな
だから普通のVisual Studioちゃん

46 :
>>43
WinASM以外と凄いな。
あんまりコード書かないで簡単なダイアログアプリ作れちゃったよ

47 :
VirtualPCとかVMwareとかでアセンブルでオリジナルOSとか作れちゃったりする?

48 :
OSならC++でやった方が楽だろう

49 :
この程度のことを自力解決できない様では
何使っても結果は同じだろう

50 :
gasで最近.intel_syntax使い始めたんだけど、
いままで
movw $Label, %SI
って書いてたのを
mov SI, Label
にすると即値代入じゃなくなってしまう。
どうすればいいんだろう。

51 :
intel_syntaxやめればおk

52 :
masm系だとoffset Labelだけど
gasだとintel_syntaxでも$Labelじゃなかったっけ?
自信ないけど。

53 :
そうだ
movじゃなくてleaを使えば良いかも。
本質的な解決じゃないけど。

54 :
>>50
gasなんて所詮はコンパイラの出力をアセンブルする程度のツールなんだから、縁を切るチャンスと思うほうが吉。

55 :
初歩的な質問ですまないけど一つ教えて。
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 :
単にそういう名前の関数なだけです

57 :
呼び出し規約が __stdcall(WINAPI) の場合の、引数の合計サイズですよ。

58 :
>>57
thx.
そういう情報ってどこか集まっているサイトか資料(本とか)あるんですか?
ここで質問する前に結構探したつもりなんですが…。

59 :
>>58
検索するとしたら "アセンブラ 呼び出し規約" かなあ。
例えば↓とか。
ttp://ray.sakura.ne.jp/asm/9.html

60 :
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 :
>>60
動作環境ぐらい書いとけ(つーかその辺りから分かってないだろ?)

62 :
>>61
vmwareです。
正直あまりわかってないけど、昔は同じようなプログラムを作った。

63 :
概ねこのサイトのコピペなんですが、どれもちゃんと動かないです。
何も表示されなかったり、文字化けしたり…
http://news.mynavi.jp/column/helloworld/021/index.html

64 :
QEMUは「qemu -fda as_bios3.com」で起動します。

65 :
知ってたらでいいんで、文字列の目の前でcallする以外のスマートな方法ありますか?
FreeBSDのブートプログラム見たらそんなのないけど、アセンブラの知識不足でよくわかりません。

66 :
>アセンブラの知識不足
パソコンのBIOSについての知識不足?

67 :
それも不足してると思います。

68 :
63に書いてあることはやったの、DOS窓のほう?

69 :
一番下以外はvmwareで試しました。(おかしな表示になりました)。
Windowsじゃなくて、LinuxなんでDOS窓では動かしてません。
一番下のは明日やります。
アドバイスくれた人ありがとう。
釈然としませんが、とりあえずcallを使うと上手く行くらしいことだけわかりました。

70 :
linuxならdosemu上でやってみたら

71 :
dosemuインストールしましたが、使い方を調べてみます。

72 :
http://d.hatena.ne.jp/pakepion/20080602/1212412508
この変見てるとcall使ってないんですが、nasmとgasの違いなのでしょうかね?

73 :
int 0x10
がBIOSコール

74 :
>>73
それはわかったのですが、なぜか文字化けor表示されないのです。
>>63のサイトでは、callを使えとあるんですが、いまいち理由がわからず困っています。

75 :
コンパイルオプションの問題でした。
スレを汚してすみません。

76 :
callに呼応しているのはpop %bp。
IA32ではipを直接movしたりip相対でアドレシングすることができないから
その代わり。

77 :
>>76
遅くなりましたがありがとうございます。
割り込みに関するIDTRを調べているのですが、1組6byteのテーブルの内容がよくわかりません。
持っている本には、
1byte:ループカウンタ
1byte:P:DPL:タイプ
2byte:制御ワード
2byte:ハンドラへのジャンプテーブル
とあるのですが、ここでループカウンタと制御ワードの意味がわかる方がいれば教えてください。

78 :
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 :
根本的におかしすぎてどうしようもないレベル

80 :
BIOSでHelloWorldを表示ってどういう意味だ?

81 :
NASMで「mov byte [es:edi], al」をgasで書き換えるとどうなるでしょうか?

82 :
>[es:edi]
?

83 :
mov %es:(%di),%al

84 :
>>83
ありがとう。

85 :
こういうのってバイナリで書いてnmの逆汗オプションで調べられないかな

86 :
今時バイナリを直で作るほうが大変でしょ

87 :
int main(void)
{
 __asm__("nop\n\tnop\n\tnop\n\tnop\n\tnop");
}
てのをコンパイルして、nopの所を適当なコードに書き換えてしまえばいいんでないかい

88 :
インライン書くのなら、中身に直書きしたほうが

89 :
nasm hoge.asm -o hoge.img
で良いじゃん。中身が単一の命令なら、それだけ吐き出されるだろ?

90 :
おすすめのアセンブラをおせーて

91 :
どんなアセンブラがお望みだい
x86系かい
armかい
役にたってもたたなくても、ともに300ルピーだよ
いっひっひ

92 :
>>90
MicrosoftのMACRO-80はインテルニモニックにもザイログニモニックにも対応してるので超オススメ!
マクロも強力だし、最新版は6502にも対応してるヨ!

93 :
★修学旅行、韓国から国内に変更…宮崎・日南高
 日本と韓国の関係悪化を受けて、宮崎県立日南高は2年生27人が12月に予定していた韓国への
修学旅行を国内に変更した。
 日南高によると、同校の修学旅行は韓国と国内の二つから選べることになっており、今年は2年生
170人のうち、143人が東京や群馬などの国内を選択。27人が同校の姉妹校・冠陽高があるソウル
などへの旅行を希望していた。
 竹島問題などを巡って、日韓関係が悪化していることから、韓国への修学旅行について慎重に検討した
結果、「韓国の情勢が不透明で、生徒の安全などを考慮した」として、行き先を国内に一本化したという。
 県内の別の高校も来年3月に計画している韓国への修学旅行について、変更を検討しているという。
http://www.yomiuri.co.jp/kyoiku/news/20121006-OYT8T00695.htm

94 :
韓国より台湾へ行けば良いのに

95 :
尖閣問題で台湾だっていつ敵になるかわからんのに平和ボケもいいところだな

96 :
工作員ですね
わかります

97 :
ν速に帰れ

98 :
>>92
MASM はどう?

99 :
nasmのがいいよ

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
プログラム関係の雑誌について (230)
C++11/C++1y 18 (806)
【初心者歓迎】C/C++室 Ver.86【環境依存OK】 (103)
Borland Developer Studio 2006 No.13 (290)
【DI】Java Spring Frameworkを語るスレ 5.0 (157)
★★ Java の宿題ここで答えます Part 72 ★★ (750)
--log9.info------------------
新潟の釣り情報part47 (952)
魚を持ち帰る(氷・保冷剤)クーラーボックス 9 (227)
揖斐長良川河口および木曽川河口の釣り その7 (758)
児島玲子総合スレッド (812)
【美女釣り師】児島玲子【好きです!】 しょの15 (244)
【1万円以下】安物リールについて語るスレ part26 (726)
【アジング】  34  【THIRTY FOUR】Part3 (726)
一人で釣りに行く人 二人目 (678)
【能登】石川県の釣り 2匹目【加賀】 (411)
◆◆名古屋港・知多半島の釣り その31◆◆ (655)
【渓流竿】⌒ 手竿で海釣り2 ⌒【へら竿】 (113)
【横須賀市】三浦半島の釣りPART17【三浦市】 (945)
【魚心観】 【G-CRAFT】 【Bassart】 その3 (463)
【んじゃノシ】釧路で釣ろうぜ 3匹目【立禁で釣り】 (214)
【毒針】アイゴ・バリ情報【イタタ】 (122)
【DAIKO】ダイコールアーロッド 8 (630)
--log55.com------------------
【SSFW】大阪☆春夏秋冬Part15【しゅかしゅん】
【てんゆぎ】天使ノ御遊戯 PART1
Perfumeファンだけどアンチあ〜ちゃん55
現在のバニラビーンズのスレ〜going my way〜
全力少女R【全力センセーション】Part2
【朗報待とう】山中知恵 Part30【ほととぎす】
【ボックス】ハコイリムスメ part12 【ハコムス】
【avex】ONECHANCE 【崖っぷち】