1 名前:デフォルトの名無しさん [2006/05/24(水) 01:43:34 ] アセンブラ全般に関するスレッドです。 【前スレ】 アセンブラ… ヽ(゚∀゚)ノフォーウ! pc8.2ch.net/test/read.cgi/tech/1132761638/ 過去ログは>>2 辺り
482 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 07:27:25 ] *0x8000だと、0x8000番地にある16ビットの値をアドレスとして処理する。 0x8000番地に飛ばすならjmp $0x8000が正解だと思う‥‥
483 名前:482 mailto:sage [2006/09/22(金) 07:52:23 ] >>480 のコードをちょっと修正。文法からGASを使っていると仮定。 バッファのアドレスを指定するときはBXレジスタも設定しないと駄目かと。 セグメント指定しているなら、セグメント間ジャンプで飛ばした方が確実。 MOVW $0x800, %AX MOVW %AX, %ES MOVW $0, %BX ; ES:BX = 0x800:0x0 MOVB $0x00, %CH MOVB $0x02, %CL MOVB $0x00, %DH MOVB $0x00, %DL MOVB $0x02, %AH MOVB $0x01, %AL INT $0x13 LJMP $0x800,$0
484 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 12:32:15 ] >>481-483 サンクス。 >>481 すいません。 OS:FreeBSD6.1 アセンブラ:GCC その他:ld、objcopy エミュレータ:bochs 作っている物:ブートの最初の512byteのプログラム >>482 jmp $0x8000だとコンパイルエラーになります。 www.gnu.org/software/binutils/manual/gas-2.9.1/html_chapter/as_16.html の Absolute (as opposed to PC relative) call and jump operands must be prefixed with `*'. If no `*' is specified, as always chooses PC relative addressing for jump/call labels. を見て絶対アドレスでJMPする場合「*」が必要なのかなと思いました。
485 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:08:06 ] >>482 「*」を付けた際の動作は、御指摘の通りでした。 解決できました。 ありがとうございました。
486 名前:463 ◆RMO61H2xHE mailto:sage [2006/09/22(金) 20:27:49 ] >>479 ご教示、ありがとうございます。とても助かりました。 今度は、こんな問題で引っかかっています。 eHllo, World としたいのですけど Helelo, Worldとなってしまいます! section .data; データセクションの定義 messagedb'Hello, World', 0Ah lengthequ$ -message; 文字の長さ section .text global _start _start: movedx, length; 文字列の長 movecx, [message] ; 以下の3行でmsgとmsg+1の内容を入れ換える xchgecx, [message+1]; mov[message], ecx; movecx, message; 出力する文字の指定 movebx, 1; ファイルハンドル(1=標準出力) moveax, 4; 出力(sys_wrigte) int0x80; システムコール,出力する moveax, 1; sys_exit movebx, 0; 終了ステータスコード int0x80; システムコール,終了する
487 名前:デフォルトの名無しさん [2006/09/22(金) 21:03:09 ] GNU asについて質問です。 lss 20+4(%esp), %esp と、ESPとSSに1命令で値をつめてるコードがあったのですが、 この20+4()ってのはどういう意味なんでしょうか?
488 名前:デフォルトの名無しさん [2006/09/22(金) 21:11:12 ] MMX の質問です pand mm0, mm1 を実行し結果がゼロになっても、ゼロフラグが立たないようです。 ゼロかどうかをチェックするにはどうしたらいいんでしょうか?
489 名前:463 ◆RMO61H2xHE mailto:sage [2006/09/22(金) 21:13:04 ] スペースが無視されたみたいなので、もう一回送ります。 section .data ; データセクションの定義 message db ' Hello, World ', 0Ah length equ $ -message ; 文字の長さ section .text global _start _start: mov edx, length ; 文字列の長 mov ecx, [message] ; 以下の3行でmsgとmsg+1の内容を入れ換える xchg ecx, [message+1] ; mov [message], ecx ; mov ecx, message ; 出力する文字の指定 mov ebx, 1 ; ファイルハンドル(1=標準出力) mov eax, 4 ; 出力(sys_wrigte) int 0x80 ; システムコール,出力する mov eax, 1 ; sys_exit mov ebx, 0 ; 終了ステータスコード int 0x80 ; システムコール,終了する eHllo, World としたいのですけど Helelo, World と表示されます!
490 名前:487 mailto:sage [2006/09/22(金) 22:01:16 ] コンパイルされたものをobjdumpでのぞいたら、 lss 0x18(%esp),%esp こういう風に変換されてました。 よく調べもせずに質問してすみませんでした。
491 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 22:12:08 ] >>489 mov cl, [message+2] xchg cl, [message+3] mov [message+2], cl
492 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 22:56:07 ] なんか 春だな・・・
493 名前:463 ◆RMO61H2xHE mailto:sage [2006/09/22(金) 22:56:18 ] >>491 ありがとうございます。 eHllo, Worldとなりました。アセンブリって意外とレジスタの動きが分かりやすいん ですね。 本や、ネットで検索しながらやってるんですけど、Linuxのnasmで 初心者に分かりやすい解説は、殆んどないんで困ってました。
494 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 23:18:49 ] どっかにnasm本家のマニュアルの日本語訳があったはずだが。 あれで十分よ
495 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 23:19:53 ] ってかmasmはMS公認で無料になったか。 イイジダイダナー
496 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/23(土) 05:38:45 ] >>488 MMX演算はフラグレジスタを更新しない。 いちど汎用レジスタに転送してから比較する必要がある。 0かどうかだけを判定するだけなら、たとえば packssdw mm0, mm0 movd eax mm0 test eax, eax
497 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 18:56:59 ] Z80ですけど DAAってハーフキャリーは0になるの?それとも変化するの?どっち?
498 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 20:05:47 ] 変化する
499 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 21:57:47 ] Hello, Worldを10回表示して改行したいんですけど、 下記のソースを弄ってみましたが、よく分からないので教えて頂けないでしょうか。 section .data msg db 'Hello, World', 0ah len equ $ -msg section .text global _start _start: mov eax, 4 ; 出力 mov ebx, 1 ;(1=標準出力) mov ecx, msg ; mov edx, len ; 文字列出力 int 0x80 ; 出力 doit: dec ecx ; ecxをデクリメントする jecxz endquit ; ecxがゼロならジャンプ jmp doit ; doitへジャンプ endquit: mov eax, 1 ;(sys_exit) mov ebx, 0 ; 終了ステータスコード int 0x80 ; 終了
500 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 22:49:24 ] >>499 それじゃ一回だけ表示された後、しらばく後かすぐに終了するだろ。 int 0x80 ; 出力 doit: dec ecx ; ecxをデクリメントする jecxz endquit ; ecxがゼロならジャンプ jmp doit ; doitへジャンプ このdoit以下何もやっていないと同じだぜ? なぜecxをデクリメントして0になったら終了になるん?何目的だ? たぶんint0x80は文字列表示機能だと仮定するなら、 ediにでも0xaを入れておいて、 dec edi jnz _start ← ゼロじゃなけりゃジャンプっての にすればええ。
501 名前:499 mailto:sage [2006/09/26(火) 23:28:28 ] >>500 > それじゃ一回だけ表示された後、しらばく後かすぐに終了するだろ。 その通りなんです。弄っているうちに わけわからなくなってしまい、 1回だけ表示するプログラムに戻したものを書き込みました。 >499 の投稿は下記のDOSのプログラムをLinux上で jecxz を使って同じような動作を 再現できないか試行錯誤の最中だったんです。 ; DOS プログラム bits 16 org 0x100 mov ah, 9 ; 文字列出力指定 mov dx, msg ;出力する文字列 mov cx, 10 ; cxレジスタの値を10にする doit: int 21h dec cx ; cxを1だけ減らす jcxz endquit ; cxがゼロならendquitへ jmp doit ; doitへジャンプ endquit: mov ah, 4ch mov al,0 int 21h msg db "Hello, World", 0dh, 0ah,"$"
502 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 23:44:57 ] システムコール呼ぶときecxレジスタ使ってるだろ? そんくらい気ずかん?(´・ω・`)
503 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 01:45:08 ] >>501 答えは分かるがあえて書かない。自分で考える事が上達には大事だしな。 先ほど書いたようにdiあるいはsiをcxの代わりにカウンタとし、 dec di jnz また文字列出力する場所 ってな感じにするのが良い。 あとint21hの後のレジスタの値は保障できないと考えた方が一応はいいと思うから、 doitの位置を変えた方が確実だと思う。
504 名前:デフォルトの名無しさん [2006/09/27(水) 09:36:16 ] x86CPUで、32ビットの値を3倍するとき、 x = x * 3; と、 x = (x<<1) + x; はどちらが高速なんですか?
505 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 10:02:43 ] >>504 スループットは上の方がいいが、 レイテンシは下の方がいい。 CPUによるけど。 どちらが速いかは周りの処理にもよる。 でも、x86ならこれが一番速いよ。 lea x,[x*2+x]
506 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 15:00:54 ] ていうか、いまどきのコンパイラは 3倍するのはleaに最適化してくれますよ。
507 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/27(水) 22:23:36 ] Pen4だとこれでも速かったりwww mov edx, eax add eax, eax add eax, edx
508 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 00:52:21 ] >>507 シフトが add の 8 倍遅い変態 CPU を持ち出すのは反則だと思いまつ。
509 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 01:18:15 ] ペン4のALUは糞すぎるなw
510 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/28(木) 01:23:14 ] 依存関係を高いクロックによって解決するという手法は全てが間違いだった訳じゃないけど クロックを重視したデータキャッシュが小さすぎたりパイプラインが長すぎたり 熱すぎたりで、全体としてマイナス要素が大きかったのが敗因ですな。
511 名前:デフォルトの名無しさん [2006/09/30(土) 18:11:57 ] スタックを使って A B と表示させようと思うのですけど、ウマクいきません!? ご教示 お願いできないでしょうか。 section .text global _start _start: movdl, 0x41 ; "A" push dx call putchar pop dx mov dl, 0x42 ; "B" push dx call putchar pop dx mov eax, 1 ; sys_exit mov ebx, 0 ; 終了ステータスコード int 0x80 ; システムコール,終了する putchar: ; スタックの文字を出力する サブルーチン push esp mov ebp, esp sub esp, 0x40 ; ローカルスタックスベース mov ebx, [ebp+4] ; 最初のパラメータ mov dl, bl mov eax, 4 ; sys_write mov ebx, 1 ; ファイルハンドル(1=標準出力) mov ecx, esp ; 書き込むバッファ mov edx, 2 ; 文字出力することを指定 int 0x80 ; システムコール,出力する mov esp, ebp ; sub esp,0x40を取り消す pop esp ret
512 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 18:27:46 ] 32bitモードでdxレジスタなんか使うなよ・・・ あと最初のパラメタは[ebp+4]じゃなくて[ebp+8]だボケ
513 名前:ボケ [2006/09/30(土) 19:15:48 ] >>512 早速のご教示ありがとうございます。 ご指摘のdxをedxとし[ebp+4]を[ebp+8]に直してやってみたのですけど、 結果は変わらず、何も表示されなくて ただ改行されただけでした。 Cの参考ソースはけっこうありますけど、アセンブルってほとんどないですね!
514 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 20:05:55 ] >>513 最後に0x0aも出力してみれ。
515 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 21:58:20 ] >mov ecx, esp ; 書き込むバッファ ここ間違っているのでは 既に40引いてしまっているのに・・・
516 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:04:24 ] lea ecx,[ebp+8]とかじゃね?
517 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:17:03 ] これはひでえ。釣り…なのか…?まあいいや。 putcharの先頭部分は push ebp ; espじゃねーぞ mov ebp, esp の間違い。それに伴ってretの前も pop ebp に修正。 sub esp, 0x40 では 0x40 も引く必要ない。0x4で十分。 「最初のパラメータ」コメントの次の mov dl, bl は何やってんのか意味不明。 ここは mov [ebp-4], ebx に変更。 putcharというからには出力文字数は1文字だろ。mov edx, 1 に修正。
518 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:34:25 ] > Cの参考ソースはけっこうありますけど、アセンブルってほとんどないですね! だったらC言語で書いてみるべし。 /* putchar2.c */ #include <unistd.h> void putchar2(int ch) { write(1,&ch,1); } int main(void) { putchar2('A'); putchar2('B'); } そしてこいつを -S スイッチつけてコンパイルしる。 $ gcc -S putchar2.c コンパイラがどんなコードを吐くか、自分のものと見比べるべし。 最適化オプションも併せて指定するといいかもな。
519 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:37:26 ] gccの最適化は最初は知らないほうがいいんじゃないかw
520 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:40:35 ] どうして?ちょっとだけでいいから教えて・・
521 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:48:43 ] そしてICCとか最近のVC++で最適化コンパイルしてしまって余計混乱すると。
522 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:53:44 ] こんなガリガリのコードじゃたいして最適化できねぇw putchar2はwriteをコールするだけだから関数の存在が消えてしまう可能性はあるが。 >>520 高度な最適化コンパイラは凡人の考えの及ばぬような超変形型ロジックを組むことがあるから。
523 名前:ボケ mailto:sage [2006/09/30(土) 22:59:17 ] >>517 釣できるほどのウデがあればいいんですけど… 貴方の仰る通り、>511の投稿には誤りがたくさんありました。 言われた通りにやったら AB と表示されました! 改行はしないみたいですけど、 改行は組めますので、後は簡単です。 Thanks
524 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 23:37:48 ] >>522 ふ〜ん
525 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 01:50:05 ] >>522 コンパイラ程度の最適化が超変形? じゃあ人が書いたコードは読めねぇなw
526 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 02:10:08 ] いや、人間様がそれ以上にド汚い変形かますことができるのも確かだが、 きょうびのコンパイラが超変形かますのは事実だろ。 何を噛み付いてるんだ。 カルシウム足りないのか。
527 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/01(日) 02:25:38 ] i *= 32; を add eax, eax; add eax, eax; add eax, eax; add eax, eax; add eax, eax; に展開するコンパイラとかな。
528 名前:デフォルトの名無しさん [2006/10/01(日) 02:30:21 ] そんな大した事無いレベルの最適化でグダグダ言うなよ
529 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 02:39:09 ] VC++やICCの定数除算の最適化はなかなかエグかった気がするが
530 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 03:04:16 ] 漏れはVC2005のたらい回し関数でたまげた。
531 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 03:36:33 ] >>527 GCCでは無数にある最適化オプション組み合わせていくら頑張ってもシフトだった。 -O0ですらシフトだったw VC++のリリースコンパイルでもシフトだから、それが最善じゃないのか?
532 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 05:26:38 ] mov eax,dword 051eb851fh imul ecx sar edx,byte 005h mov eax,edx shr eax,byte 01fh add edx,eax; / 100 これとか実行してみるまで何やってるかわからなかった(VC6)。
533 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 05:38:03 ] >>527 いや、それ普通。 VCのそれは、シフトが異常に遅い某CPUに配慮したものと思われ。 多分だけど。
534 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 09:07:13 ] P○n4は*32でもシフトより加算の方が早いのか?w
535 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 09:27:21 ] >>534 ちょっと上くらい読めや>507-509
536 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/01(日) 14:54:18 ] Pen4ではshlのレイテンシは4クロック、addは0.5クロック 依存関係チェインが深い場合は加算を繰り返した方ほうが早い VCじゃなくて、ICCの-QxWとか-QxNとかのPen4専用オプションだったような >>532 除算はクロック数やたらかかるから定数積算とシフトに置き換えるのは常套手段
537 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 17:29:21 ] 常套手段て…そういう裏技があるのなら標準でALUにそのロジックを積んで もらった方がどれだけわかりやすいことか。 あるいは除算命令でこのシーケンスと同じμop生成するとか。 書きたいことはまだあるけどこれ以上はちょっとスレ違いになるので遠慮しよう。
538 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 17:53:12 ] いや、除算を他の演算に置き換えるロジックってすげー大変なんだが。 何で割るかによって全く違うロジックになるから。 そんなもんにトランジスタ突っ込む余裕なんかない
539 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 18:33:31 ] >>532 は>>529 と繋がっていたのか、気づかなかった。 定数除算限定で、しかも最適化のタイミングはコンパイル時じゃないといけない 程度に複雑なアルゴリズムなのか。 随分と頓珍漢なことカキコんじまったな(恥
540 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:19:27 ] テキストエディッタで.asmファイルを作成してコマンドプロンプトでアセンブルしようと思ったのですがうまくいきません。 ml〜コマンドは合ってるはずなのですが。 知恵をください。 XPSP2です
541 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:23:42 ] >>540 それだけの情報で何かわかると思ってんのか。 せめてエラーメッセージくらい貼れよ。
542 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:31:03 ] 'ml' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ってなります。
543 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:32:22 ] >>542 アホか。パス通してないだけでないか。
544 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:46:16 ] 先生できませnorz
545 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 05:03:25 ] アセンブラはちゃんとインストールされてるのか? 質問から察するに、それすら出来ていなさそうな気がする。 WinXPのDOS窓からの操作なら、DOS窓開いたらまずこのコマンドを打ち込む。 > set Path=%Path%;(ml.exeのあるディレクトリのパス) 開くたびにこれを入力するのが面倒くさいならバッチファイルに書くなり GUIから環境変数に登録するなり何なりと。
546 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 20:38:09 ] 先生無事できますた。ありがとん
547 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 10:06:06 ] 割り算が理解できん。 なんであんなことになってんの?
548 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 11:35:36 ] その割り算は>>532 のことか? 1ワードが無限のビット長だとすると、原理的には x / 100 == (x / 100) << 32 >> 32 という当たり前の恒等式を巧みに利用する。 ここでは 2のx乗 を 2^x と表現するので、そのつもりで。 x回の左シフトは、算術的には *(2^x) を意味する。 その性質を利用すると、右辺は => x / 100 * (2^32) >> 32 => x * ((2^32) / 100) >> 32 と変形できる。最適化のとき予め (2^32) / 100 を計算しておく。 この定数をnとおくと、除算の商は (x * n) >> 32 で求めることができる。 つまり定数の除算は乗算とシフトに変換できるというわけ。 実際はビット長が無限大ということはないし符号も考慮しないといけないので これよりも少し複雑な処理になる。
549 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 12:14:56 ] 精度が落ちていいなら inc ecx mov eax, dword 028f5c28h imul ecx でedxに解が得られないかな。
550 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 12:35:00 ] 無符号整数除算ならね。
551 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 20:35:59 ] ん?無符号型ならimulじゃなくてmulじゃね?
552 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 12:57:52 ] このスレが適当かどうかわからないんですが。 VC++の最適化OFFで生成した以下の絶対値を求めるコード cdq xor eax,edx sub eax,edx これに対応するC/C++のコードがわかるかたいませんか?
553 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 13:25:58 ] >>552 インラインアセンブラでも使ってない限りも最適化 Off ではそのコードは 出てこないと思うんだが・・・。 abs() を呼んでれば最適化 On の時そのコードになるよ。
554 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 13:59:52 ] >>553 /Oiオプションでabsが上記の命令に展開されたのを確認しました。 最適化はOFFだと思ってたのですが、一部だけ有効になってるのかもしれません。 (バイナリとPDBファイルしかないので詳細不明) ありがとうございました。
555 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 17:48:43 ] >>554 /Oiって思いっきり最適化オプションの一部だろ。
556 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 18:26:42 ] >>552-555 ワロタw
557 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 09:14:28 ] OiOi
558 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 13:59:22 ] RS-232C?
559 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 15:34:13 ] どっちかっつーと丸井
560 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 16:21:15 ] 丸井って、クレジット詐欺って意味でしょ?
561 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 22:19:52 ] >>560 訴訟の元ハケーン
562 名前:デフォルトの名無しさん [2006/10/12(木) 22:34:02 ] 訴訟あげ!?
563 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 13:55:12 ] 16ビットしか知らんが、みんな何に使ってるの? やっぱインラインかな
564 名前:デフォルトの名無しさん [2006/10/13(金) 15:49:03 ] C言語からアセンブラ語に変換するにはどうすればいいですか?? 分かりやすくお願いします.
565 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 15:54:22 ] コンパイラにアセンブラ語で出力するようにオプションを付ける。
566 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 15:54:28 ] GCCなら-Sとか
567 名前:デフォルトの名無しさん [2006/10/13(金) 15:58:20 ] それはMPLAB IDE上でできますか??
568 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 16:07:08 ] アセンブラ語て…新語捏造するなやorz 本当はアセンブリ言語ってんだ。俗的にアセンブラでも通用するが。
569 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 16:10:51 ] お前タン、実はマルチでつか?そんなことしたら駄目だお(AAry
570 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 17:20:51 ] >>568 JISでは「アセンブラ言語」
571 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 18:50:01 ] まじで?!
572 名前:デフォルトの名無しさん [2006/10/14(土) 16:55:38 ] 今学校の授業中です… キーボードから3個の整数a、b、cを入力してスタックにセットし、これらの整数のうち最大整数をディスプレイに出力せよ。ただし、最大整数をセットするための変数maxもスタック上に作ること。 これが出来ないと帰らせともらえませんが、全くわかりません。どなたか出来る方いましたらよろしくお願いします。
573 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 17:21:41 ] よし!19時ぐらいまで粘れ!! その時間位になれば、わかる人がここに来るぞ、たぶん。
574 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 17:40:28 ] >>572 開発環境、動作環境を書け。 話はそれからだ。
575 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 18:05:18 ] >>572 どのアセンブラで、どのCPUですか
576 名前:デフォルトの名無しさん [2006/10/14(土) 19:18:17 ] 19時を過ぎたのですがそろそろ教えてくれません?どうかお願いします。
577 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 19:23:08 ] >>576 いやだから教えようにも ・・まぁなんだ、頑張れ
578 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 19:35:56 ] >>576 >>574-575
579 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 19:54:20 ] >>576 変数って何桁でもいいの?
580 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 22:00:50 ] しかし、キーのスキャンやら画面表示やらはHWがわからんことにはどうしようもないだろ。 まあわかったところでこんなところに書き込めるようなコード量に収まるとも思えんがw
581 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 22:22:37 ] >>580 無能自慢はいいから
582 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 23:23:22 ] >>580 つ【ファンクションリクエスト】
583 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 23:44:27 ] 週末なのに学校に泊まりかw
584 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:01:57 ] >>582 それがある環境だと誰が言った?
585 名前:デフォルトの名無しさん [2006/10/15(日) 00:17:32 ] なんで教えてもらおうとしてるやつがそんなに偉そうなんだ
586 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:27:14 ] kawaisosu
587 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:43:22 ] 579はまだ帰れない
588 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:55:36 ] >>572 void main(){ }
589 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:57:03 ] >>572 void main(){ int a, b, c, max; scanf("%d", &a); scanf("%d", &b); scanf("%d", &c); if(a < b){ } }
590 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:58:06 ] うわーん、要はC言語で作って、 gcc -S で、アセンブリ出力したら、 勝手にやってくれるよ。 だって、ローカル変数はスタックなんだからさ。
591 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 01:43:47 ] >>590 ローカル変数が必ずスタックに確保されるという保証はない
592 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 01:49:36 ] volatileでおk
593 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 03:34:15 ] スレ違いの話だが、 「C言語のローカル変数がスタック上に生成される」というのは そういう実装になっている処理系が多い、というだけで C言語の規格上、ローカル変数(自動記憶域期間をもつオブジェクト)は 「スタック上に確保されなければならない」とは一言も書いてない。
594 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 11:57:25 ] ほれ、糞団子、gccのソースに言及しつつ>>593 について熱く語れよ。
595 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 12:07:56 ] 「&をつけないとレジスタに置かれる可能性があるが、&をつければ必ずメモリ上に置かれる」というのもただの伝説だね。
596 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 12:34:44 ] そんなことより>>572 は帰宅できたのかどうか
597 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 14:43:46 ] 家がなi(ry
598 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 15:18:30 ] >>594 そんなしょぼいポンコツコンパイラなんざ使わないからしらねー。
599 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 15:20:44 ] >>598 gcc-4.1.1で最適化を-O3なんかにしたら最適化が変態すぎてまともにうごかないんだぜ。
600 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 17:52:03 ] >>598 お前半年くらい前にあーだこーだいってた気がしたが。 ありゃ可変引数リストに関してだったっけ?
601 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 18:04:44 ] >>598 しょぼいポンコツとは失礼な。 某大学の実習で使用されるシステムはH/Wスタックを装備していないから メモリ空間ぜ〜んぶヒープな環境だ。レジスタはアキュムレータ1つだけ。 で、課題でこのシステム向けに最適化されたANSI Cのサブセットコンパイラを つくれというのがあったが、どんなに凝ったコンパイラを作れど、この場合 スタックを「使わない」のではなく「使えない」んだよ。 団子はそんな環境で四苦八苦したことがないだろうが。
602 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 18:07:25 ] おっつ失礼。「汎用」レジスタはアキュムレータ1つだけ。 レジスタは他にもあったよ。PCとか間接メモリアドレッシングで使うやつとか。
603 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 18:18:49 ] >>601 無能自慢はいいから
604 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 18:22:58 ] >>600 んーでもそういう環境わざわざ選ぶ理由無いよね♪ どんなマイナーCPUですか? ちなみにJava仮想マシンなら汎用レジスタ1本のスタックマシンだよね。 それ以前の問題として、マシン語がどんなのかよくわからんわけで。 それこそ情報処理技術者でよく使われるCOMET2/CASL2かもわからんし。 Cでコンパイルしてアセンブリコード吐かせれば出せるって前提自体が おかしいと思うわけで。 演習で使う端末ってx86とかPowerPC(ようはMac)のほうが多いと思うんだけど
605 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 19:39:54 ] >>603 ゴメ。自慢するつもりはなかった。ただこういう環境もあるということを言いたかっただけ。 >>604 あるよ。この流れの上流をよく見てみ。>>572 で今学校の授業中ですとある。 どんな反則/時代遅れシステムを使わされるかもわからない。高機能から超低次元まで 様々な環境を考慮しなければ質問に答えることは出来ない。 そうでなくてもこの分野はどんな質問がくるか予測しづらい面もある。 肝心の質問者は何も言わず逃げやがったなw
606 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 19:43:12 ] まあ、かくいう俺も128本のレジスタと256KBのメモリ空間しかない 某プロセッサコアのシミュレータと格闘してた。 アレは気が狂いそうだ。
607 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 20:04:21 ] 128本も、一体何に使うんだよorz 人智では管理できんな、この数じゃ。CellとかItaniumとか!
608 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:36:33 ] Sparcも結構変態チックなレジスタ管理していた気がするが。
609 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:38:24 ] やはりデータレジスタ8本アドレスレジスタ8本が最も美しい。
610 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:46:19 ] >>609 レジスタの長さは、それぞれ 1Mバイトぐらいでよろしーですか?w
611 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:48:43 ] 奇数アドレスにアクセスすると転けるCPUなんて嫌いです。
612 名前:デフォルトの名無しさん [2006/10/16(月) 00:21:15 ] >>611 68000のことですか?
613 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 00:27:10 ] 中途半端に遅くなって動かれるくらいなら落ちてくれた方がいいけど。
614 名前:デフォルトの名無しさん [2006/10/16(月) 01:29:07 ] すみませんがわからないので教えてください・・・ お願いします 次の命令群を実行した結果を説明せよ CLR R0 ADD #1 R0 ADD #2 R0 ADD #3 R0 ADD #4 R0 次の命令群を実行した結果を説明せよ MOV #100,R1 CLR -(R1) CLR -(R1) CLR -(R1) CLR -(R1) 次の命令群を実行した結果を説明せよ CLR @#100 解答は○○○○番地を××に、R0を△△△△にする という形でできるだけ詳しくお願いします 本当にお願いします ・・・
615 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:42:53 ] 実行すればわかる
616 名前:デフォルトの名無しさん [2006/10/16(月) 02:30:42 ] お願いします。。。課題なのですが明日までなんです・・・
617 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 02:43:23 ] 明後日になったら答えてやる と念を押しておいても誰かが先に答えちまうんだろうな 偽善もほどほどにしとけよ?
618 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 02:45:27 ] 宿題スレじゃ無いしな。
619 名前:デフォルトの名無しさん [2006/10/16(月) 02:48:32 ] すみません・・宿題スレがないので・・・ 本当にお願いします・・教えてください
620 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 02:52:45 ] そもそもどのCPUを使っているのかなどの最低限の情報が与えられていないのではなぁ。
621 名前:デフォルトの名無しさん [2006/10/16(月) 03:36:39 ] すみませんわかりません・・ それしか書いてないので・・・ PDP11ってやつですかね・・? オペランドとか・・ 自分も授業で少ししただけで全然わからないんです・・・ 教えてもらえないでしょうか。。。
622 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 03:51:59 ] >>621 PDP11のアセンブラのマニュアルならここにあるからしっかり勉強しろ。 ttp://www.bitsavers.org/pdf/dec/www.computer.museum.uq.edu.au_mirror/D-09-30_PDP11-40_Processor_Handbook.pdf
623 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:00:17 ] おぉ、こんなものをこんなところで入手できるとは いいものを手に入れた。マジサンクス>>622
624 名前:デフォルトの名無しさん [2006/10/16(月) 04:32:48 ] >>622 わかりました 勉強はします そのマニュアルは全部英語でよくわかりませんが・・ でも締切りが今日なんです・・・ とりあえず答えを教えてもらえないでしょうか・・・ もう時間が・・・ お願いします
625 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:38:51 ] >>624 そうやって2chに張り付いてうだうだ書いている暇に、英和辞典片手にマニュアル読めよ。
626 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:42:53 ] 課題のほうも煮詰まっているようだから>>614 のサンプルに関連するページだけ抽出して >>622 から抜粋してみた。この辺を重点的に読んで、あとは自分で解決してね。 (問1) 2オペランドアドレッシング(double operand addressing) … 3-2 (30) クリア(clr)命令 … 4-6 (52) 加算(add)命令 … 4-25 (71) (問2) 直接アドレッシング(direct addressing)と自動デクリメント(autodecrement) … 3-4 (32) 転送(mov)命令 … 4-23 (69) (問3) 差分(間接)アドレッシング(differed (indirect) addressing) … 3-10 (38) 今君が手元で使っているであろう某系のCPUよりも随分素直で理解しやすいよ。
627 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:53:36 ] Cで書くならこうかな? register short int r0 = 0; r0 += 1; r0 += 2; r0 += 3; r0 += 4; register short int r1 = 100; *--r1 = 0; *--r1 = 0; *--r1 = 0; *--r1 = 0; *(short int *)100 = 0;
628 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:55:04 ] おまいら優しすぎ。
629 名前:デフォルトの名無しさん [2006/10/16(月) 04:57:31 ] まってください >>626 わざわざありがとうございます ですがその資料ホントに読めません・・・ あと習い始めたばかりでまだ実行とかは全く習ってないししたこともないんです 書いてある問題の意味すらわからなくて、今答えの見当もつかない状態なんです・・ 本当にお願いします・・
630 名前:626 mailto:sage [2006/10/16(月) 04:58:52 ] おわwww間違えてるしw 問3は差分アドレッシングの問題じゃないわ。何に気をとられていたのやらorz 問3はたぶん絶対アドレッシング(absolute addressing)の問題。 関連ページは 3-12 (40) >>627 それほぼ答えじゃんorz ま、俺は別にいいけどね。
631 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:00:17 ] 確か @ やら # はウニッ糞のシェルにとって特別な意味があるので UNIックソのPDP11アセンブラは>>622 とは違う文字使っていたような希ガス
632 名前:630 mailto:sage [2006/10/16(月) 05:02:18 ] 関連ページは3-12・・・じゃなくて本当は 3-13 (41) また間違えましたよ。 すぐ隣のページだけどね:-p
633 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:05:28 ] >>627 × register short int r1 = 100; ○ register short int *r1 = 100;
634 名前:デフォルトの名無しさん [2006/10/16(月) 05:07:04 ] >>627 ありがとうございます でもCは全く習ってなくて、何が書いてあるのか理解できません・・・ 本当にすみません できれば>>614 の形式で教えていただけないでしょうか・・ 手書きで説明を書いて提出するので・・・ >>630 わざわざ報告ありがとうございます
635 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:15:23 ] おまい、貴重なPDP11のマニュアルを拾ってきてもらって、その212頁もある マニュアルの中から僅かな量のエッセンスを抽出してもらって、あまつさえ 重要語句に日本語を付加されてまでまだ「読めません」かよ。 読めないのではなくて 読 ん で い な い だろ。 今から>>622 読んで理解しろ。実際ここにいる連中も1時間程度で読んで理解しているんだ。
636 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:18:20 ] >>635 それとCのソースもな。
637 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:30:50 ] おまいら優しすぎ
638 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:42:08 ] 解説者が一人多役の自演でなければ、の話だが。
639 名前:デフォルトの名無しさん [2006/10/16(月) 05:51:08 ] 30分ほど読みましたがやはりわかりませんでした・・・ 教科書読んでも全然わからなくて・・・ >>627 はどういうことなんですか・・? 実行結果・・? もういやだ・・もうこんな時間・・どうにもできない・・・だれか・・
640 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:07:13 ] >639 残念でした。 2chに聞いたのが間違いなんだよ 何でもサポートセンターじゃない 先生のところへ行って直接手取り足取り教えて貰いな 親切に教えて、しかも学ぶ事そのものまで教えてまでいるスレ住人を 裏切り続けてるのは外ならぬお前なんだと言う事を覚えておけよ?
641 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:09:32 ] ネタかも知れないレスにマジレスしちまった。 そろそろ寝るか。 30分ぐらい。
642 名前:デフォルトの名無しさん [2006/10/16(月) 06:18:11 ] 提出物なので先生には教えてもらえません・・・ 裏切り続けてると言われても・・言われたことはしました・・ その上でなら仕方ありません・・ 時間があるのならゆっくり勉強すればいいかもしれませんが、もう時間がなくて一から勉強することができません・・・ だからもう・・・
643 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:23:02 ] ここまでヒント貰って分からないんなら、もう単位は諦めるしかないんじゃない。 人の答え丸写しして本人は理解してないのに単位取るなんて不正だし。
644 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:23:44 ] 課題出されてから提出期限まで幾らか時間があったんだろ? くだらん言い訳はするな。 それに提出物だから教えて貰えないというのもおかしな話だ。 質問を受け付けてくれない先生か。さぞお気の毒だこと。 そうやって言い訳し続けて、裏切り続けるがいいさ。 と、漏れもマジレス
645 名前:デフォルトの名無しさん [2006/10/16(月) 07:06:33 ] お願いします・・・ 何を言われてももうこれしかありません・・・
646 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 07:09:06 ] もういい加減愛想が尽きたよ。 答えを教えたって豚に真珠だろうさ。
647 名前:デフォルトの名無しさん [2006/10/16(月) 07:21:02 ] それでもお願いします・・・
648 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 07:51:54 ] おまえら優しいな。 2chでこんなに優しくしてもらえるなんてそうないぞ。 問1ぐらいは分かるだろ。 ま、残りは空欄でも仕方ないな。
649 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 08:00:04 ] 問1すらわからないなら単位はあきらめた方がいいな
650 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 08:22:28 ] なんじゃここ、昼夜逆転したニート君どもがが学生君を嬲ってやがるw やっぱりヒキニト君ってイライラが溜まってるんだね。 そんなの俺なら「宿題は自分でやれよ」の一言で済ますけど。
651 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 11:21:27 ] r0が
652 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 11:23:32 ] 失敗 r0がゼロレジスタか否かで結果が変わるな PDP11が確実でなければ
653 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 12:25:35 ] 時間が無いなんて何を言ってるんだ? 学生なら幾らでも時間はあるだろ 4年で卒業できる実力が無いならおとなしく留年しろ それが世のためだ
654 名前:デフォルトの名無しさん [2006/10/16(月) 12:26:48 ] あと30分でその授業が始まります‥ 本当にお願いします…
655 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 12:42:11 ] このスレタイに使われている顔文字の意味がわからくなってきたぞ。 始めて↓のスレタイを見たときは、 アセンブラ… (;´Д`) ハァハァ (Part6) pc5.2ch.net/test/read.cgi/tech/1087897801/ ああなるほど、アセンブラだから汗んブラってことで 汗をかいているって意味か、もしくはブラジャー見てハァハァ言ってるのかって 意味なのかとわかった。んだが・・・
656 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 12:53:52 ] >>655 そういう意味はないぜ。 伝統的に「Part*」でなく顔文字でスレ名つけてるだけで。 そのスレタイだったら、アセンブラにハァハァしてると 解釈するのが自然で、汗とかけてるわけじゃない
657 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 13:26:09 ] 汗まみれのブラジャー着けたままセックスして感じてる女がハァハァいってる ところを想像した やばい、想像しただけで勃起する
658 名前:デフォルトの名無しさん [2006/10/16(月) 14:14:38 ] あぁ、、PDP-11とは懐かしいな。何でPDP-11なのか分からんけど。実機で動いた方が絶対に面白いし、分かり易いのに。MIPSとかでいいのにな。いや、漏れも大学の時のアセンブラ講義はPDP-11のシミュレータだったけどさ。
659 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 14:14:58 ] 全く知らない漏れでも>>622 のマニュアル流し読みしたら理解できた。 わからないとか言ってる奴は絶対に問題を自力で解こうと思ってないし、 マニュアルも英語だからという理由で読もうともしてない。 以下、アドレスや数値は8進数表記 問1 R0を000000にする R0に1を加算する→R0は000001 R0に2を加算する→R0は000003 R0に3を加算する→R0は000006 R0に4を加算する→R0は000012 問2 R1を000100にする 000100番地を000000にする、R1を000076にする 000076番地を000000にする、R1を000074にする 000074番地を000000にする、R1を000072にする 000072番地を000000にする、R1を000070にする 問3 000100番地を000000にする
660 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 14:19:59 ] >>659 たんなる釣りだろ。
661 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:06:00 ] 8進数か、手強いな。16進数に慣れきってしまった今となっては。
662 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:37:49 ] 英語がどうとか逝っても肝心の所は図とか記号あるから英語あんま読めなくてもだいたいわかるし
663 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:47:53 ] アセンブラの宿題スレもそこそこ需要があるみたいだね。 このスレを見る限り。(>>36-55 ,>>88-98 ,>>191-207 ,>>244-254 ,>>572-605 ,>>614-659 ) こちらに質問された方はお気の毒でした。結局間に合ってないよね。 でも、資料提供から問題箇所の切り出し、C言語による整理とここでこんなに 丁寧に指導してもらえることってそうはないから、努力して理解に努める 姿勢を見せれば良い方向に転んだかもしれないあたり、少し残念。 それはさておき。 ここの姉妹スレとしてアセンブラの宿題スレを立てようと思うが、どうだろうか。 意見がなかったら近いうちに立てるよ。住人さんが定着するかどうかはわからないけど。
664 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 16:12:14 ] >>36 って5月だよな。月1回程度って少なくない?
665 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 16:22:41 ] 宿題スレ、立ててみるのは面白いと思うよ。 スレタイに「宿題」「質問」「アセンブラ」などの単語が入ってれば ある程度人は集まると思う。 過疎化や実質非宿題スレ化などが懸念されるが、 ネタが増えそうな気もするし、俺は立てるのに賛成。
666 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 16:39:46 ] 月一回程度、これを多いと思う香具師はいないものとして。 少なすぎるか、適量かで意見が分かれそうだな。 このペースだと複数問題のパラレル同時進行てな事態はそうは起きないだろうから 漏れは丁度いいと思う。もうちょい増えても構わんが。
667 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 17:33:55 ] いらねーだろ。 本音としては、ここに集う宿題君を肴にしてお前らと暇つぶしするのがいい。 宿題は自分でやれ。2chはお前らの代返君じゃねーんだぞと。
668 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:05:39 ] 宿題スレを肴にすればいい。 それに、質問して来た人を直接ここで肴にするのは ちょっと気が引けるし。
669 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:12:28 ] 近頃のアッセン使いは意地が悪いですね
670 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:41:17 ] 実はただのニートだからなw
671 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:45:56 ] >>659 > 問2 おしい。32ページ。 > -(Rn) Register is decrimented and then used as a pointer. つまり、まず減算してからポインターとして使う。
672 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 20:57:01 ] 問題: STC SBB EAX,EAX ADD EAX,13 DEC EAX XOR EAX,9 NOT AX SHL EAX,8 上の命令を実行した後、EAXに入っている値を10進法で求めよ。
673 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 21:58:43 ] >>672 じぶんでやれかす
674 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 21:59:50 ] 「〜を求めよ」ってテスト問題の答えに 「じぶんでやれかす」って一度書いてみたいなw
675 名前:673 mailto:sage [2006/10/16(月) 22:01:51 ] 暇つぶしで回ってただけだからおれもわかんねーよwww
676 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:03:48 ] えーと13たして9かけて8でわるのかな?
677 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:14:07 ] 汗まみれのブラジャー↑アッー!↓
678 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:48:25 ] 16770816
679 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 23:22:10 ] これか game10.2ch.net/test/read.cgi/mmosaloon/1156941719/l50 の172 ↑www.usamimi.info/~nkra/desktop/GEpassword.html いつまでもこんなことやってたら高校生とかになっても厨のままだよ
680 名前:デフォルトの名無しさん [2006/10/16(月) 23:27:11 ] 16777216だよ
681 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 07:01:21 ] アセンブラ面白い問題教えてスレとか面白そうじゃないか? 誰か建てろ。
682 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:07:18 ] 仮にアセンブリ宿題スレ作るにしても、テンプレどうするよ? 質問者は、質問の際に以下の項目を記入する事。 【機種】 【CPU】 【アセンブラ】 ※判らない人は判る範囲で埋めて下さい。 アセンブリは環境によってコードが異なるります。 3つとも空欄や不明の場合、回答者が趣味で使っている環境で答えますが それがあなたの環境で実行出来るか否かの保障は出来ません。
683 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:18:02 ] s/答えますが/気が向いたら答えるかも知れませんが/
684 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:00:27 ] 最低限CPU名だけは書いてもらうことを優先すべきでないかな。 もちろんわかる人には環境を詳しく書いてもらうとして。
685 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:04:56 ] > コードが異なるります。
686 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:29:58 ] アセンブラ アセンブリ アセンブル
687 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:43:58 ] アセンブリ言語をアセンブルするのがアセンブラだが、 アセンブリ言語を指してアセンブラと言うことも多い。
688 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 17:26:57 ] アセンブラ アセンブリ アセンブル アセンブレ アセンブロ つっこみいれてやれよ。
689 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 23:00:47 ] アセンブロとはきどんなお風呂ですか?
690 名前:689 mailto:sage [2006/10/17(火) 23:01:30 ] 余計な「き」が入った 吊ってくる
691 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 23:30:02 ] 1.[8091h][8090h]←[8080h]*2+[8081h] 和を16ビットで求める 2.[8085h]←[8051h]+[8052h] を計算し、符号付2進数加算としてのオーバーフローを判定する この二つを8085プログラムで書けという問題なのですがまったく分かりません。 どなたか分かる方教えてください。よろしくお願いします。
692 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 23:49:46 ] 宿題スレに逝け
693 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:05:04 ] >>691 宿題スレに逝け アセンブラの宿題質問スレ pc8.2ch.net/test/read.cgi/tech/1161097445/
694 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:11:22 ] 結局立てたんかい。 次からテンプレに追加せんとな。
695 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:42:24 ] Z80ならよく覚えているんだがなぁ〜。i8085は知らんわ。残念。
696 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:58:48 ] >>688 まるでソンブレロみたいだ
697 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 01:50:04 ] 3 名前: デフォルトの名無しさん [sage] 投稿日: 2006/10/18(水) 00:06:56 ファミコンアセンブラはまじで楽しい。 それ以外のアセンブラなんて人間にすすめるもんじゃない。
698 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 06:29:45 ] あんな変態アーキテクチャ、人に勧められるものかよ。 まあ、x86系の石よりはマシだが。 68000の優るものは何もない。
699 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 06:36:39 ] 68kは遅いのが致命的だな。 JAVAチップだって結局(ry
700 名前:・∀・)っ-○◎○新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/18(水) 06:37:48 ] ナーシャ・ジベリを越える天才現るか?
701 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 09:22:08 ] 彼は今何をしているのだろう?
702 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 19:45:53 ] アセンブリをアセンブラでアセンブルすんだよ アセンブラをアセンブラでアセンブルする厨は(・∀・)カエレ!
703 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:14:57 ] アセンブラってやっぱ C で書かれてるのかな?
704 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:24:20 ] >>703 そういうのもそうでないのもある。 awkで書かれてるのとかもあるよ
705 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:27:38 ] >>703 普通の言語のコンパイラならともかく、 アセンブラは何も考えずにアセンブルできるから 言語は何でもいいんじゃないの。
706 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 01:18:25 ] 漏れは8085アセンブラをbasicで書いたぞ。
707 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 03:04:40 ] シナプスで書かれたアセンブラもあるな 勝手に最適化してくれるらしいぞ
708 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 06:31:39 ] 紙とエンピツで入出力
709 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 07:36:04 ] こういうのって許されるやり方ですか? もしかして相当する命令あるのかなぁ 初心者ですいません・・・ 0100 mov AX,0300 0103 push AX ; Arg1 0104 call 200 0200 mov AX,SP 0202 add AX,2 0205 mov SP,AX 0207 ret 0300 int 20 ; おわり
710 名前:709 mailto:sage [2006/10/20(金) 07:38:30 ] 板汚しすいません。解決しました
711 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 13:06:04 ] mov ax, 0x300 push ax call TEST TEST: push bp mov bp, sp mov ax, [bp + 4] pop bp ret 普通はこんな風に使う。 アセンブリ言語プログラムをCから呼ぶのと同じ感じ。 上のはnasm16bitプログラムで書いてある。 そのためbp+4なのだ。 +4な理由は、戻りアドレス16bitとbpをプッシュした16bitで合計4バイトってこと。
712 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 13:38:16 ] >>711 引数で渡された値に帰り先を変更したいようだから それではやってる事が全く違うんじゃないか?
713 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 13:42:00 ] >>711 偉そうに嘘を教える知ったか乙
714 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 14:05:59 ] うははwwwちゃんと読んでいなかったwwwww 吊って来るorz
715 名前:デフォルトの名無しさん [2006/10/21(土) 02:50:55 ] mov ax,[si+1]はOKで mov ax,[di+1]はNGですか?
716 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 11:34:17 ] >>709 retの戻りアドレスをArg1に変更したいだけならこうじゃないか? 0100 mov AX,0300 0103 push AX ; Arg1 0104 call 200 0200 pop AX ; 本来のret先をスタックから取り除く 0201 ret ; 103でpushした値がスタックトップなのでそこにretする 0300 int 20 ; おわり
717 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 15:15:42 ] すいません。 入る大学間違えたんですが。
718 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 17:24:31 ] >>717 だから?
719 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 17:35:06 ] >>717 よくあることだ。気にするな。
720 名前:717 mailto:sage [2006/10/23(月) 17:44:40 ] すいません。 誤爆です。 (なぜか向こうにレスがつかなかった。)
721 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 17:45:08 ] >>720 ret
722 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 18:32:58 ] retって何?
723 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 19:24:31 ] iret
724 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 07:09:34 ] irete
725 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 08:07:59 ] アッー!
726 名前:デフォルトの名無しさん [2006/10/24(火) 10:05:42 ] MASM Ver8はどこで手に入りますか?
727 名前:726 mailto:sage [2006/10/24(火) 10:10:23 ] ごめんなさい。 >>147 にありました
728 名前:デフォルトの名無しさん [2006/10/24(火) 13:36:18 ] dwordってなんですか?
729 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 13:44:42 ] どうbぇをrd
730 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 13:53:05 ] 4バイト?
731 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 14:01:41 ] DWORDはDOUBLE WORDなのでWORD2つ分。 ただし、WORDが何バイトか、あるいは何ビットかは知ったこっちゃない。
732 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 15:33:36 ] 2CHとはアセンブラでどんな意味ですか?
733 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 15:40:22 ] jmp @-1
734 名前:デフォルトの名無しさん [2006/10/24(火) 18:15:29 ] ?
735 名前:デフォルトの名無しさん [2006/10/24(火) 18:26:32 ] 2ちゃんのことじゃないですよ2CHの意味することを教えてください
736 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 18:32:33 ] 2CHは16進法としか解釈できないよね。 10進法なら44だ。 これが表す命令はCPUによって違うが、 1byteの2CH命令を持つCPUって何だろ。
737 名前:デフォルトの名無しさん [2006/10/24(火) 18:33:28 ] ありがとうございます
738 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 18:35:59 ] なーんだ。そういう事か。 マジレスすると、炭素と水素が結合した物が2個。
739 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 23:15:41 ] そりゃ無理だ。
740 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 23:52:37 ] >>736 z80なら inc l
741 名前:736 mailto:sage [2006/10/24(火) 23:59:54 ] >>740 サンクス。
742 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 10:56:51 ] >>740 ザイログフォーマットではxxxhという表現は無いな 2chだとインテルフォーマットだと思うぞ だから INC L だな
743 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:21:37 ] 俺が思うに、やっぱりね、良い音楽もあるけど悪い音楽もある!
744 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:37:03 ] iret
745 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:58:45 ] >>743 いい音楽って例えばどういうの?
746 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 12:55:15 ] inc l
747 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 13:25:02 ] アニオタ帰れ
748 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 22:46:00 ] そういやアニメ界には 搭乗してるユニットのOSを書き換えながら 戦闘するパイロットが居るんだっけか
749 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 22:54:05 ] >>748 しーぽん
750 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 01:51:03 ] >>748 実は別OSがその下で動いていたらどうだろう?止めることなく書き換えも可能になるな。
751 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 01:54:16 ] 無停止システムなんかだと実行中のOSにパッチ当てるぐらいはできて当然。
752 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 01:57:33 ] 無停止システムってなんだよ? てか、なんちゃら機関と同じで実現できないだろ。
753 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:04:47 ] スーパーバイザモードで動いてるOSの下に ユーザーモードで動いてるOSがいくつも走ってて そっちを書き換えてた可能性は十分ある。 それほど不自然ではない気もするぞ。 別に0から全てのコード書き上げたってんじゃないんだろう?
754 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:17:04 ] 迂闊に特権コード書き換えられるようではそれ自体がセキュリティホールになりかねないが、 OSのカーネルだろうがメモリ上の単なるデータに過ぎないんだから、適切な権限さえあれば いくらでも書き換えることができる。アーキテクチャにもよるけどな。
755 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:19:01 ] >>752 勧善懲悪覗機関
756 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:41:26 ] アセンブリは無敵ってこった。C言語すらもただのゴミに見える…
757 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 03:56:04 ] 無敵かもしれんが、おいらには難解過ぎるよ。 全然勉強が進まん…orz
758 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 11:16:36 ] 種の話ならRTOS上のアプリが糞だったのでスケジューラと制御ライブラリの呼び出しパラメータに機体の癖を考慮した誤差を加えただけみたいに見えた
759 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 12:07:39 ] よくわからんが、俺もコーディネーターになりてえよw
760 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 12:32:12 ] ようするに篠原の技術は世界一って事だ
761 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 17:20:36 ] ネルガルだよ
762 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 18:24:59 ] >761 オモイカネがOSだったんだw
763 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 00:14:18 ] >>759 希望はよくわかった。 今日から君はコーダーだ。
764 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 02:08:24 ] 今日から僕はリコーダーだ。
765 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 07:41:49 ] きょうから俺はあの娘のリコーダーだと申したか
766 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 08:24:40 ] >>763 極悪人事だな
767 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 13:26:34 ] 僕のバズーカ凄いんだぞ(涙目)
768 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 15:30:01 ] >>765 おっさんの喘ぎ声がでるようなリコーダーはいりません!
769 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 16:15:05 ] すいません。質問です。 486CPUでCR0レジスタの30と29ビット目を1にすると キャッシュ機能を無効にすることが出来るのでしょうか?
770 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 16:27:13 ] キャッシュの破棄もしなきゃいけないんじゃない?
771 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 16:29:42 ] 1次キャッシュを無効にしてWindowsを立ち上げるとすごく遅いね。
772 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 03:26:21 ] 初期のNetwareはHDD引っこ抜いても動いてたとかとか。
773 名前:デフォルトの名無しさん [2006/10/30(月) 15:02:59 ] 私の頭は利口だ
774 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 16:01:34 ] あなたの頭には利く口があるのか
775 名前:デフォルトの名無しさん [2006/10/30(月) 16:02:32 ] ログ読んだけどアセンブラ書くのに一番簡単な言語って Rubyとかじゃないの?
776 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 20:30:24 ] >>775 よく分からないがTTLですらアセンブラは存在していたのになぜRubyなんか持ち出す? awkで十分だよ
777 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:10:47 ] それpl(ry
778 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 23:18:47 ] TTLでアセンブラ? ビットスライス組み合わせてニーモニックからバイナリへの変換でもしてたん?
779 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 07:34:25 ] nasmが開発停止したと思ったら、flat assemblerなんてのが出てるんだな。 互換性はあるともないとも書いてないのが…使ってる香具師いる?
780 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 08:20:28 ] 無いだろ。ただ構文わかりやすいな。 nasm派はYASMでおk
781 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 13:03:08 ] >>691 お前の大学特定した
782 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 05:41:08 ] お前の自宅特定したw
783 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 13:24:43 ] お前の性癖特定した
784 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 11:17:02 ] ばれた!ずらかれ!
785 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 01:36:59 ] おまえも好きだろ?ハイヒール
786 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 01:40:21 ] ブルマ復活きぼんぬ
787 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 05:38:35 ] 天然のブルマってもう絶滅したの?
788 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 06:18:24 ] >785 「Romanticが止まらない」なら好きだな
789 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 06:23:44 ] ブールーマー(・∀・)イイ! ブールーマー(・∀・)イイ! あんぱーんあんぱーんあんぱんあんぱん あん!ぱん!
790 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 10:27:01 ] >>785 ハイヒール大好きだけどバンプスとミュールも大好き カノジョできたら無理矢理はかせてやりたい
791 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 13:15:54 ] バレーボールのブルマじゃね?
792 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 00:58:56 ] >>790 夏の薄着にはピンヒールのサンダルがちょっとイイ
793 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 05:24:25 ] 組み込み技術者足りねえってよ。 みんな、がんがれ
794 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 20:49:50 ] 今どきは組み込みもほとんどCで出来ちゃうんじゃなかろうか。
795 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 23:41:05 ] 汗ブルマで掻くのはスタートアップルーチンと割り込みハンドラくらいだな
796 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 09:36:20 ] コンパイラが使って欲しくない命令使うんで、インライン使わざるを得なかった そもそもいらん信号出すような命令残しておくなよ。バグだろ?>某社
797 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 10:56:54 ] >>796 過去への優しさです。
798 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 12:07:06 ] そんな優しさなんて要らない
799 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 12:21:00 ] >>797 おまえの優しさが人を傷つけていることになぜ気づかない?
800 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 14:28:58 ] >>799 それは仕様です
801 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 16:20:18 ] 「愚か者は己が愚かなことに気づかない」
802 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 22:35:35 ] 「ぬるぽはぬるぽ」
803 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 23:34:19 ] >>802 「ガッはガッ」
804 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 18:11:49 ] 愚か者は愚か者であると見抜ける人でないと (アセンブラを使うのは)ぬるぽ
805 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 10:08:39 ] アセンブラ、アメリカ専用ブラウザなんでしょ。
806 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 14:04:08 ] 小林亜星専用ブラジャーです
807 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 14:22:00 ] それはあなたを幸せにしますか?
808 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 19:26:33 ] 亜星が人々を幸せにすることはありません
809 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 11:25:49 ] パッとさいでりあ〜♪
810 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:22:11 ] ちょっと質問。 nasmで作ったobjファイルをリンクして、ベタファイルとして出力できるようなフリーのリンカーってある? 例えば、 db 0,1,2,3 ってだけのa.asmと、 db 4,5,6,7 ってだけのb.asmをアセンブルしてそれぞれa.obj、b.objを作り、それをリンクして 0,1,2,3,4,5,6,7 というバイナリファイルを作れるようなの。 alinkでは無理だったんだが・・・
811 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:24:04 ] >>810 コードに明示されない順番依存ってリロケートとしておかしくないの?
812 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:33:29 ] >>811 ごめん、サンプルは適当に書いた。 要は、exeとして必要な部分を一切省いた、純粋にアセンブラで記述した部分だけを出せるリンカーって事で。 nasmで-f BINを指定したときと同じようなイメージ。
813 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 09:50:16 ] 昔はexe2binを使ったり自分で切り出したりしていたな objと言われてもOMFかcoff(win32)かわからない OMFならobj2binがgoogleでヒットするな
814 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 10:07:04 ] nasm -fbin a.asm nasm -fbin b.asm copy /b a+b hoge.bin じゃ駄目なの?
815 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 11:02:32 ] Microsoft Macro Assembler 8.0 (MASM) パッケージ (x86 用) www.microsoft.com/downloads/details.aspx?FamilyID=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=ja
816 名前:810 mailto:sage [2006/11/26(日) 23:38:21 ] レスd >>813 一応どちらでも出せるんで、ツールに合わせます。 >>814 a.asmからb.asmにあるラベルを参照したりすることがあるので、単純にくっつけるのはまずいです。 >>815 MASMのマニュアル?を探してみましたが、どのオプションでそれができるか不明でした。 どれか使えばできますか?
817 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 08:35:47 ] 純粋なアセンブラの話題からは弱冠ずれるんですが、BIOSファンクションコールの一覧が載ってるサイトありませんか? できれば日本語がいいんですが・・・
818 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 10:36:46 ] 何のBIOS?
819 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:09:31 ] PCのですね。 MS-DOSとかが利用するような。
820 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:27:33 ] AT? 98?
821 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:41:22 ] PC-9801でお願いします。 できればATも参考に知りたいですが・・・
822 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:57:58 ] 古本屋なりで「PC-9800シリーズ テクニカルデータブック」のシリーズでも探せ。 多分それが一番手っ取り早い。
823 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 12:24:56 ] 俺のアセンブリ言語入門っていう1992年発刊の本の巻末に一覧表があるYO
824 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 16:42:32 ] そうですね・・・ できるだけ早く欲しかったんですが。 明日、市の図書館とBOOKOFFあたってみます。
825 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 17:07:29 ] osdevに書いてある予感
826 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 20:31:23 ] そんなに古い情報はないだろう。 AT BIOSは"InterruptList"があるけど。
827 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 21:47:09 ] メモリとI/Oポート周りならあった ttp://www.webtech.co.jp/company/doc/undocumented_mem/index.html
828 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:25:03 ] 入手できるかわからんが PC-9801 プログラマーズBible,東京理科大学EIC編,技術評論社,ISBN4-87408-615-2 UNDOCUMENTED 9801/9821 Vol1,小高輝真,河野健,インプレス,ISBN4-8443-4642-3 に一通り載ってる
829 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 01:19:29 ] 全部アセンブリで書けばあらゆるソフトは超快速になるのか?
830 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 01:52:24 ] >>829 そんなの当たり前じゃん。釣りか?
831 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 01:55:23 ] じゃあアセンブラで2chブラウザつくってくれ インタフェースもおしゃれにしてくれよな!
832 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 02:11:19 ] CPUが複雑になってて、コンパイラも頭よくなってるので、一概にそうとも言えん。 つーか、CPUがどういう動作をするか完全に理解してて、各命令の動作速度、スレッドまで考慮できれば アセンブラの方が早くできるだろうなw マンドクセ('A`)
833 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 02:34:26 ] >>832 それって総当りでいつかは暗号解けるだろ、 と似たようなアルゴリズムだよね
834 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 12:45:32 ] Core2Duoなど最近のCPUの情報公開が不十分なのが問題なのであって 本来は総当りする必要はない
835 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 15:19:38 ] 猿にキーボード持たせて待ってればできるよ
836 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:24:16 ] >>835 それまで宇宙があればね。
837 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:28:07 ] \ お そ .い ヽ か の や | し り ` ,. -──- 、 い .く / /⌒ i'⌒iヽ、 つ / ,.-'ゝ__,.・・_ノ-、ヽ は i ‐'''ナ''ー-- ● =''''''リ _,....:-‐‐‐-.、 l -‐i''''~ニ-‐,....!....、ー`ナ `r'=、-、、:::::::ヽr_  ̄ \ヽー' !. t´ r''"´、_,::、::::} ノ` ,.i'・ ,!_`,!::::::::::::ヽ ヾ、 ゝゝ、,,ニ=====ニ/r'⌒; rー`ー' ,! リ::::::::::::ノ i`''''y--- (,iテ‐,'i~´,ゝ'´  ̄ ̄ヽ` :::::::::::ノ .| !、,............, i }'´ _ 、ー_',,...`::::ィ' ●、_!,ヽ-r⌒i-、ノ-''‐、 ゝ`ーt---''ヽ'''''''|`ーt-'つ ( `ーイ ゙i 丿 ;'-,' ,ノー''''{`' !゙ヽノ ,ヽ, `ー--' --'` ̄ `ー't,´`ヽ;;;、,,,,,,___,) ヽ'-゙'" (`ー':;;;;;;;;;;;;;;;ノ ``''''''``'''''´
838 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:44:38 ] アセンブラっていまどこでインストールすればいいんだ? IDE使わずに100%フリーな環境でそろえたいんだけど
839 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:46:57 ] Linuxでも使え
840 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:50:35 ] 会社がWindowsなんだよ
841 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 23:01:55 ] 仕事しろよ
842 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:23:40 ] >>838 NASMかMASM>815
843 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:40:22 ] mingw入れればgasが使えるしC/C++/C99/Fortran/Javaまで1000%FREEEEな環境がそろう しかもIDE無しでだ なおこのレスには一部誇張が含まれる
844 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:51:40 ] >815のリンク先みたら >このパッケージをインストールするために、お使いのコンピュータ上に Visual C++ 2005 Express Edition がインストールされている必要があります。 これフリーなのか?
845 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 01:04:48 ] ふりーだ。
846 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 01:11:53 ] 無料だがfreeではない
847 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 01:12:15 ] でもIDEじゃねーか
848 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 05:14:01 ] リンカーのためだけにインストールしてんだろ? それだけ取り出して IDE本体は削除すればいいんじゃね?
849 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 07:03:15 ] >>844 インストール中にTempディレクトリを見ると、VS2005EEなしでも取り出せるな。
850 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 08:47:45 ] ちなみに>>815 は商用不可だ。
851 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 19:23:12 ] CodeZineでx86のアセンブラの連載やってる筆者、リア中らしいよw そういわれてみるとちょっと文章変だったり、ところどころ勘違いっぽい記述があるけど それを差し引いてもすごいよな。
852 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 23:04:33 ] リアル中毒者
853 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/01(金) 23:39:48 ] それって赤坂玲音のこと?俺の1つ年上じゃんwww
854 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 23:45:53 ] いやそっちじゃないよ。 っていうか、その人はそこそこ有名じゃんw 厨房なんて思うわけないよ
855 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/01(金) 23:51:36 ] codezine.jp/a/article/aid/420.aspx じゃあこっちか 大御所ばっかじゃねーかwwwww
856 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 23:54:01 ] 世話が焼けるなあもう。。 codezine.jp/a/article/aid/505.aspx
857 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/02(土) 00:07:01 ] 「団子」でなんか投稿してみるかな。。。
858 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 12:56:36 ] 死ねばいいのに
859 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 03:44:12 ] masmの日本語のドキュメントって どっかでダウンロード出来ないんですか?
860 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 21:41:09 ] 昔は録音するみたいにテープに記録してたけど、 今はだいぶ便利になったみたいだね。 おっさんはマジで市ねよ。
861 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 10:58:56 ] テープは今でも普通に使われているだろ DDSとか
862 名前:デフォルトの名無しさん mailto:sage* [2006/12/09(土) 22:31:37 ] なんだこのスレは・・・たまげたなぁ・・・
863 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 12:22:32 ] 3ヶ月前の話題の参考になりそう(?)なバイナリめっけた ttp://www.wex.cn/dwing/mygem.htm
864 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 16:36:43 ] PowerPCでラベルのアドレスをレジスタに入れるにはどうしたらいいのですか?
865 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 21:08:20 ] 上位と下位を別々に入れる
866 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 14:05:05 ] >>865 addis命令というのがあるみたいなのでそれを使ってみます。
867 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 10:21:25 ] CELLでつか? Macでつか・・・? はたまた組み込み?
868 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 17:52:08 ] >>867 Macですよ。
869 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 21:29:38 ] gasでnasmの-f binにあたるものはないのだろうか。 それともld scriptで対処するべきか。
870 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 22:10:15 ] >>869 そこは自作スクリプトで対応(ry
871 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 22:45:39 ] >>870 やっぱりか。とりあえず__textセクションだけ抜き出す奴を作った。 これで何とかなると思う。ありがとう。
872 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 01:16:14 ] ゴルフでもやるの?
873 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 01:22:59 ] >>872 そう。Mach-Oでやってるの。 いま494bytesのHello, world!が出来たとこ。 普通にCで作ったら8192bytesでしたよ。 ここまでくるのに苦労しましたわ。
874 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 18:24:34 ] メイン部分がこんな感じのcomならもうちょい縮まる。 mov ax,09h mov dx,offset msg int 21h msg db 'Hello world!',0dh,0ah,'$'
875 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 21:25:03 ] >>871 ブログで書いてたやつか?
876 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 09:52:28 ] >>874 そのメッセージ部分で終了できるのか?
877 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 10:00:31 ] ax=0009なので何もせずに終了
878 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 19:19:45 ] >>875 そうそう
879 名前:874 mailto:sage [2006/12/20(水) 20:01:58 ] ミスとか訂正。 mov ah,09h mov dx,offset msg int 21h mov ah,4ch int 21h msg db 'Hello world!',0dh,0ah,'$'
880 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 13:11:32 ] >>879 縮めるんなら、 mov ah,4ch int 21h を ret にする