アセンブラ… Part 12
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/08/14(火) 17:18:08アセンブラ全般に関するスレッドです。
【前スレ】
アセンブラ… ( ゚д゚)ウッウー
http://pc11.2ch.net/test/read.cgi/tech/1174825173/
0002デフォルトの名無しさん
2007/08/14(火) 17:18:50【過去ログ】
アセンブラ… ( ゚д゚)ウッウー (Part11)
http://pc11.2ch.net/test/read.cgi/tech/1174825173/
アセンブラ… (゜□゜) ↑アッー!↓ (Part10)
http://pc11.2ch.net/test/read.cgi/tech/1148402614/
アセンブラ… (0w0)ウェーイ (Part9)
http://pc8.2ch.net/test/read.cgi/tech/1115188369/
アセンブラ… (´・∀・`)ヘー (Part8)
http://pc8.2ch.net/test/read.cgi/tech/1101390110/
アセンブラ… (°Д°)ハァ? (Part7)
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
アセンブラ… (;´Д`) ハァハァ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1087897801/
アセンブラ… (*´д`*)アハァ… (Part5)
http://pc5.2ch.net/test/read.cgi/tech/1076157613/
アセンブラ… (゚д゚)ウマー (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1060928704/
アセンブラヽ(`Д´)ノモルァ (Part3)
http://pc2.2ch.net/tech/kako/1040/10402/1040297337.html
アセンブラヽ(`Д´)ノモルァ (Part2)
http://pc3.2ch.net/tech/kako/1016/10169/1016991911.html
アセンブラ… (・∀・)イイ! (Part1)
http://pc.2ch.net/tech/kako/1002/10022/1002267809.html
0003デフォルトの名無しさん
2007/08/15(水) 19:09:110004デフォルトの名無しさん
2007/08/15(水) 19:10:110005デフォルトの名無しさん
2007/08/15(水) 19:12:430006デフォルトの名無しさん
2007/08/15(水) 19:17:250007デフォルトの名無しさん
2007/08/16(木) 15:34:250008デフォルトの名無しさん
2007/08/16(木) 15:37:470009デフォルトの名無しさん
2007/08/16(木) 15:44:250010デフォルトの名無しさん
2007/08/16(木) 15:48:510011デフォルトの名無しさん
2007/08/16(木) 16:00:400012デフォルトの名無しさん
2007/08/16(木) 22:17:340013デフォルトの名無しさん
2007/08/16(木) 22:24:47いいか?
0014デフォルトの名無しさん
2007/08/16(木) 22:41:17ダンゴさんになんてことを!
0015デフォルトの名無しさん
2007/08/16(木) 22:45:110016デフォルトの名無しさん
2007/08/16(木) 22:50:17仕送りを20万円くれるパパに謝りなさいよ。
0017デフォルトの名無しさん
2007/08/16(木) 23:33:34親が経営者であるところをちゃんと示してもらわないと。
0018デフォルトの名無しさん
2007/08/22(水) 21:25:32xchg edx, [eax]
これ
mov ecx, [eax]
mov [eax], edx
mov edx, ecx
どっちが早い
0019デフォルトの名無しさん
2007/08/23(木) 00:37:41前者の方が早い。
速いかどうかはしらね。
0020デフォルトの名無しさん
2007/08/23(木) 08:56:520021デフォルトの名無しさん
2007/08/23(木) 14:46:28後者だと命令が伸びてフェッチ回数が増える可能性があって、
それが効いてくる可能性はあるかもしれん。
0022デフォルトの名無しさん
2007/08/23(木) 22:12:340023デフォルトの名無しさん
2007/08/26(日) 22:43:25下のは一体何をやってるんだ?
0024デフォルトの名無しさん
2007/08/26(日) 23:14:20edx <-> *eax
下が
ecx <- *eax
*eax <- edx
edx <- ecx
でどちらもedxの内容とeaxの指すメモリの内容を交換してる。
下は命令が増えているのとecxを余計に消費している。
上は命令の実行中に他の要因でeaxの先が変化しない事を保証しているのでロックがかかる。
0025デフォルトの名無しさん
2007/08/28(火) 02:59:41アセンブラならまず何を書けばいいの?
0026デフォルトの名無しさん
2007/08/28(火) 03:31:420027デフォルトの名無しさん
2007/08/28(火) 08:40:58mov dx, msg
int 21h
mov ax, 4C00h
int 21h
msg db 'Hello, world!$'
0028デフォルトの名無しさん
2007/08/28(火) 19:40:20002925
2007/08/28(火) 20:00:25ありがと
んで、コンパイルなんだけどインストールされてるアセンブラ?って呼べばいいのかな、調べたら
yasmとnasmってのがあった。OSはLinux使ってますがLinux歴2ヶ月なんでへたれなんです。
アセンブラのコンパイルはどうやるんでしょうか?
Cの初心者向けサイトは多かったけどアセンブラは少なくて。
よろしくです。
0030デフォルトの名無しさん
2007/08/28(火) 20:17:26Linuxなら>>27はだめだな… MS-DOS割り込み使ってるし
0031デフォルトの名無しさん
2007/08/28(火) 20:30:04003225
2007/08/28(火) 20:52:06では、>>27のようなコードをLinux向けに自分で書きたいので
>>27で使ってる命令文の意味などを理解したいです。
ここでダメならどこか誘導してくれるかサイトを教えていただけるとありがたいです。
0033デフォルトの名無しさん
2007/08/28(火) 21:10:23DOS時代のソフトを逆汗するといっぱい出てくる
ahレジスタの数字で呼び出す機能を指定するんだが、
09は文字列を標準出力にアウトプットしてくれる。
このとき文字列のアドレスをdxレジスタに入れておく。
で、文字列は $ で終わっている必要がある。(Cのヌル終端みたいなもんだ)
4Cでint21するとプログラムを終了する
でも俺はint20が好きだ大好きだお前もint20を使え
0034デフォルトの名無しさん
2007/08/28(火) 22:05:360035デフォルトの名無しさん
2007/08/28(火) 22:26:36俺はCOM限定だけど ret だな。
0036デフォルトの名無しさん
2007/08/28(火) 23:34:350037デフォルトの名無しさん
2007/08/29(水) 01:26:53003825
2007/08/29(水) 02:52:06解説ありがとうございます
パッケージ管理で手間取ってしまいまして返事が遅くなりました。
>>27氏と>>33氏の書き込みを参考に理解していこうと思います。
もういちど勉強になりそうな本やサイトを探して>>27を書き換えれるよう取り組んでみます。
では、今日は遅いのでこれにて失礼します。
スレの皆さんありがとうございました。またよろしくです。
0039デフォルトの名無しさん
2007/08/29(水) 06:54:40http://www.google.co.jp/search?q=linux+%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%B3%E3%83%BC%E3%83%AB+int80h
0040デフォルトの名無しさん
2007/09/01(土) 00:13:15に似てるけど
>>143↓は何をするものですか?
c:\>debug
-a 100
2732:0100 mov dx,110
2732:0103 mov ah,9
2732:0105 int 21
2732:0107 mov ax,4c00
2732:010A int 21
2732:010C nop
2732:010D
-e 110
2732:0110 46.32 01.63 E8.68 08.21 D9.24
-r ip
IP 0100
:100
-g
0041デフォルトの名無しさん
2007/09/01(土) 00:22:18debug.exeでCOM形式の実行ファイルを作ってるな。
ほんと懐かしい。
0042デフォルトの名無しさん
2007/09/01(土) 00:43:5046.32 01.63 E8.68 08.21 D9.24
は文字ですか?
2732:0100 mov dx,110
2732:0103 mov ah,9
だから、110の内容は文字みたいなのですが、nopが有るのが分かりません。
-r ip
IP 0100
:100
-g
は -g 100とすればいいのにわざわざipの値を確認してgの引数を省略しただけですね。
0043デフォルトの名無しさん
2007/09/01(土) 00:48:17あとこの例だと-eで十六進データを入力しているけど
俺なら文字列を入れるのにはDB擬似命令使うなあ。
0044デフォルトの名無しさん
2007/09/01(土) 00:58:200045デフォルトの名無しさん
2007/09/01(土) 01:01:53ドットは入力の催促で、
古い値.
って表示されるから、数値を入れて、スペースを入れると次のアドレスに移動する。
0046デフォルトの名無しさん
2007/09/01(土) 01:08:49-e 100 46 32 01 63 e8 68 08 21 d9 24
-d 100 209
1034:0100 46 32 01 63 E8 68 08 21-D9 24 F2.c.h.!.$
↑21-D9のハイフンは何でしょうか?熊さんのバグ?
0047デフォルトの名無しさん
2007/09/01(土) 01:17:28LD DE, MSG
CALL 5
RET
MSG: DB 'Hello, world!', 0DH, 0AH, '$'
0048デフォルトの名無しさん
2007/09/01(土) 01:20:280049デフォルトの名無しさん
2007/09/01(土) 01:26:578バイト目の区切り。
0050デフォルトの名無しさん
2007/09/01(土) 01:30:20あっあー!そうだったんですね、ありがとうございます。
$が文字終端ですね。2chの前のFという文字とnopが未解決ですが満足しました。
0051デフォルトの名無しさん
2007/09/01(土) 01:33:24つ HIT-88
0052デフォルトの名無しさん
2007/09/01(土) 01:39:19Fは、入力前のごみデータだろ。って、>45に書かれているじゃん。
nopは作者の癖かなんかじゃないか? コード終端であることを示すために入れたり、
コード領域はnopで埋め尽くしておいたり、色々流儀があったからね。
0053デフォルトの名無しさん
2007/09/01(土) 01:56:24そんな癖があるんですか。それは知りませんでした。
>45が分かりませんでした。今もまだ分かっていません。
0054デフォルトの名無しさん
2007/09/01(土) 02:02:09コマンドラインで「debug」と入力して「-」が表示されたら「e 110」と入力すればわかる。
0055デフォルトの名無しさん
2007/09/01(土) 02:05:35--(1)コマンドプロンプト
-_
--(2)コマンド(e 110)入力
-e 110_
--(3)改行入力→データプロンプト
-e 110
2732:0110 46._
--(4)データ(32)入力→次のデータプロンプト
-e 110
2732:0110 46.32 01._
--(5)以下同様に
-e 110
2732:0110 46.32 01.63 E8._
--
-e 110
2732:0110 46.32 01.63 E8.68 08._
--
-e 110
2732:0110 46.32 01.63 E8.68 08.21 D9._
--($)データ入力完で次のコマンドプロンプトに
-e 110
2732:0110 46.32 01.63 E8.68 08.21 D9.24
-_
--
これで雰囲気をつかんでくれ。
0056デフォルトの名無しさん
2007/09/01(土) 02:29:37やったー!ありがとうございます。古い値.の意味が分かりました。
0057デフォルトの名無しさん
2007/09/01(土) 02:40:52こんな旧時代の遺物を教材に使うのってどうよw
0058デフォルトの名無しさん
2007/09/01(土) 03:26:450059デフォルトの名無しさん
2007/09/01(土) 03:30:090060デフォルトの名無しさん
2007/09/01(土) 03:42:39コミュニケーションのために実際の発音を尋ねるのならまだ分かるが。
0061デフォルトの名無しさん
2007/09/01(土) 12:08:190062デフォルトの名無しさん
2007/09/01(土) 12:34:420063デフォルトの名無しさん
2007/09/01(土) 16:22:15と言う本を買ったのですが内容が16ビットプログラミングでの.comファイル
作製が主なのです。
それで、VS2005のMASMで16ビットリンカを適用さしてコマンドラインから
comファイルを作る方法は解ったのですが、いまいち本の内容を理解しきれてない
と思いデバッガでステップインしていってどう動いているのかを知りたいのですが
VSでどういう風に設定したらasmファイルのみでデバッグ出来るのかが
わからないです。
もし出来る方法があるなら、教えていただきたいです。
VS使うよりも良い開発環境があるなら、そちらも是非教えて頂きたいです。
なにとぞよろしくお願いします。
0064デフォルトの名無しさん
2007/09/01(土) 17:50:42つ Emu8086
http://www.emu8086.com/
0065デフォルトの名無しさん
2007/09/01(土) 18:53:060066デフォルトの名無しさん
2007/09/01(土) 19:01:28C> debug hoge.com
0067デフォルトの名無しさん
2007/09/02(日) 10:43:38「高級言語プログラマのための たしなみアセンブラ」
ぐらいが妥当だろ
0068デフォルトの名無しさん
2007/09/02(日) 11:13:38林晴比古 「高級言語プログラマのためのアセンブラ入門」
ttp://www.sbcr.jp/books/products/detail.asp?sku=4797332816
0069デフォルトの名無しさん
2007/09/02(日) 18:04:170070デフォルトの名無しさん
2007/09/03(月) 00:34:130071デフォルトの名無しさん
2007/09/03(月) 00:39:34MASM えむあすむ
NASM えぬあすむ
TASM ていあすむ
0072デフォルトの名無しさん
2007/09/03(月) 00:58:230073デフォルトの名無しさん
2007/09/03(月) 10:55:560074デフォルトの名無しさん
2007/09/05(水) 00:26:520075デフォルトの名無しさん
2007/09/05(水) 22:11:270076デフォルトの名無しさん
2007/09/05(水) 23:36:09もう使わないか
0077デフォルトの名無しさん
2007/09/08(土) 10:15:05PEはCOFFみたいなものだから
多少自分で前処理する必要があるかもしれないけど
ツールはある
しかし変換しても使えないと思うが
0078デフォルトの名無しさん
2007/09/09(日) 15:59:220079デフォルトの名無しさん
2007/09/12(水) 22:59:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4919.txt
上記のソースで
BUFFER db 128 dup(?)
の部分で128byte初期値無しで宣言したBUFFERに間接的に
値を入れていくのはわかるんですが
invoke MessageBoxA, 0, offset BUFFER, offset TITLENAME, 0
の部分でBUFFERの末尾に0が入ってないと思うんですが
なぜ問題なくMessageBoxAが実行されるか解りません。
すいませんが、どなたか教えていただけないでしょうか。
お願いします。
0080デフォルトの名無しさん
2007/09/12(水) 23:45:57masmがBUFFERの全領域を0で初期化しているようだね。
0081デフォルトの名無しさん
2007/09/13(木) 09:12:23OSがdataセクションを初期化してる。
0082デフォルトの名無しさん
2007/09/13(木) 13:56:420083デフォルトの名無しさん
2007/09/13(木) 14:08:48OSが初期化するわけではない
ロードはするけど
0084デフォルトの名無しさん
2007/09/13(木) 14:23:440085デフォルトの名無しさん
2007/09/13(木) 23:25:08>>81
>>81
0086デフォルトの名無しさん
2007/09/14(金) 13:19:500087デフォルトの名無しさん
2007/09/14(金) 18:16:400088デフォルトの名無しさん
2007/09/14(金) 18:20:510089デフォルトの名無しさん
2007/09/14(金) 18:41:40仕様上、
誰かが確実に初期化すると定められたものがあっても、
そういうものに依存するのが嫌なので
自分で必ず初期化するのである。
0090デフォルトの名無しさん
2007/09/14(金) 18:45:020091デフォルトの名無しさん
2007/09/14(金) 18:47:46問題
あるかね
0092デフォルトの名無しさん
2007/09/14(金) 18:57:49「この人は佐藤ですからヒップアタックしてください」と
人からアイデンティファイされたものはダメである。
俺が、この目と足でチェックしてはじめて、
「ぅお前は!佐藤だー!!」(ででででーでででででででで)と、
ヒップアタックする気になるのだ。
0093デフォルトの名無しさん
2007/09/14(金) 20:57:57if(i) i = 0;
これね
0094デフォルトの名無しさん
2007/09/14(金) 21:05:09ちがう
だろう
0095デフォルトの名無しさん
2007/09/14(金) 22:39:18すごい
初期化
0096デフォルトの名無しさん
2007/09/15(土) 02:22:320097デフォルトの名無しさん
2007/09/15(土) 04:00:240098デフォルトの名無しさん
2007/09/15(土) 13:28:190099デフォルトの名無しさん
2007/09/15(土) 17:11:230100デフォルトの名無しさん
2007/09/18(火) 15:25:320101デフォルトの名無しさん
2007/09/19(水) 01:13:41君はわからんのかね
■ このスレッドは過去ログ倉庫に格納されています