アセンブラ 13

■ このスレッドは過去ログ倉庫に格納されています
2011/08/28(日) 15:24:40.59
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/
2011/10/26(水) 10:31:41.22
>>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
2011/10/26(水) 22:12:46.54
>>28
勧めてくれてありがたいんだけど、違う種類の本みたい。
30デフォルトの名無しさん
垢版 |
2011/12/12(月) 06:43:54.37
x86で処理実行するコアを指定する命令を教えてください
2011/12/13(火) 14:17:11.74
それはOSのコマンドだ

cpusetとかな
2011/12/15(木) 12:52:59.14
>>31
ありがとう。
こういうコマンドはどうやって実装してるのかな?
インテルのx86の説明書読んだけど、見つけられなかった。
2011/12/15(木) 14:47:12.08
読むもの間違ってる。CPUが勝手にプロセスをスイッチするわけないだろ?
関連する命令は載ってるだろうがそれだけでは何も解決しない。
自分でマルチプロセッサ対応のSMPマルチタスキングスケジューラーを作るなら、BSDかlinuxのカーネルのソースでも読めばいい。
OSがあるならAPI呼べ。
2011/12/16(金) 03:46:10.74
x86にどんな命令があるかって
インテルから説明書とか仕様書のコピーとかそんな感じのもの買わないと分からない?
2011/12/16(金) 04:53:53.02
>>33
ありがとう。
ちょっと興味があっただけなんで、時間があれば読みます。
2011/12/16(金) 06:45:33.41
>>34
落とせ
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
http://www.intel.com/jp/download/index.htm
2012/02/25(土) 17:08:40.88
x86のアセンブラでプログラミングをしたいのですが、
アセンブラ用のエディタとかIDEとかって無いのですか?
2012/02/25(土) 18:28:46.64
前世紀にはあった
2012/02/25(土) 19:01:04.15
emu8086っての使ってた
15日ぐらいの試用でデバッガは使えなくなるけど自己解決しました
4037
垢版 |
2012/02/25(土) 21:00:01.36
>>39
使ってみましたが、入力画面がバグりますね…。
ググったらFASMのfreshっていうのがけっこう高機能そうなのでこれ使ってみます。
64bit非対応なのが難ですが。
2012/02/25(土) 21:22:43.11
>>40
そうそう、選んだフォントによってはおかしくなる
自分に合ったのを使った方がいいね
42デフォルトの名無しさん
垢版 |
2012/03/17(土) 17:02:20.04
アッセンブリブリ
43デフォルトの名無しさん
垢版 |
2012/03/17(土) 19:35:52.22
>>37
WinASM
http://www.winasm.net/

RadASM
http://radasm.cherrytree.at/radasm/
2012/03/17(土) 20:14:03.22
>>37
Visual C++ 2010 Express でいいじゃん。
http://www.microsoft.com/japan/msdn/vstudio/express/

ASM も C/C++ も使えるし、VB や C# に浮気すんのもラクチンだし、マジオススメ。
2012/03/18(日) 13:52:08.72
>>37
インラインアセンブラがオススメやで?
逆アセンブルウィンドウとかも勉強になるしな
だから普通のVisual Studioちゃん
2012/03/18(日) 14:56:52.43
>>43
WinASM以外と凄いな。
あんまりコード書かないで簡単なダイアログアプリ作れちゃったよ
2012/03/21(水) 03:06:44.48
VirtualPCとかVMwareとかでアセンブルでオリジナルOSとか作れちゃったりする?
2012/03/21(水) 17:18:52.57
OSならC++でやった方が楽だろう
2012/03/22(木) 15:41:44.49
この程度のことを自力解決できない様では
何使っても結果は同じだろう
50デフォルトの名無しさん
垢版 |
2012/03/26(月) 02:30:25.17
gasで最近.intel_syntax使い始めたんだけど、
いままで

movw $Label, %SI

って書いてたのを

mov SI, Label

にすると即値代入じゃなくなってしまう。
どうすればいいんだろう。
2012/03/26(月) 02:34:43.91
intel_syntaxやめればおk
2012/03/26(月) 02:37:12.06
masm系だとoffset Labelだけど
gasだとintel_syntaxでも$Labelじゃなかったっけ?
自信ないけど。
2012/03/26(月) 02:38:10.54
そうだ
movじゃなくてleaを使えば良いかも。
本質的な解決じゃないけど。
2012/03/26(月) 02:45:03.10
>>50
gasなんて所詮はコンパイラの出力をアセンブルする程度のツールなんだから、縁を切るチャンスと思うほうが吉。
2012/04/14(土) 10:08:42.94
初歩的な質問ですまないけど一つ教えて。
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
2012/04/14(土) 11:20:37.16
単にそういう名前の関数なだけです
2012/04/14(土) 22:23:48.97
呼び出し規約が __stdcall(WINAPI) の場合の、引数の合計サイズですよ。
5855
垢版 |
2012/04/15(日) 03:55:29.17
>>57
thx.
そういう情報ってどこか集まっているサイトか資料(本とか)あるんですか?
ここで質問する前に結構探したつもりなんですが…。
2012/04/15(日) 16:20:37.25
>>58
検索するとしたら "アセンブラ 呼び出し規約" かなあ。
例えば↓とか。
ttp://ray.sakura.ne.jp/asm/9.html
60デフォルトの名無しさん
垢版 |
2012/06/21(木) 21:51:25.92
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
2012/06/21(木) 22:13:23.04
>>60
動作環境ぐらい書いとけ(つーかその辺りから分かってないだろ?)
62デフォルトの名無しさん
垢版 |
2012/06/21(木) 22:50:24.78
>>61
vmwareです。
正直あまりわかってないけど、昔は同じようなプログラムを作った。
6360
垢版 |
2012/06/21(木) 22:53:34.34
概ねこのサイトのコピペなんですが、どれもちゃんと動かないです。
何も表示されなかったり、文字化けしたり…
http://news.mynavi.jp/column/helloworld/021/index.html
2012/06/21(木) 23:21:42.01
QEMUは「qemu -fda as_bios3.com」で起動します。
6560
垢版 |
2012/06/21(木) 23:33:32.01
知ってたらでいいんで、文字列の目の前でcallする以外のスマートな方法ありますか?
FreeBSDのブートプログラム見たらそんなのないけど、アセンブラの知識不足でよくわかりません。
2012/06/21(木) 23:38:44.15
>アセンブラの知識不足
パソコンのBIOSについての知識不足?
6760
垢版 |
2012/06/21(木) 23:40:09.64
それも不足してると思います。
2012/06/21(木) 23:43:24.94
63に書いてあることはやったの、DOS窓のほう?
6960
垢版 |
2012/06/21(木) 23:46:57.54
一番下以外はvmwareで試しました。(おかしな表示になりました)。
Windowsじゃなくて、LinuxなんでDOS窓では動かしてません。
一番下のは明日やります。

アドバイスくれた人ありがとう。
釈然としませんが、とりあえずcallを使うと上手く行くらしいことだけわかりました。
2012/06/21(木) 23:57:39.28
linuxならdosemu上でやってみたら
7160
垢版 |
2012/06/22(金) 00:10:17.98
dosemuインストールしましたが、使い方を調べてみます。
7260
垢版 |
2012/06/22(金) 01:07:07.83
http://d.hatena.ne.jp/pakepion/20080602/1212412508
この変見てるとcall使ってないんですが、nasmとgasの違いなのでしょうかね?
2012/06/22(金) 01:14:32.98
int 0x10
がBIOSコール
7460
垢版 |
2012/06/22(金) 01:16:06.81
>>73
それはわかったのですが、なぜか文字化けor表示されないのです。
>>63のサイトでは、callを使えとあるんですが、いまいち理由がわからず困っています。
7560
垢版 |
2012/06/22(金) 01:24:53.38
コンパイルオプションの問題でした。
スレを汚してすみません。
2012/06/22(金) 03:35:26.45
callに呼応しているのはpop %bp。
IA32ではipを直接movしたりip相対でアドレシングすることができないから
その代わり。
7760
垢版 |
2012/06/25(月) 00:29:00.44
>>76
遅くなりましたがありがとうございます。

割り込みに関するIDTRを調べているのですが、1組6byteのテーブルの内容がよくわかりません。
持っている本には、
1byte:ループカウンタ
1byte:P:DPL:タイプ
2byte:制御ワード
2byte:ハンドラへのジャンプテーブル
とあるのですが、ここでループカウンタと制御ワードの意味がわかる方がいれば教えてください。
2012/06/25(月) 01:49:39.23
IDTRの知識を必要とするレベルには、とても見えないのだけれど。


万が一本当にその知識が必要なのであれば
http://www.intel.com/jp/download/index.htm#ia32 の中の
下巻: システム・プログラミング・ガイド
http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol3_i.pdf
でも読むといいかもね。
2012/06/25(月) 09:00:36.87
根本的におかしすぎてどうしようもないレベル
2012/06/27(水) 01:56:38.88
BIOSでHelloWorldを表示ってどういう意味だ?
81デフォルトの名無しさん
垢版 |
2012/06/27(水) 23:21:56.66
NASMで「mov byte [es:edi], al」をgasで書き換えるとどうなるでしょうか?
2012/06/27(水) 23:32:33.46
>[es:edi]
?
2012/06/27(水) 23:44:32.19
mov %es:(%di),%al
2012/06/28(木) 00:10:36.43
>>83
ありがとう。
2012/06/28(木) 18:48:03.33
こういうのってバイナリで書いてnmの逆汗オプションで調べられないかな
2012/06/28(木) 18:53:10.88
今時バイナリを直で作るほうが大変でしょ
2012/06/28(木) 22:54:47.43
int main(void)
{
 __asm__("nop\n\tnop\n\tnop\n\tnop\n\tnop");
}
てのをコンパイルして、nopの所を適当なコードに書き換えてしまえばいいんでないかい
2012/06/28(木) 23:00:12.45
インライン書くのなら、中身に直書きしたほうが
2012/09/26(水) 19:30:11.06
nasm hoge.asm -o hoge.img
で良いじゃん。中身が単一の命令なら、それだけ吐き出されるだろ?
90デフォルトの名無しさん
垢版 |
2012/10/08(月) 02:03:11.10
おすすめのアセンブラをおせーて
2012/10/08(月) 02:08:26.63
どんなアセンブラがお望みだい
x86系かい
armかい
役にたってもたたなくても、ともに300ルピーだよ
いっひっひ
2012/10/08(月) 02:52:39.98
>>90
MicrosoftのMACRO-80はインテルニモニックにもザイログニモニックにも対応してるので超オススメ!
マクロも強力だし、最新版は6502にも対応してるヨ!
2012/10/08(月) 03:55:52.59
★修学旅行、韓国から国内に変更…宮崎・日南高

 日本と韓国の関係悪化を受けて、宮崎県立日南高は2年生27人が12月に予定していた韓国への
修学旅行を国内に変更した。

 日南高によると、同校の修学旅行は韓国と国内の二つから選べることになっており、今年は2年生
170人のうち、143人が東京や群馬などの国内を選択。27人が同校の姉妹校・冠陽高があるソウル
などへの旅行を希望していた。

 竹島問題などを巡って、日韓関係が悪化していることから、韓国への修学旅行について慎重に検討した
結果、「韓国の情勢が不透明で、生徒の安全などを考慮した」として、行き先を国内に一本化したという。

 県内の別の高校も来年3月に計画している韓国への修学旅行について、変更を検討しているという。

http://www.yomiuri.co.jp/kyoiku/news/20121006-OYT8T00695.htm
2012/10/08(月) 06:37:40.09
韓国より台湾へ行けば良いのに
2012/10/08(月) 09:58:10.52
尖閣問題で台湾だっていつ敵になるかわからんのに平和ボケもいいところだな
2012/10/08(月) 10:27:00.15
工作員ですね
わかります
2012/10/08(月) 15:19:54.96
ν速に帰れ
98デフォルトの名無しさん
垢版 |
2012/10/08(月) 15:23:18.91
>>92
MASM はどう?
2012/10/08(月) 15:25:30.06
nasmのがいいよ
2012/10/09(火) 02:15:29.52
gasは?
2012/10/09(火) 04:41:11.49
no hit
2012/10/16(火) 22:14:24.79
gasもnasmも大して変わらんよ
アセンブラ独自の部分は
2012/11/05(月) 01:27:09.80
MOVNTDQなどでIA-32アーキテクチャ解説書に書かれている「非テンポラルなヒントを使用して、
メモリへの書き込み時にデータがキャッシュしないように防ぎ…」の「非テンポラルなヒント」とは何を指しているんでしょうか?

何かトンチンカンな思い違いで、基本的な事が分からなくなってる気もするのですが…。
2012/11/05(月) 08:18:54.46
move対象のデータがnon-temporalである(つまり、次々に別のデータを
処理していくストリーミング型である。だからキャッシュに入れても
意味ないのでやめてね)というヒント、じゃないのかな?
2012/11/05(月) 08:31:00.31
ところでキャッシュ汚染て表現止めてほしくね?
2012/11/05(月) 11:21:53.16
なんで
107デフォルトの名無しさん
垢版 |
2012/11/06(火) 17:15:20.34
PGM STRT
LD GR5,DD
LAD GR1,3
LD GR6,DD,GR1
ADDA GR5,GR6
ST GR5,EE
RET
DD DC 5,6,7,8
EE DS 1
END

レジスタGR5の値(10進数)
レジスタGR1の値(10進数)
レジスタGR6の値(10進数
レジスタGR5の値(10進数)

を教えてください。
2012/11/06(火) 17:25:11.69
宿題はまず自分で考えれ
2012/11/06(火) 22:30:04.17
順番に読めよ・・・
単純にデータを読んで足して入れてるだけだ。まず自分の考えを書いてみな

それで間違ってるようなら、どこが、どのようにを教える気にもなる
110デフォルトの名無しさん
垢版 |
2012/11/08(木) 03:29:29.25
>>107
caslか。。。
LD命令とLAD命令の違い、指標レジスタの使い方とか大丈夫なのかな。
テキストある?
2012/11/08(木) 04:37:42.31
レジスタGR5の値(10進数) 5
レジスタGR1の値(10進数) 3
レジスタGR6の値(10進数) 8
レジスタGR5の値(10進数) 13 じゃね?
2012/11/08(木) 11:13:17.35
なんで

>レジスタGR5の値(10進数)

が二つあるんだ?
2012/11/08(木) 16:13:26.75
途中で変化するから
2012/11/08(木) 16:35:24.15
だったらせめて行番号かアドレス書いて、どの時点でのGRnの値とかって聞く罠
2012/11/08(木) 16:52:04.65
宿題は自分でやれカス
2012/12/05(水) 01:32:12.27
movzbq (%rax,%rcx,8),%rax
()の中を、どう読んだらいいのか、わからない、教えてちょ
gdbの逆汗ですです
2012/12/05(水) 01:40:30.35
>>116
>movzbq (%rax,%rcx,8),%rax
>()の中を、どう読んだらいいのか、わからない、教えてちょ

「パーセントアールエーエックスカンマパーセントアールシーエックスカンマはち」
2012/12/05(水) 02:56:30.60
バイナリコードの方から解析したよ、読み方ありがとう
2012/12/08(土) 02:05:05.38
>>116
rax + rcx * 8
2012/12/08(土) 02:24:08.56
どもども
謎なx86な環境の謎なjitを動かそうとしてハマりまくってたけど、なんとか動いたよ
2012/12/08(土) 07:59:53.85
gdbの逆アセはgas表記と同じじゃないのかい?
2012/12/08(土) 13:13:58.02
gas記法なんて大嫌いだー
2012/12/08(土) 13:39:08.43
gas記法がすきー。
2012/12/08(土) 14:09:20.53
>>116さんので気になって探してみたけど、gdbの使い方はたくさん出てくるのに
逆アセンブラ出力の記法の説明は特に見当たらなかった。

なので、デフォルトの設定でgasと同じかなと思ったんだけど。。。
2012/12/08(土) 14:29:39.98
x86の16bit汗はよくやってったんだけど
32bit以降は久しぶりで、まさか、汗の解釈が出来なくてハマったという
オチでした(中で何やってるかわからず、当てずっぽうだから余計)
C系の逆汗はたまに覗くぐらいだったからね
セグホしまくりのコケまくりでなかなか先に進めなかった
ここの解説に助けられました
ttp://www.mztn.org/lxasm64/amd05.html
2013/01/05(土) 18:11:23.41
どなたか知者にお願いします、C言語系列(派生言語、類似言語)以外で

インラインアセンブラを表記できる高級言語には何があるか教えてくれませんか?
2013/01/05(土) 18:15:03.53
色々あるよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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