前スレ
http://pc11.2ch.net/test/read.cgi/tech/1187079488/
探検
アセンブラ 13
■ このスレッドは過去ログ倉庫に格納されています
2011/08/28(日) 15:24:40.59
2011/08/28(日) 15:27:22.39
> アセンブラを勉強するのにいい、unix系の本がありますか?
「プログラミングの力を生み出す本」がわりと良かったのだが在庫切れ増刷未定のようだな。
「プログラミングの力を生み出す本」がわりと良かったのだが在庫切れ増刷未定のようだな。
2011/08/28(日) 17:58:47.52
カーネルのソースだろ
4uy
2011/08/29(月) 06:06:41.24 >>3
こういう奴って
どのバージョンのカーネルのどのファイルのアセンブラソースさしてんだ
他の奴は答えなくていいから ちょっとお前答えてみろよ
で、そのソースファイルを読むとどういうアセンブラの知識がみに付くのか、言ってごらん
知ったかぶりでカーネルカーネルいってるなら 責任とって死ねよお前
こういう奴って
どのバージョンのカーネルのどのファイルのアセンブラソースさしてんだ
他の奴は答えなくていいから ちょっとお前答えてみろよ
で、そのソースファイルを読むとどういうアセンブラの知識がみに付くのか、言ってごらん
知ったかぶりでカーネルカーネルいってるなら 責任とって死ねよお前
2011/08/29(月) 08:14:26.79
おまえも2ちゃんねる荒らしの責任とって死ねよ
6デフォルトの名無しさん
2011/09/03(土) 07:38:26.09 >>4
3じゃないがLinux 0.01のboot.s head.sなんかはよんでおいたほうがいいな。
16bit real modeでのBIOS interrupt callの使い方から、32bit保護モードへの以降
gdtr idtr等のディスクリプターテーブル、ページング機構の準備とか。
アセンブリの知識もあるけどx86アーキテクチャの知識も身につく
3じゃないがLinux 0.01のboot.s head.sなんかはよんでおいたほうがいいな。
16bit real modeでのBIOS interrupt callの使い方から、32bit保護モードへの以降
gdtr idtr等のディスクリプターテーブル、ページング機構の準備とか。
アセンブリの知識もあるけどx86アーキテクチャの知識も身につく
2011/09/03(土) 08:41:50.59
うんこぶりぶりあせんぶり
8デフォルトの名無しさん
2011/09/13(火) 08:07:27.52 ザイログ形式以外身につかない
2011/09/14(水) 14:13:17.97
Z80をIntelニーモニックで解説している本で勉強すればいいんじゃね?
(俺はZilogで覚えちゃったからMOVとかわからんちん)
それ以上の奴をいきなり最初にやるのは敷居が高い気がする
(俺はZilogで覚えちゃったからMOVとかわからんちん)
それ以上の奴をいきなり最初にやるのは敷居が高い気がする
10デフォルトの名無しさん
2011/09/14(水) 16:15:16.64 マシン語レベルで同じなんだから
あとはコンパイラがザイログ形式を受け付けるか受け付けないかの違いでしかない
シンプルで使いやすいザイログ形式がこれだけ干されてるのが不思議だ
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一つで済むだろ
あとはコンパイラがザイログ形式を受け付けるか受け付けないかの違いでしかない
シンプルで使いやすいザイログ形式がこれだけ干されてるのが不思議だ
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一つで済むだろ
2011/09/14(水) 17:46:04.25
俺はアセンブラ程度は自分で作ったけど、全部「A=B」のような代入形式にしたな。
2011/09/14(水) 17:48:15.57
そういえば昔、SMCなんとかという8bitパソコンがそんな感じだったな
2011/09/14(水) 18:19:48.54
Zilogのはアセンブラがめんどくなるのでメモリ厳しい環境にやさしくない
2011/10/07(金) 17:08:46.15
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
オペコード表には載ってないけどこんな命令あったのか
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
オペコード表には載ってないけどこんな命令あったのか
2011/10/07(金) 19:22:05.03
AMDV?
2011/10/07(金) 20:00:51.00
2011/10/10(月) 12:39:42.35
longモードで
40 01 00 rex add %eax,(%rax)
01 00 add %eax,(%rax)
この二つは実質的にどういう違いがあるんでしょうか?
40 01 00 rex add %eax,(%rax)
01 00 add %eax,(%rax)
この二つは実質的にどういう違いがあるんでしょうか?
2011/10/10(月) 13:32:41.88
x86で、アセンブラのソースとしては区別がつかない、ことなったバイナリ機械語列が
あることについての疑問?
特に差はないよ。昔からある。
あることについての疑問?
特に差はないよ。昔からある。
2011/10/10(月) 13:52:38.18
REXプリフィクスのWビットを作った目的は
新たに増えた8本のレジスタの下位32/16ビットをアクセスするためということでいいんでしょうか?
オペランドサイズを32bitにするだけならREXプリフィックスなしの命令を使えば済むはずですよね
66とREX.Wの二つのフラグがあって分かりにくいです
新たに増えた8本のレジスタの下位32/16ビットをアクセスするためということでいいんでしょうか?
オペランドサイズを32bitにするだけならREXプリフィックスなしの命令を使えば済むはずですよね
66とREX.Wの二つのフラグがあって分かりにくいです
2011/10/22(土) 07:51:13.15
C言語に挫折したので、アセンブラから修行しようと思います。
シンプルで学びやすく資料が多いものとなればZ80になりますでしょうか?
定番と呼べる解説書などあったら紹介してください。
シンプルで学びやすく資料が多いものとなればZ80になりますでしょうか?
定番と呼べる解説書などあったら紹介してください。
2011/10/22(土) 10:45:32.09
CASL2(情報処理試験用の架空アセンブラ)という手もある
素人向けの資料に関してはかなり多い、試験対策の参考書が大量に出回ってるからな
素人向けの資料に関してはかなり多い、試験対策の参考書が大量に出回ってるからな
2011/10/22(土) 12:06:05.99
CASLはやめとけ。
今時バイトアドレッシングじゃないアーキテクチャで入門の勉強しても、
後でわかりにくくなるだけだ。
今時バイトアドレッシングじゃないアーキテクチャで入門の勉強しても、
後でわかりにくくなるだけだ。
2011/10/22(土) 12:57:19.77
この人のやりたいのはC言語じゃね?
C言語の予備知識つける程度にならあれで充分な気もするが
C言語の予備知識つける程度にならあれで充分な気もするが
2011/10/24(月) 21:59:25.14
>>20
16bitマイコンが良いんじゃない?
秋月その他でキットが買えるルネサスのH8とか、TIのMSP430とか。
どちらも開発ツールは使いやすいとは言えないかもしれんが、
命令セット自体は割とシンプルで癖もなく使いやすい。
16bitマイコンが良いんじゃない?
秋月その他でキットが買えるルネサスのH8とか、TIのMSP430とか。
どちらも開発ツールは使いやすいとは言えないかもしれんが、
命令セット自体は割とシンプルで癖もなく使いやすい。
2011/10/25(火) 00:18:32.65
windowsに付いてくるdebugで十分だよ
2011/10/25(火) 11:44:17.71
いまさら8086の勉強しても…
確実にセグメントで挫折するぞ
確実にセグメントで挫折するぞ
2011/10/25(火) 19:26:24.25
はじめて読む486のx86-64版みたいな本はないのかな。洋書でもいいんだけど。
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
これは?
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とかな
cpusetとかな
2011/12/15(木) 12:52:59.14
2011/12/15(木) 14:47:12.08
読むもの間違ってる。CPUが勝手にプロセスをスイッチするわけないだろ?
関連する命令は載ってるだろうがそれだけでは何も解決しない。
自分でマルチプロセッサ対応のSMPマルチタスキングスケジューラーを作るなら、BSDかlinuxのカーネルのソースでも読めばいい。
OSがあるならAPI呼べ。
関連する命令は載ってるだろうがそれだけでは何も解決しない。
自分でマルチプロセッサ対応のSMPマルチタスキングスケジューラーを作るなら、BSDかlinuxのカーネルのソースでも読めばいい。
OSがあるならAPI呼べ。
2011/12/16(金) 03:46:10.74
x86にどんな命令があるかって
インテルから説明書とか仕様書のコピーとかそんな感じのもの買わないと分からない?
インテルから説明書とか仕様書のコピーとかそんな感じのもの買わないと分からない?
2011/12/16(金) 04:53:53.02
2011/12/16(金) 06:45:33.41
2012/02/25(土) 17:08:40.88
x86のアセンブラでプログラミングをしたいのですが、
アセンブラ用のエディタとかIDEとかって無いのですか?
アセンブラ用のエディタとかIDEとかって無いのですか?
2012/02/25(土) 18:28:46.64
前世紀にはあった
2012/02/25(土) 19:01:04.15
emu8086っての使ってた
15日ぐらいの試用でデバッガは使えなくなるけど自己解決しました
15日ぐらいの試用でデバッガは使えなくなるけど自己解決しました
4037
2012/02/25(土) 21:00:01.362012/02/25(土) 21:22:43.11
42デフォルトの名無しさん
2012/03/17(土) 17:02:20.04 アッセンブリブリ
43デフォルトの名無しさん
2012/03/17(土) 19:35:52.222012/03/17(土) 20:14:03.22
>>37
Visual C++ 2010 Express でいいじゃん。
http://www.microsoft.com/japan/msdn/vstudio/express/
ASM も C/C++ も使えるし、VB や C# に浮気すんのもラクチンだし、マジオススメ。
Visual C++ 2010 Express でいいじゃん。
http://www.microsoft.com/japan/msdn/vstudio/express/
ASM も C/C++ も使えるし、VB や C# に浮気すんのもラクチンだし、マジオススメ。
2012/03/18(日) 13:52:08.72
2012/03/18(日) 14:56:52.43
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
にすると即値代入じゃなくなってしまう。
どうすればいいんだろう。
いままで
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じゃなかったっけ?
自信ないけど。
gasだとintel_syntaxでも$Labelじゃなかったっけ?
自信ないけど。
2012/03/26(月) 02:38:10.54
そうだ
movじゃなくてleaを使えば良いかも。
本質的な解決じゃないけど。
movじゃなくてleaを使えば良いかも。
本質的な解決じゃないけど。
2012/03/26(月) 02:45:03.10
>>50
gasなんて所詮はコンパイラの出力をアセンブルする程度のツールなんだから、縁を切るチャンスと思うほうが吉。
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
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.172012/04/15(日) 16:20:37.25
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
「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.786360
2012/06/21(木) 22:53:34.34 概ねこのサイトのコピペなんですが、どれもちゃんと動かないです。
何も表示されなかったり、文字化けしたり…
http://news.mynavi.jp/column/helloworld/021/index.html
何も表示されなかったり、文字化けしたり…
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のブートプログラム見たらそんなのないけど、アセンブラの知識不足でよくわかりません。
FreeBSDのブートプログラム見たらそんなのないけど、アセンブラの知識不足でよくわかりません。
2012/06/21(木) 23:38:44.15
>アセンブラの知識不足
パソコンのBIOSについての知識不足?
パソコンの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を使うと上手く行くらしいことだけわかりました。
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の違いなのでしょうかね?
この変見てるとcall使ってないんですが、nasmとgasの違いなのでしょうかね?
2012/06/22(金) 01:14:32.98
int 0x10
がBIOSコール
がBIOSコール
7460
2012/06/22(金) 01:16:06.817560
2012/06/22(金) 01:24:53.38 コンパイルオプションの問題でした。
スレを汚してすみません。
スレを汚してすみません。
2012/06/22(金) 03:35:26.45
callに呼応しているのはpop %bp。
IA32ではipを直接movしたりip相対でアドレシングすることができないから
その代わり。
IA32ではipを直接movしたりip相対でアドレシングすることができないから
その代わり。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】 アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 [お断り★]
- アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 ★2 [お断り★]
- 【高市自民】中国軍SNS 高市首相に怖すぎる地獄絵で警告、火の海の靖国神社「自ら墓穴を掘り、戻れない道へ進む」 [夜のけいちゃん★]
- 「二枚舌は許されない」中国外務省 高市総理の発言を批判… [BFU★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★8 [樽悶★]
- 中国国際航空が日本便を減便へ、春節休みも SNSでは投稿相次ぐ [七波羅探題★]
- 【実況】博衣こよりのえちえちお子様ランチ🛸💜🥀🧪🍃★2
- 【実況】博衣こよりのえちえちお子様ランチ🛸💜🥀🧪🍃
- 【悲報】イチゴ高騰で、ショートケーキからイチゴが消える🍰 [966095474]
- 【高市悲報】上念司、6月に輸出再開した途端禁輸になり嘆くナマコ業者を煽る「アンタ今まで何してたんだ?😤」 [359965264]
- 【悲報】高市有事、中国から追加の報復措置が来る模様 [834922174]
- 【男磨き】ハウスルール汁遊び禁止🈲🏡【ジョージメンズコーチ】
