アセンブラ… (゜□゜) ↑アッー!↓
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2006/05/24(水) 01:43:34【前スレ】
アセンブラ… ヽ(゚∀゚)ノフォーウ!
http://pc8.2ch.net/test/read.cgi/tech/1132761638/
過去ログは>>2辺り
0002デフォルトの名無しさん
2006/05/24(水) 01:44:05アセンブラ… (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デフォルトの名無しさん
2006/05/24(水) 02:04:26( ´∀`) ( )
三 (, つ ノ ( >>1 ) TDNスレは・・
/ ) ) | | |
. 〈_)\_) (__(___)
∧_∧ .∧_∧
( ´∀) ( )
( つ ( >>1 .) 立てんなって
≡≡三 三ニ⌒).| | |
〈__)__) ̄(__(___)
∧_∧∧
( ´) ) ←>>1
/  ̄,ヽつ 言ったろうが
C /~/~
> > くっ
\__)し'
∧_∧ オラ、気持ちいいだろ
( ´∀`)
/ ヽ、 ∧∧
(( C( ヽ__( ´Д) アッー!!
/ ( 、__ Y、
〈__∠__,)) ヽ_'っっ
0004デフォルトの名無しさん
2006/05/24(水) 04:04:04穴が拡がりそうです。
でもここから一転攻勢に出ます。
Q:今シーズン最も活躍を期待する日本人大リーガーは!? 〜投手編〜
http://sports.nifty.com/vote/bb004/view.jsp
↓投票すれば一位の座を返していただけるんですね。
http://sports.nifty.com/headline/baseball/index.htm
0005デフォルトの名無しさん
2006/05/24(水) 06:25:240006デフォルトの名無しさん
2006/05/24(水) 20:13:500007デフォルトの名無しさん
2006/05/24(水) 20:23:170008デフォルトの名無しさん
2006/05/24(水) 22:03:180009デフォルトの名無しさん
2006/05/24(水) 23:11:110010デフォルトの名無しさん
2006/05/24(水) 23:14:460011デフォルトの名無しさん
2006/05/25(木) 06:51:26バカが埋めなくちゃいけないと言い出し、アホがそのデマを信じてる
それだけのこと。
0012デフォルトの名無しさん
2006/05/25(木) 16:58:54デバッグの混合モードで表示される
windowsアプリなんかのコードがイマイチ理解できません。
0013デフォルトの名無しさん
2006/05/25(木) 17:59:31がんばれ!
↓次の方ドゾー
0014デフォルトの名無しさん
2006/05/25(木) 18:26:20人間が書いたものとコンパイラが書いたものの違いだから気にするな
0015デフォルトの名無しさん
2006/05/25(木) 20:58:45コンパイラが書いたもの:定型句で構成されシンプルで読みやすい
>>12
人間向き不向きがあるんだから気にするな
0016デフォルトの名無しさん
2006/05/26(金) 01:58:32僕はこれからクラッカーを名乗ろうと思う。
そしていろんな物をクラックすることに従事しようと思う。
誰も俺を止められはしないよ。
0017デフォルトの名無しさん
2006/05/26(金) 04:05:090018デフォルトの名無しさん
2006/05/26(金) 06:34:570019デフォルトの名無しさん
2006/05/26(金) 06:40:05通報しました
0020デフォルトの名無しさん
2006/05/27(土) 19:32:25debug.exeにロードして逆汗したけど、無意味な演算命令ばっかり並んでる。subとかincとか。
asciiコードだけで構成された機械語sugee
探したら他にもありそうだな。
0021デフォルトの名無しさん
2006/05/27(土) 21:07:35ADDもADCも範囲外だから
ADD ax,bx
ってやるにも
PUSH dx
XOR dx,dx
SUB dx,bx
SUB ax,dx
POP bx
↓
52 33 D2 2B D3 3B C2 5B
↓
R3メ+モ;ツ[
とかやらなくちゃなんない。
この場合のキャリー演算ってどうやんだろ。
0022デフォルトの名無しさん
2006/05/27(土) 21:11:19で、その場合のコードが52 33 D2 2B D3 3B C2 5A
で
R3メ+モ;ツZ
だ。
0023デフォルトの名無しさん
2006/05/27(土) 21:14:050024デフォルトの名無しさん
2006/05/27(土) 21:55:00お前はまずASCIIコードの意味を勉強し直してこい。
002521
2006/05/28(日) 00:05:520026デフォルトの名無しさん
2006/05/28(日) 01:09:510027デフォルトの名無しさん
2006/05/28(日) 01:18:1332ビットOSから64ビットOS対応に変えるのってめんどい?
0028デフォルトの名無しさん
2006/05/28(日) 05:07:47FPU使うと面白いよ(・∀・)ニヤニヤ
0029デフォルトの名無しさん
2006/05/28(日) 08:57:590030デフォルトの名無しさん
2006/05/28(日) 09:05:45「American Standard Code」に半角カナが混じっていいわけねぇだろw
0031デフォルトの名無しさん
2006/05/28(日) 09:27:570032デフォルトの名無しさん
2006/05/28(日) 12:23:1221のやつASCIIにしてみたけど自信ない。
BX=0以外で結果のCF逆転?
;ADD AX,BX
PUSH SI ; V
PUSH BX ; S
PUSH AX ; P
DB
0033デフォルトの名無しさん
2006/05/28(日) 12:24:47;ADD AX,BX
PUSH SI ; V
PUSH BX ; S
PUSH AX ; P
PUSH 2121h ; h!!
POP AX ; X
XOR AX,2121h ; 5!!
PUSH BX ; S
POP SI ; ^
PUSH AX ; P
PUSH SP ; T
POP BX ; [
SUB word ptr[BX],SI ; )7
POP SI ; ^
PUSH SP ; T
POP BX ; [
SUB word ptr[BX],SI ; )7
POP AX ; X
POP BX ; [
POP SI ; ^
0034デフォルトの名無しさん
2006/05/29(月) 01:28:22だめか。
>>33
流石。
0035デフォルトの名無しさん
2006/05/29(月) 08:09:49x86なら沢山あるようですが、PPCはなかなか見つからない。
0036デフォルトの名無しさん
2006/05/29(月) 21:21:46簡単なのでいいから
0037デフォルトの名無しさん
2006/05/29(月) 21:39:52ttp://tfusvsun.tfu.ac.jp/mko/CASL2/vol3/text/3-10.html
0038デフォルトの名無しさん
2006/05/29(月) 21:49:25昔あったんだが、絶版になったらしい。
金があれば買いたかったんだが。
0039デフォルトの名無しさん
2006/05/29(月) 22:31:02書籍じゃないが
ttp://www.nk.rim.or.jp/~jun/ppcasm/ppcasm01.html
0040デフォルトの名無しさん
2006/05/29(月) 22:53:08ありがとう(´;ω;`)ウッ…
0041デフォルトの名無しさん
2006/05/30(火) 07:28:26この間ヤフオクに出品されてたよ
0042デフォルトの名無しさん
2006/05/30(火) 07:43:38近所のブコフで安売り
004336
2006/05/30(火) 07:44:13マイクロプロセッサ実験にバブルソートプログラム書かなくちゃいけないんだけど
・初期データはメモリ上に用意
・データ数のラベル名:NumberOfData
・データ配列のポインタのラベル名:DATA
・任意のデータ数に対応
・ソート後のデータ出力の際はinとoutを交互にしておく
>NumberOfData:
> .word 10
>DATA: .word 1000
> .word 200
> .word 6000
> ・・・
> .word 1000
>in
>ld kekka1
>out
>in
>ld kekka2
>out
全く意味がわからん・・・
>>37見てとりあえずそのサイトで勉強したけど
メモリ上に用意ってのが理解できないんだ(;´Д`)
0044デフォルトの名無しさん
2006/05/30(火) 09:00:100045デフォルトの名無しさん
2006/05/30(火) 09:03:54どのプロセッサ使ってるか書かずに
0046デフォルトの名無しさん
2006/05/30(火) 09:15:21多分自作プロセッサ
0047デフォルトの名無しさん
2006/05/30(火) 11:10:34それだけじゃ誰にも意味わからないぞ。
省略してるだろ。
>メモリ上に用意
ここだけは喪前以外の誰でも意味がわかるw
0048デフォルトの名無しさん
2006/05/30(火) 11:12:500049デフォルトの名無しさん
2006/05/30(火) 13:03:30005036
2006/05/30(火) 15:23:07KITEプロセッサっていう実験用のプロセッサみたいです。
0051デフォルトの名無しさん
2006/05/30(火) 16:22:25じゃあ、まずプロセッサの仕様書の一ページ目の一行目から四行目を写してみよう。
0052デフォルトの名無しさん
2006/05/30(火) 16:32:43担当の先生降臨したらオモシロイが
0053デフォルトの名無しさん
2006/05/30(火) 18:31:40KITEはちょっと手に負えないな
スマン
0054デフォルトの名無しさん
2006/05/31(水) 13:07:16任意のデータ数に対応するにはメモリ空間が不足するため
仕様を満たすプログラムは作成不可能です
0055デフォルトの名無しさん
2006/05/31(水) 13:15:46あと、長大なポインタでメモリをアクセスできることが保証されてなかったりして。
0056デフォルトの名無しさん
2006/05/31(水) 22:27:26何かおすすめの本はないでしょうか
アセンブラに関しては全くの初心者です
C言語やJava等の経験はあります
今のところ独習アセンブラを買おうと考えてます…
0057デフォルトの名無しさん
2006/05/31(水) 22:46:380058デフォルトの名無しさん
2006/06/01(木) 00:11:59何を目的に勉強するかによるんじゃね?
インラインでSIMD使うのか、組み込み系にシフトするのか、OS書くのか。
0059デフォルトの名無しさん
2006/06/01(木) 00:42:36現状の最善手(新書)では独習一択かもしれないが、取り敢ず立ち読みで判断すべし。
初心的な話なら素人ながらの意見、変なゲーム改造ネタだけの本よりかマシかと。
0060デフォルトの名無しさん
2006/06/01(木) 01:31:47つ http://www5c.biglobe.ne.jp/~ecb/assembler/assembler00.html
0061デフォルトの名無しさん
2006/06/01(木) 04:10:27「いまどきの〜」と名の付くシリーズは
買ってはいけない
0062デフォルトの名無しさん
2006/06/01(木) 04:34:16確かに駄目そうだ
0063デフォルトの名無しさん
2006/06/01(木) 04:34:51「これから来るアセンブラ」
0064デフォルトの名無しさん
2006/06/01(木) 04:57:12あんなの擁護するやついるのか
0065デフォルトの名無しさん
2006/06/01(木) 09:48:45タダで処理系はばっちり入手できるし、結構工作関連の人ってアセンブラ
苦手なようで、複雑なプログラムはあんまり載ってないし。
0066デフォルトの名無しさん
2006/06/01(木) 13:23:16>>58 一応Windows上で動くのをやりたいです
>>59 田舎ですから置いてないんですよね…図書館にリクエストしてみます
>>60 そのページは全部読んだんですが、どうもリファレンス的で基本を分かってない自分にはさっぱりで…
>>61 悪書として聞いた事があります
>>65 PICも後々やってみたいと思っています
006760
2006/06/01(木) 23:11:11じゃぁ、アセンブラの教科書の前に
矢沢久雄「プログラムはなぜ動くのか」(2001年10月)日経BP社\2400
ってのもある
0068デフォルトの名無しさん
2006/06/02(金) 00:33:33この本マジおすすめ
0069デフォルトの名無しさん
2006/06/02(金) 00:34:16この本マジおすすめ
ttp://www.amazon.co.jp/gp/product/4839909865/
リンク貼るの忘れてた
0070デフォルトの名無しさん
2006/06/02(金) 00:56:290071デフォルトの名無しさん
2006/06/02(金) 01:20:22実は筆者の愛を表現するために、編集者が勝手に登場させたのでしょう。
本書の最後にある「おわりに」に筆者自身が萌え子ちゃんの登場に衝撃を
受けた様子が暴露されています。
0072デフォルトの名無しさん
2006/06/02(金) 01:27:080073デフォルトの名無しさん
2006/06/02(金) 17:44:38出来損ないのCPU作るよりまず頭のry
0074デフォルトの名無しさん
2006/06/02(金) 21:32:270075デフォルトの名無しさん
2006/06/02(金) 21:48:050076デフォルトの名無しさん
2006/06/02(金) 22:48:35ebxとecx*8を足して1000を引いてeaxに代入する最速コードは?
という問題で、
lea eax,[ebx+ecx*8-1000]
とlea命令一発でやっているんだけど、CPUはこういう計算は乗算・減算を
しないでさくっと 1clock で済ますことが出来るの?
なんでこんなことが出来るのかさっぱり仕組みが分かりません。
あと、MSVC++(うちで使ってるのは6.0)とかは実行速度で最適化をすれば
こういう処理の置き換えは自動でやってくれるんですか?
0077デフォルトの名無しさん
2006/06/03(土) 00:10:23プロセッサによって違うに決まってる。
少なくとも、i386では出来ない。
> なんでこんなことが出来るのか
そういうハードウェアを搭載してるから。
> 自動でやってくれるんですか?
コンパイラの出力くらい、自分で確かめろよ。
0078デフォルトの名無しさん
2006/06/03(土) 10:38:03減算はともかく乗算なんかしてないだろ。
0079デフォルトの名無しさん
2006/06/03(土) 10:48:32ならi386でも可能?
0080デフォルトの名無しさん
2006/06/03(土) 12:12:03「lea eax,[ebp+ebx*8-1000]なら386でも1clockで実行可能か?」
ということなら無理。
>>76
ターゲットCPUに対応した最新の最適化コンパイラを使えば
「条件さえ良ければ」かなりの所まで自動で最適化してくれる。
最近(でもないか)の例:
ttp://www.intel.co.jp/jp/developer/technology/itj/2004/volume08issue01/art02_compilers/p04_automatic.htm
0081デフォルトの名無しさん
2006/06/03(土) 12:19:040082デフォルトの名無しさん
2006/06/04(日) 00:31:440083デフォルトの名無しさん
2006/06/04(日) 01:05:16スレタイの 「アッー!」 が発音できないのですが・・・どう読むんですか?
0084デフォルトの名無しさん
2006/06/04(日) 01:13:52lea は積ではなくビットシフト
>83
ガイドライン池
0085デフォルトの名無しさん
2006/06/04(日) 03:47:540086デフォルトの名無しさん
2006/06/04(日) 05:27:320087デフォルトの名無しさん
2006/06/04(日) 06:21:35セグメントセレクタのRPLフィールドの
二つあるのが意味不明というか
0088デフォルトの名無しさん
2006/06/04(日) 09:15:37ソースはどうなりますか?
0089デフォルトの名無しさん
2006/06/04(日) 09:26:57IOの情報も無いのに出力出来るかとか、
せめてCPUくらいは書けとか思ったが・・・
宿題くらいは自力でやれ、な?(AA略
0090デフォルトの名無しさん
2006/06/04(日) 11:23:14よし、出来たぞ。
不明な部分は俺が勝手に脳内補完してやったから安心しろ。
ORG 100H
START: LD C,1
CALL 5
SUB 30H
PUSH AF
LD C,1
CALL 5
SUB 30H
POP BC
JR Z,DISP
LD C,A
XOR A
LP01: ADD A,B
DAA
DEC C
JR NZ,LP01
DISP: LD HL,STR+2
LD (HL),A
LD A,33H
RRD
INC HL
LD (HL),A
SK01: LD C,9
LD DE,STR
JP 5
STR: DB 0DH,0AH,00H,00H,0DH,0AH,24H
END START
0091デフォルトの名無しさん
2006/06/04(日) 12:03:44やったらどうなりますかね?
0092デフォルトの名無しさん
2006/06/04(日) 13:20:59学生実験乙
0093デフォルトの名無しさん
2006/06/04(日) 15:27:22Z80→8080(8085)変換くらい自分でやれ
0094デフォルトの名無しさん
2006/06/04(日) 19:43:05先ずはZ80でアセンブルして8080で逆アセンブルしてみたら?
#取り敢えずJR ZはJP Zに置き換えるとして後はLD DEが問題かな?
##RRDってなんだっけ。
009593
2006/06/04(日) 20:02:030096デフォルトの名無しさん
2006/06/04(日) 21:51:34RRDは4ビット単位のローテートだな
LD DEについてはCP/Mでなんでメッセージ出力にDEレジスタを使うと思ってるんだi8080でも問題なしだよ
0097デフォルトの名無しさん
2006/06/04(日) 22:47:57.8085
ASEG
DISP EQU 0040H
DHEX2 EQU 0046H
KEYIN EQU 004FH
ORG 8000H
LOOP : CALL KEYIN
JNC LOOP
MVI C,1
CALL DHEX2
CALL DISP
END
0098デフォルトの名無しさん
2006/06/05(月) 00:06:13.8085
ASEG
DISP EQU 0040H
DHEX1 EQU 0043H
KEYIN EQU 004FH
ORG 8000H
IN1 : DB 0
IN2 : DB 0
ANS : DB 0
LP1 : CALL KEYIN
JNZ LP1
STA IN1
CALL DHEX1
CALL DISP
LP2 : CALL KEYIN
JNZ LP2
STA IN2
CALL DHEX1
CALL DISP
MVI C,IN1
MVI A,IN2
LXI H,0000H
LP3 : DCR A
DAD B
JNZ LP3
CPI 15H
CALL DHEX1
CALL DISP
END
0100デフォルトの名無しさん
2006/06/05(月) 04:34:210101デフォルトの名無しさん
2006/06/05(月) 05:40:510102デフォルトの名無しさん
2006/06/05(月) 10:59:47いつの時代ですか
0103デフォルトの名無しさん
2006/06/05(月) 11:31:54対応コンパイラが無くて困ってるPS3開発さんですか?
0104デフォルトの名無しさん
2006/06/05(月) 17:11:13アセンブラでもライフゲームくらい作れるんじゃないの?
TeX でライフゲーム作ったと言う話は聞いたことがある。
0105デフォルトの名無しさん
2006/06/05(月) 17:17:54んなもん無くたって作れる。
0106デフォルトの名無しさん
2006/06/05(月) 17:28:30現実的かどうかはともかくとして。
0107デフォルトの名無しさん
2006/06/05(月) 17:44:170108デフォルトの名無しさん
2006/06/05(月) 17:50:39ttp://e-words.jp/w/E382A2E382BBE383B3E38396E383A9.html
こういう事が言いたいなら、お帰り下さい。
この程度の意味が通じないなら日本語を使って生きていくのは難しい。
0109デフォルトの名無しさん
2006/06/05(月) 18:12:550110デフォルトの名無しさん
2006/06/05(月) 18:22:330111デフォルトの名無しさん
2006/06/05(月) 20:06:50fire trash
0112デフォルトの名無しさん
2006/06/05(月) 20:11:28そのCPUに対応したアセンブリ言語があると仮定した場合にその命題は常に正しい。
だがCPUに対応したアセンブリ言語がそもそも存在しない場合、記述は不可能。
なかなか無い反例だが?
0113デフォルトの名無しさん
2006/06/05(月) 20:13:25>なかなか無い反例だが?
普通にあるような・・・ENIAC とか
0114デフォルトの名無しさん
2006/06/05(月) 20:30:120115デフォルトの名無しさん
2006/06/05(月) 20:58:38強いていうと、アセンブラの出力が配線図として出力されるとか?
0116デフォルトの名無しさん
2006/06/05(月) 21:02:40アセンブラ未対応で直接バイナリ埋め込んだりとかあったなぁ。
0117112
2006/06/05(月) 21:07:12「現在は」なかなか無い反例 と言いなおそうか。
たしかにENIACについちゃ反例になるだろうが。そもそも機械語なんて概念が無いから。
0118デフォルトの名無しさん
2006/06/05(月) 21:07:24手作業でプログラムを入力しないといけないんだっけ?
そうなると、エニアックはCPU載せてるとは言えない説を提示したい。
0119デフォルトの名無しさん
2006/06/05(月) 21:08:220120デフォルトの名無しさん
2006/06/05(月) 21:09:17ENIACは10進数で計算する事を忘れてはいけない。そのアセンブラがあったとしてもそれだけで膨大な「配線組み合わせ」(プログラム)になってしまう。
0121デフォルトの名無しさん
2006/06/05(月) 21:11:38アセンブルは最新PCでやればいいじゃん。
0122デフォルトの名無しさん
2006/06/05(月) 21:18:45ttp://www.4gamer.net/news/image/2004.07/20040717153840_0big.html
いくら最新PCでもこれは”アッセンブル”できんだろ
まずはマニュピレータry
0123デフォルトの名無しさん
2006/06/05(月) 21:20:460124デフォルトの名無しさん
2006/06/05(月) 21:23:18ただ、メカの製作はハードウエアであり、ソフトウエアではないが。
0125デフォルトの名無しさん
2006/06/05(月) 21:25:520126デフォルトの名無しさん
2006/06/05(月) 21:28:53今だと PLD とか FPGA がそれにあたるのかな。
0127デフォルトの名無しさん
2006/06/05(月) 21:38:45プログラミングができる「PC」とは違うものなのかな。
あ、でも分岐命令はサポートしてる?
0128デフォルトの名無しさん
2006/06/05(月) 22:59:11電卓とは違う。どう考えても卓上には乗らない。(大きさと重さの面で)
そもそも、現在使われているCPUとは根っから構造が違う。
0129デフォルトの名無しさん
2006/06/05(月) 23:05:04構造がどう違うのか教えてくれ。
0130デフォルトの名無しさん
2006/06/05(月) 23:05:27それしか出来ないというか・・・
0131デフォルトの名無しさん
2006/06/05(月) 23:08:19今のC言語とかで書くとどんな処理だったんだろう。
0132デフォルトの名無しさん
2006/06/05(月) 23:11:190133デフォルトの名無しさん
2006/06/05(月) 23:14:300134デフォルトの名無しさん
2006/06/05(月) 23:16:450135デフォルトの名無しさん
2006/06/05(月) 23:17:360136デフォルトの名無しさん
2006/06/06(火) 01:26:240137128
2006/06/06(火) 01:43:11現在のCPUを始めとする演算システムのほとんどは2進法を用いて計算する。
ENIACは10進数で演算するため、2進数に比べてとても難しい回路になる。
あとは、メモリの保存方式の違いとか。
0138デフォルトの名無しさん
2006/06/06(火) 01:54:13CALL TIME
DI
HLT
0139デフォルトの名無しさん
2006/06/06(火) 02:04:31学校の課題にしても今時せめてZ80互換くらいにしろよと言いたいが。
0140デフォルトの名無しさん
2006/06/06(火) 02:18:330141デフォルトの名無しさん
2006/06/06(火) 07:37:15FPGA
0142デフォルトの名無しさん
2006/06/06(火) 08:21:26>>126
0143デフォルトの名無しさん
2006/06/06(火) 10:11:20ちょっと違うんじゃないか?
0144デフォルトの名無しさん
2006/06/06(火) 10:12:270145デフォルトの名無しさん
2006/06/06(火) 10:21:58学習用マイコンボードは何故か8085な奴が多いのですよ。
TK-85もどきとか。
0146デフォルトの名無しさん
2006/06/07(水) 00:14:180147デフォルトの名無しさん
2006/06/11(日) 08:48:29http://www.microsoft.com/downloads/details.aspx?familyid=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en
The Microsoft Macro Assembler 8.0 (MASM) is a tool that consumes
x86 assembly language programs and generates corresponding binaries.
File Name:MASMsetup.EXE
Date Published:6/7/2006
Download Size:311 KB
0148デフォルトの名無しさん
2006/06/11(日) 11:39:38Supported Operating Systems: Windows 2000 Service Pack 3; Windows Server 2003; Windows XP Service Pack 2
Required Software:
Visual C++ 2005 Express Edition
Disk space requirements: 1 MB (x86)
0149デフォルトの名無しさん
2006/06/11(日) 14:18:19PLDとVHDLで妥協しないか
0150デフォルトの名無しさん
2006/06/11(日) 14:32:430151デフォルトの名無しさん
2006/06/16(金) 03:21:280152デフォルトの名無しさん
2006/06/16(金) 18:03:410153デフォルトの名無しさん
2006/06/21(水) 01:50:38アセンブラコードを書くことは可能でしょうか?
試しにGentooLinuxとcygwinで、同じ内容のCのソースコードを
アセンブラに落としてみました。
(gcc -S xxx.c -o xxx.s)
ちなみにどちらも同じPC(CPUはアスロンXP)です。
出力されたファイルを見ると、同じgccでも内容が結構違うみたいです。
お互いのxxx.sファイルをコンパイルすることもできません。
cygwinとはいえ、アセンブラレベルまでソース互換とすることは
対象外ってことでしょうか。
0154デフォルトの名無しさん
2006/06/21(水) 02:44:220155デフォルトの名無しさん
2006/06/21(水) 02:59:450156デフォルトの名無しさん
2006/06/21(水) 03:19:39もうちょっと勉強してこい
0157デフォルトの名無しさん
2006/06/21(水) 04:33:50ロード処理と命令処理とストア処理が並列に並ぶようにスケジュールしないと速くならないんだよね。
しかも演算ユニットが増えて、分岐予測しながらキャッシュしているなか、マルチスレッドのこともあるし、
その情報を元に、マイクロソフトは最適化してVCコンパイラ作ってるものだから、全然速度が追いつかないッス。
0158デフォルトの名無しさん
2006/06/21(水) 11:16:08× アセンブラを組むと
○ 8086〜386のイメージで命令を並べると
パイプライン構造を持つCPUに関してただ命令を順に並べると
パイプラインストールなど発生する可能性があるのが当たり前
0159デフォルトの名無しさん
2006/06/21(水) 16:48:430160デフォルトの名無しさん
2006/06/21(水) 17:22:03その程度の事も解らないバカだから、最適化すべき箇所と手法を間違えて
時間を無駄にした挙句、機械的な最適化のコンパイラなんぞに負けるわけだ。
0161デフォルトの名無しさん
2006/06/21(水) 17:31:130162デフォルトの名無しさん
2006/06/21(水) 21:08:290163デフォルトの名無しさん
2006/06/21(水) 21:25:240164デフォルトの名無しさん
2006/06/21(水) 21:37:030165デフォルトの名無しさん
2006/06/21(水) 23:23:52コンパイラに負けるやつは単に勉強不足。
0166デフォルトの名無しさん
2006/06/22(木) 02:38:21x86環境ではJavaScriptにすら劣る低速言語だけどな。
0167デフォルトの名無しさん
2006/06/22(木) 10:38:580168デフォルトの名無しさん
2006/06/22(木) 13:15:300169デフォルトの名無しさん
2006/06/23(金) 01:07:42( ´∀`)
0170デフォルトの名無しさん
2006/06/24(土) 00:21:05ばかだなオマエは
0171デフォルトの名無しさん
2006/06/24(土) 00:25:50しかし、自分がアセンブラを書いてもコンパイラに負けることを
自覚している点で、本当のばかではないと言える。
0172デフォルトの名無しさん
2006/06/24(土) 01:14:12Cで最適化したよりも格段に速いと思う。
最適化したCのプログラムにBUGが有ったときには、最悪な結果に
なりそうな気がする。
0173デフォルトの名無しさん
2006/06/24(土) 01:38:59故に、信頼性の低いプログラムになりやすい。はっきり言って仕様BUG
0174デフォルトの名無しさん
2006/06/24(土) 02:39:420175デフォルトの名無しさん
2006/06/24(土) 03:44:410176デフォルトの名無しさん
2006/06/24(土) 08:23:520177デフォルトの名無しさん
2006/06/24(土) 11:45:480178デフォルトの名無しさん
2006/06/24(土) 12:32:360179デフォルトの名無しさん
2006/06/24(土) 13:17:28と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>178
(_フ彡 /
0180デフォルトの名無しさん
2006/06/24(土) 14:08:200181デフォルトの名無しさん
2006/06/24(土) 15:44:58下らんこと話してないでおまいら働け
0182デフォルトの名無しさん
2006/06/24(土) 20:01:570183デフォルトの名無しさん
2006/06/24(土) 20:45:31試作品なら使いもしない周辺回路がごっそり入ってても問題ないが、量産品の場合はコスト優先の場合が多い。
俺はこんど、WEBサイトをアセンブラで書こうかと考えている。今はアパッチ使ってるが、サーバー含めてALLアセンブラ。
0184デフォルトの名無しさん
2006/06/24(土) 22:00:340185デフォルトの名無しさん
2006/06/25(日) 01:04:21ドンキホーテにでも成るつもり?
0186デフォルトの名無しさん
2006/06/25(日) 10:28:31なんのメリットも見出せないんだが?
ボトルネックは回線、次いでHDDアクセスか?
アセンブラで記述しても1%も高速化出来まい。
「WEBサイト」とか言ってる時点でネタだろうが、それにしても酷い。
0187デフォルトの名無しさん
2006/06/25(日) 10:37:23って言ってるから、ハード自作してファームウェアからアセンブラで書くんだよ
きっと。
0188デフォルトの名無しさん
2006/06/25(日) 12:53:220189デフォルトの名無しさん
2006/06/25(日) 13:01:59あれ中途半端だけどね
でもあそこまでやってれば立派だお
0190デフォルトの名無しさん
2006/06/25(日) 13:10:10回線は光の16IPに増強済み。メモリは2Gで極力メモリ上で動くようにはしてある。
ボトルネックはリクエストに対するアパッチの応答。
一秒当たり500とか1000のリクエストにはちょっと厳しいのでは?
まあ、アパッチの設定を弄って済む位のアクセスであれば「なんのメリットも見出せない」と言うのは真かもね。
0191あや
2006/06/25(日) 13:18:40今学校でMIPSのシミュレータを勉強してます★
それで、「N掛けるNの掛け算表表示プログラム」
を出力するプログラム(Nは入力して与える)を書けという課題を出されたのですが、
全くわかりません><
誰か助けてください!
先生がくれたメインルーチン部分は
0192あや
2006/06/25(日) 13:19:28#使用レジスタ $v0 - syscallパラメータ 及び 戻り値
# $a0 - syscallパラメータ 及び サブルーチンprintValue呼び出し用引数1
# $a1 - サブルーチンprintValue呼び出し用引数2
# $s0 - 掛け算用の変数1
# $s1 - 掛け算用の変数2
# $s2 - カウントダウンループ制御用変数、$s0と対で、$s0が1増えると$2が1減る
# $s3 - カウントダウンループ制御用変数、$s1と 対で、$s1が1増えると$3が1減る
# $s4 - いくつまで表を出力するかをいれておくための変数
# $t0からt4までをテンポラリレジスタとして利用
0193あや
2006/06/25(日) 13:20:44main: li $v0,5 #整数入力のためにシステムコール番号
syscall #5を$v0に格納
move $s4 $v0 #大きさを$s4に格納する
li $s0,1
move $s2,$s4 #外側の変数を初期化する
loop1:
li $s1,1
move $s3,$s4 #内側の変数を初期化する
loop2:
move $a0 $s0
move $a1 $s1
jal printValue #値を出力するサブルーチンを呼び出す
jal print SP
addi $s1,$s1,1 #掛ける数を増やす
addiu $s3,$s3,-1 #ループ変数を減らす
bne $s3,$zero,loop2 #ループ変数が0になるまでループする
jal printfCRLF #改行を出力する
addi $s0,$s0,1 #掛ける数を増やす
addiu $s2,$s2,-1 #ループ変数を減らす
bne $s2,$zero,loop1 #ループ変数が0になるまでループする
li $v0,10
syscall #プログラム終了
です。誰かわかる人いませんか?
0194マイク ◆yrBrqfF1Ew
2006/06/25(日) 14:12:45>誰か助けてください!
俺もよくわからないから
今度デートしようよ。
0195あや
2006/06/25(日) 14:25:130196デフォルトの名無しさん
2006/06/25(日) 14:25:54綾小路源五郎
0197あや
2006/06/25(日) 15:12:20パソコンに関してはすごいのかと思ったらぜんぜんじゃんか!
0198マイク ◆yrBrqfF1Ew
2006/06/25(日) 15:16:01#printSPはスペース表示
#printCRLFは改行表示
.data
SPACE: .asciiz " "
CRLF: .asciiz "\r\n"
.text
printValue:
mult $t0, $a0, $a1
li $v0, 1
move $a0 $t0
syscall
jr $ra
printSP:
li $v0, 4
la $a0, SPACE
syscall
jr $ra
printCRLF:
li $v0, 4
la $a0, CRLF
syscall
jr $ra
0199デフォルトの名無しさん
2006/06/25(日) 15:37:210200デフォルトの名無しさん
2006/06/25(日) 16:16:58馬鹿だなあ
お前のようなネカマに使われたくないだけだよ(w
0201あや
2006/06/25(日) 19:30:05ありがとうございます♡→ܫ←♡
まだ動かないですけど、かなり助かりました!
mult $t0, $a0, $a1
^ のところでsyntax errorが出るんですよね〜↓
なんでだろう?
でもマイクさんすごいです!!
0202デフォルトの名無しさん
2006/06/25(日) 19:53:520203デフォルトの名無しさん
2006/06/25(日) 19:59:27ܫ
♡ ♡
ܫ
♡
0204あや
2006/06/25(日) 20:32:540205デフォルトの名無しさん
2006/06/25(日) 21:06:240206デフォルトの名無しさん
2006/06/25(日) 21:30:25お前は俺の言っている意味が全然解ってない。
メモリアクセス>>(超えられない壁)>>HDDアクセス>>>回線
だと言っている。
リクエスト数が多いなら、IOアクセス量の問題だから
なおの事アセンブラ化での高速化では解決しない。
更に言うなら、そんなシステムをデバッグの困難なアセンブラで書き起す事自体がネタとしか思えない。
0207マイク ◆yrBrqfF1Ew
2006/06/25(日) 21:43:13じゃmultをmulに変えてみてくれ。
>でもマイクさんすごいです!!
感謝の気持ちは電話番号でのみ受け取るよ。
0208デフォルトの名無しさん
2006/06/25(日) 23:53:31とりあえず今は全部CMPにしていますが…
0209デフォルトの名無しさん
2006/06/26(月) 00:07:200210デフォルトの名無しさん
2006/06/26(月) 02:49:000211デフォルトの名無しさん
2006/06/26(月) 10:32:540212デフォルトの名無しさん
2006/06/26(月) 14:23:35206は>>190に書かれている日本語を理解してない。
>ボトルネックはリクエストに対するアパッチの応答。
と書いてある。
なぜ
>リクエスト数が多いなら、IOアクセス量の問題だから
と言う話になるのだ?
206はそもそもWEBサーバーを動かした事が無いのか?
>デバッグの困難なアセンブラで書き起す事
デバッグが困難なのはつくりが悪いからであってアセンブラのせいじゃ無い。
0213デフォルトの名無しさん
2006/06/26(月) 15:04:22具体的に何処を高速化したいのかわからん。
マルチスレッドのリアルタイム性ならOS書き換えるかCPU変えるor増やすしかないし、
「アパッチの作りが悪い」と言いたいだけなら該当箇所修正しる。
今主流のシステムでアセンブラ化で高速化出来るのはメモリアクセスの効率と演算の最適化で、
ランダムアクセスと転送が主になるwebサーバは高速化できない。
それと、もう余りにもアホらしくて突っ込む気も失せ気味だが、
高級言語と低級言語の開発効率とメンテナンス性の違いが理解出来てないなら
ホントにプログラマやめたほうがええよ。
0214デフォルトの名無しさん
2006/06/26(月) 15:21:59それとも負荷分散装置でも作ってるのか?
0215デフォルトの名無しさん
2006/06/26(月) 15:53:57昼の休み時間や夕方にアクセスが集中する。平均的には大したリクエスト数ではないのだけど>>190に
書いたようにピークがとにかくすごい。ピークに合わせてマシン増やすのは誰でも出来るが
専用の最適化されたWEBサーバーを立てれば、多分マシン1台で10サイトくらいは余裕で行ける見積もりなので
他社との差別化が出来る。中小企業にはブレードサーバーなんて置けない所もあるのだよ。
アパッチのつくりが悪い訳じゃ無い。高機能すぎて不要な機能の為に速度が犠牲になってるだけ。
0216デフォルトの名無しさん
2006/06/26(月) 15:56:470217デフォルトの名無しさん
2006/06/26(月) 16:00:50学生乙
0218デフォルトの名無しさん
2006/06/26(月) 16:48:54知ったかぶり乙
0219デフォルトの名無しさん
2006/06/26(月) 17:22:22日本語勉強汁!
0220デフォルトの名無しさん
2006/06/26(月) 19:48:28仕事でやるならメンテする人間の冥福を祈る。
0221デフォルトの名無しさん
2006/06/26(月) 20:00:55「応答」が具体的だと思ってるならそれは間違い。
0222デフォルトの名無しさん
2006/06/26(月) 20:52:09そのためにホスティングサービスやASPって物があると思うんだが
ピークの合わないサイトを組み合わせて手の空いた時間は別のサイトに処理能力を廻す見たいな感じで
そこら辺はデータセンタ/ASP運用の肝って所だな
あとは中小企業でブレードサーバ置くなんて考えがそもそもおかしい
それをあえて自前でやろうって考えは別に止める気は無いが
まずはWebProg板へ行ってぼろ糞に叩かれて来い
0223デフォルトの名無しさん
2006/06/26(月) 23:32:03WEBアプリケーションをアセンブラで作ろうという奴の気がしれない。
0224デフォルトの名無しさん
2006/06/27(火) 02:13:49さーて不思議な符合ですね。
0225デフォルトの名無しさん
2006/06/27(火) 04:36:340226デフォルトの名無しさん
2006/06/27(火) 05:15:320227デフォルトの名無しさん
2006/06/27(火) 05:20:530228デフォルトの名無しさん
2006/06/27(火) 05:47:340229デフォルトの名無しさん
2006/06/27(火) 12:35:430230デフォルトの名無しさん
2006/06/27(火) 12:46:050231デフォルトの名無しさん
2006/06/27(火) 12:46:070232デフォルトの名無しさん
2006/06/27(火) 13:24:23>1.流出したお客様情報の内容
> 2003年12月18日までにインターネット接続サービス「DION」にご契約
> されたお客様に関する同年同日時点の以下の情報
> (1)お名前、ご住所、ご連絡先電話番号 : 3,996,789名様分
> (2)上記(1)のうち、性別、生年月日、ご連絡先メールアドレスも含ま
> れていたもの
> ・性別 : 26,493名様分
> ・生年月日 : 98,150名様分
> ・ご連絡先メールアドレス : 447,175名様分
>
> ■ご契約のDIONメールアドレス(※)、パスワード、口座番号等の信用
> 情報、通信記録は流出していません。
自鯖で済む物を、貧弱でセキュリティ大甘の連鯖使うなんて俺には出来ん。
7人。
0233デフォルトの名無しさん
2006/06/27(火) 20:02:43ドコモやボダのゲイトウェイはかなり低速(auのは知らん)。
なので、多くの携帯が1台のサーバにアクセスしてくると、プロトコルスタックや
サーバアプリ(←これは作りにもよるが、それなりに高速だとして)の性能限界に
達する前にTCPコネクション数(多くの場合3万弱くらいか)を使い切ってしまう
という事態が起きる。
ので、ZenでOSを分けるとかするのでなければ、十分高速であればそれ以上
カリカリにチューニングしてもあまり意味は無い。
・・・それは別として自分で作るくらいなら tux とか IIS の方が良いような気もする。
0234デフォルトの名無しさん
2006/06/27(火) 22:40:24本気でパフォーマンス稼ぐつもりならFPGAで2層以上をオフロード
つーかL5ロードバランサ使えww
0235デフォルトの名無しさん
2006/06/28(水) 18:02:23ASICでいいよ
0236デフォルトの名無しさん
2006/06/28(水) 21:25:050237デフォルトの名無しさん
2006/06/28(水) 22:43:030238デフォルトの名無しさん
2006/06/29(木) 01:08:27アドバイスありがとうございます。
ページキャッシュが使えない事もあり、現状では300アクセス/秒程度しかさばけないのですが
この時のCPU負荷が100パーセント近いので、まずはIOやTCPコネクションよりもこちらを改善する予定です。
とりあえずCで簡単なサーバーを書いて動かせばCPU負荷が極端に減り、10サイト位はいけそうな雰囲気はあります。
ZenはTCPコネクションの問題回避では無く、複数のサイトを動かす為にメンテのしやすさから導入したかったのですが
zen1.1ではアパッチはまともに動かなかった気がします。最新版では大丈夫なのでしょうか?
>>234
TCPスタック迄はとりあえず弄るつもりは無いです。
HDLで実現できれば面白いですね。制限付きのNTPサーバーなんかは有るみたいで、触発はされたのですが実力がorz
0239デフォルトの名無しさん
2006/06/29(木) 08:36:55以降通常運営でお送りいたします。
0240デフォルトの名無しさん
2006/06/29(木) 12:01:140241デフォルトの名無しさん
2006/06/29(木) 12:37:06誰かボスケテ
start:
add $1, $0, $0 ; $1: address of X
addi $2, $0, 16 ; $2: counter = 16
add $3, $0, $0 ; $3: product Z
lw $4, 0($1) ; $4: X, load X to $4
addi $1, $1, 4 ; address + 4
...
loop:
...
add $3, $3, $4 ; Z = Z + X
shift:
...
addi $2, $2, -1 ; counter--
bne $2, $0, loop ; go to loop if counter != 0
sw $3, 0($1) ; store Z
finish: j finish ; dead loop
0242デフォルトの名無しさん
2006/06/29(木) 12:53:05一度2進数の掛け算を筆算で書いてみな
0243デフォルトの名無しさん
2006/06/29(木) 18:16:4913(10) x 10(10) = 130(10)
1101(2) = 13(10)
x 1010(2) = 10(10)
----------------
11010(2)
1101000(2)
----------------
10000010(2) = 130(10)
0244デフォルトの名無しさん
2006/07/02(日) 11:15:33C言語の
for(t=1;t<9;t++)
をアセンブラで書くとどうなるのでしょうか?
0245デフォルトの名無しさん
2006/07/02(日) 11:53:02mov eax,1
L1:
cmp eax,8
jg L2
inc eax
jmp L1
L2:
0246デフォルトの名無しさん
2006/07/02(日) 12:10:27mov cx,8
a:
inc ax
loop a
0247デフォルトの名無しさん
2006/07/02(日) 12:45:17XOR GR7,GR7
ST GR7,t
JUMP L02
L01 ・・・
・・・
LD GR7,t
LAD GR7,1,GR7
ST GR7,t
L02 LAD GR1,9
CPA GR7,GR1
JMI L01
・・・
0248デフォルトの名無しさん
2006/07/02(日) 12:49:08ありがとうございます
eaxというのは変数と解釈して良いのでしょうか?
あと各命令は
eaxを1とおく
<L1>
8と比較してeaxが以上ならば
<L2>へ飛ぶ
eaxが小さければ
<L1>を実行する
<L2>
というかんじでしょうか
0249デフォルトの名無しさん
2006/07/02(日) 13:08:250250デフォルトの名無しさん
2006/07/02(日) 13:11:10おーい。
だいたい、「アセンブラで書け」というなら、プロセッサ書けよ。
0251デフォルトの名無しさん
2006/07/02(日) 13:14:220252デフォルトの名無しさん
2006/07/02(日) 13:15:59× XOR GR7,GR7
○ LAD GR7,1
だな。
0253デフォルトの名無しさん
2006/07/02(日) 13:54:03組み込みCPU関係は電気・電子板で聞いたほうがいいかも。
0254デフォルトの名無しさん
2006/07/02(日) 14:15:000255デフォルトの名無しさん
2006/07/03(月) 03:47:29>>244-249
なんでCPU指定されてないのに会話が続いてたんだろう
0256デフォルトの名無しさん
2006/07/03(月) 05:03:240257デフォルトの名無しさん
2006/07/03(月) 06:11:590258デフォルトの名無しさん
2006/07/03(月) 22:49:18どれを使ってますか
0259デフォルトの名無しさん
2006/07/03(月) 22:50:430260デフォルトの名無しさん
2006/07/03(月) 22:55:030261デフォルトの名無しさん
2006/07/03(月) 22:56:420262デフォルトの名無しさん
2006/07/03(月) 22:59:010263デフォルトの名無しさん
2006/07/04(火) 00:19:440264デフォルトの名無しさん
2006/07/04(火) 02:21:01休むな。
0265デフォルトの名無しさん
2006/07/04(火) 03:16:08中間ファイル作成→ALinkでコンパイル
この手間を無くしたい。
MASMって使用者が多いと思うけど、上記項目を一括して出来るの?
出来るなら乗り換えようかな。
0266デフォルトの名無しさん
2006/07/04(火) 03:48:31batファイルを作ればいいような。
0267デフォルトの名無しさん
2006/07/04(火) 07:18:520268デフォルトの名無しさん
2006/07/04(火) 08:39:59つーか make でいいよな?
0269デフォルトの名無しさん
2006/07/04(火) 09:39:11Win環境に移ってからこっちインラインアセンブラしか書かなくなったなぁ。
0270デフォルトの名無しさん
2006/07/04(火) 11:41:38なのでbat
・・・フルアセンブリ・1ファイル完結の話だよな?
そうじゃないなら俺もMakefile書くが
0271デフォルトの名無しさん
2006/07/04(火) 17:40:39どうせ全ビルドでも一瞬で終わるんだ
数行書くごとに全ビルドでもまったく苦にならんw
0272デフォルトの名無しさん
2006/07/04(火) 19:57:12めどいならgccでリンク。
それはそうと、nasmのセクション宣言で共有属性をつけることは出来ない?
とりあえずFMOで共有メモリを実現している。
gasなら
.section .sdata,"rws"
って書けば共有属性が付くけど。
0273デフォルトの名無しさん
2006/07/06(木) 00:06:20タヂケkt
SuperH RISC engine C/C++ Compiler (V.8.00.05)
EX).
Address ML Assembler
00007E66 D23D MOV.L @(H'00F4:8,PC),R2
以下考察
Inst Dest Displacement
b1101 0010 0011 1101
h d 2 3 d
構文のDisplacemnetは下位2bit分(1/4としている)を省略し記述になっているようだ
Destinationは簡単にR2を2としているだけ
MOV.L @(disp,PC),Rnの解説(仕様書抜粋)
ディスプレースメントは8bitまで(H'1-FF)
LONG WORD 拡張×4 最大:b1111111100:0x1020
WORD 拡張×2 最大:b0111111110:0x 510
としている よってDisplacementはH'03D0
PCは下位2bitをマスクする
H'00007E66 & H'FFFFFFFC よってH'7E64
R2 = PC + Displacement = H'8234となる?
しかし実際は
シムではR2 = H'00003774 ドボヂテ(TロT)
0274デフォルトの名無しさん
2006/07/06(木) 01:32:32Displacementは、普通±を考慮すると思うのだが。
8bitのDisplacementだと、bit7が1だと「−」になるとか…。
SHは触ったことが無いので間違っていたらゴメン。
0275デフォルトの名無しさん
2006/07/06(木) 02:33:040276デフォルトの名無しさん
2006/07/06(木) 02:49:31>b1111111100:0x1020
>b0111111110:0x 510
ってのもおかしいし。
R2=Read_Long( (0x00007E66 & 0xFFFFFFFC) + (0x3D<<2) ) = Read_Long( 0x7E64+0xF4 ) = Read_Long(0x7F58)
アドレス0x7F58にあるLong値がR2に入る。
ttp://japan.renesas.com/ から「SuperH RISC engine ファミリ」>「ドキュメント」で
日本語のソフトウェアマニュアルにたどり着けるから、それ読むといいよ。
0277デフォルトの名無しさん
2006/07/06(木) 04:11:21帰れ
0278デフォルトの名無しさん
2006/07/06(木) 11:37:38addi, andi, ori, sll, srl, sra
これだけの命令で16or32ビット同士の数字の掛け算のプログラムを作れますか?
0279278
2006/07/06(木) 11:59:57multiplication.c: Unsigned 16-bit x 16-bit
*/
main(){
int x = 0x0000c9ae;
int y = 0x0000f6e5;
int z = mul(x, y);
printf("%08x * %08x = %08x\n", x, y, z);
}
int mul(int x, int y){
int a, b, c;
int i; // counter
a = x;
b = y;
c = 0; // production
for(i = 0; i < 16; i++){ // for 16 bits
if((b & 1) == 1){ // LSB of b is 1
c += a; // c = c + a
}
a = a << 1; // shift a 1-bit left
b = b >> 1; // shift b 1-bit right
}
return(c); // return production
}
ちなみにC言語で書くとこうなるらしいです
0280デフォルトの名無しさん
2006/07/06(木) 12:19:20メモリのリードライト、条件ジャンプ、あと加算?
そういやBrainFuckが何でもできるんだったな。
0281デフォルトの名無しさん
2006/07/06(木) 12:33:54多分
定数
1 加算
0 判定
間接参照
程度で大丈夫じゃないかな?
0282デフォルトの名無しさん
2006/07/06(木) 12:45:220283デフォルトの名無しさん
2006/07/06(木) 13:17:010284デフォルトの名無しさん
2006/07/06(木) 13:20:26結果をレジスタとアドレスにストアする。
これでどんなプログラムでも書けるらしい。
実用的にはPCやレジスタにもアドレスを付け、
1番地と2番地に書くと3番地に加算結果、4番地に減算結果、etc
というハードにすると、MOVE命令だけでOK
1命令CPUのすごいところは、命令デコーダが不要なことだ!
0285デフォルトの名無しさん
2006/07/06(木) 14:33:41その分コーディングで効率を上げないと無駄が増える
0286デフォルトの名無しさん
2006/07/06(木) 15:47:42シフト命令の他に回転命令が無いと面倒臭くなるな。
0287デフォルトの名無しさん
2006/07/06(木) 17:53:21という最低限な命令セットの話で。
0288デフォルトの名無しさん
2006/07/06(木) 18:00:35まあ、x86とかでもアセンブラレベルでの命令の種類はそう多くはないんだが。
0289デフォルトの名無しさん
2006/07/06(木) 19:28:360290デフォルトの名無しさん
2006/07/06(木) 19:52:240291デフォルトの名無しさん
2006/07/06(木) 19:59:05HALTが無いとチューリングマシンとして成り立たないのでは?
0292デフォルトの名無しさん
2006/07/06(木) 21:39:12>>273
LONG WORD 拡張×4 最大:b1111111100:1020
WORD 拡張×2 最大:b0111111110: 510
正しくは上記10進です。うっかりしてました。
マニュアル確認しました。
MOV.L @(H'00F4:8,PC),R2 PC:0x00007E66
R2=Read_Long( (0x00007E66 & 0xFFFFFFFC) + (0xF4<<2) ) = Read_Long( 0x7E64+0x3D0 ) = Read_Long(0x8234)
マニュアルの形式に沿って計算したが、シミュレータではR2=0x00003774と出力している。
そのあとには"JSR @R2"として関数を呼び出している。シミュレータでの動作は問題ないので手計算が間違っている!間違いはどこなんですかね?
0293デフォルトの名無しさん
2006/07/06(木) 22:19:23それが世の中HALTが無いCPUもあったりするんですよ。
0294デフォルトの名無しさん
2006/07/06(木) 22:23:11ちゃんとマニュアル読んでるのか?
H'8234番地の中身確認してみれ。
0295291
2006/07/06(木) 23:54:15ええと、少し調べたところ、チューリングマシンはHALTが無くてもいいそうな。
無限ループに陥ったと確定した時点で「停止」扱いでOKらしい。
すまん。
0296デフォルトの名無しさん
2006/07/07(金) 00:44:090x8234に目的の値が確保されてるってこと?アドレスから値を持ち込むにはMOV.L @R2,Rnが必要じゃないの?
マニュアル(RJJJ09B0228-0700,Rev7.00 P6-59)には計算通りに導けるが、MOV.L @(H'00F4:8,PC),R2 PC:0x00007E66のシミュレーション結果がR2 = 0x00003774となるのかがどうにも
0297デフォルトの名無しさん
2006/07/07(金) 01:39:000298デフォルトの名無しさん
2006/07/07(金) 11:46:21まとまった命令セットだったと思う。
0299デフォルトの名無しさん
2006/07/07(金) 23:13:39UNIXベンダのプロセッサのアセンブリプログラムは無いポ?
0300デフォルトの名無しさん
2006/07/09(日) 01:01:240301デフォルトの名無しさん
2006/07/09(日) 09:41:58わかりません。
0302デフォルトの名無しさん
2006/07/09(日) 10:23:20黒箱かiMac買えば?
0303デフォルトの名無しさん
2006/07/09(日) 10:33:43Macならある。
0304デフォルトの名無しさん
2006/07/09(日) 11:26:31ヒマだから反応しておく。何がわからないんだ。
命令そのものか、又は命令の使い方か?
0305デフォルトの名無しさん
2006/07/09(日) 12:12:57どっちも。
0306デフォルトの名無しさん
2006/07/09(日) 13:09:30「玄箱」と「PowerPC」でぐぐればPowerPCの解説HPが見つかるかもしれない。
Macでぐぐってもアセンブラを解説したHPは出て来ない気がする。
しかし、PowerPCのアセンブラも知らないで、何を作るつもりなのか?
その辺を明確にしておかないと、上達は有り得ないと思う。
0307デフォルトの名無しさん
2006/07/10(月) 23:28:11激励したつもりだったんだけど…orz
0308デフォルトの名無しさん
2006/07/10(月) 23:30:47>>306では無くて>>305です。
連続書込み、スマソ
0309デフォルトの名無しさん
2006/07/13(木) 19:48:190310デフォルトの名無しさん
2006/07/15(土) 12:18:130311デフォルトの名無しさん
2006/07/15(土) 14:10:510312デフォルトの名無しさん
2006/07/15(土) 14:34:180313デフォルトの名無しさん
2006/07/16(日) 02:03:020314デフォルトの名無しさん
2006/07/16(日) 02:04:170315デフォルトの名無しさん
2006/07/16(日) 08:21:590316デフォルトの名無しさん
2006/07/16(日) 09:17:490317デフォルトの名無しさん
2006/07/17(月) 12:35:35Xeonで動かそうと思って
double func(double *sx, double *cx, double *sy, double *cy, int xe, int ye)
{
double sum = 0;
for (int ix = 0; ix < xe; ix++) {
double sx1 = sx[ix];
double cx1 = cx[ix];
for (int iy = 0; iy < ye; iy++) {
double sy1 = sy[iy];
double cy1 = cy[iy];
sum += (cx1 * cy1 - sx1 * sy1) + (cx1 * sy1 + sx1 * cy1);
}
}
return sum;
}
こげな関数のループ内部を
asm volatile(
"
movsd %1, %%xmm0; movhpd %3, %%xmm0; movapd %%xmm0, %%xmm2
movsd %2, %%xmm1; movhpd %4, %%xmm1; movapd %%xmm1, %%xmm3
mulpd %%xmm1, %%xmm0; movhlps %%xmm0, %%xmm1; subsd %%xmm1, %%xmm0
mulpd %%xmm3, %%xmm2; movhlps %%xmm2, %%xmm3; addsd %%xmm3, %%xmm2
addsd %0, %%xmm0; addsd %%xmm0, %%xmm2; movsd %%xmm2, %0" :
"=g" (sum) :
"g" (cx[ix]), "g" (cy[iy]), "g" (sx[ix]), "g" (sy[iy]) :
"%xmm0", "%xmm1", "%xmm2", "%xmm3"
);
こう書いてみたんだが、もっと効率上げられないもんかな。
ループ部はiccの各種最適化に頼りたいから残しておきたいんだが。
0318デフォルトの名無しさん
2006/07/17(月) 20:40:02素直に2要素ずつやったらいいんでないの。
> ループ部はiccの各種最適化に頼りたいから
とはどういうこと?
この処理なら関数全部をインラインアセンブラで
書くのが、速度も出るし手っ取り早いと思うが。
0319デフォルトの名無しさん
2006/07/17(月) 20:41:320320デフォルトの名無しさん
2006/07/17(月) 20:53:01ポインタなんか使ったら余計な演算入りまくりで遅いし。まあ、最近のCPUは掛け算が早くなったから大分良くなったが。
0321デフォルトの名無しさん
2006/07/17(月) 20:57:07コンパイラがサポートしてるならintrinsics関数で書く。
0322デフォルトの名無しさん
2006/07/17(月) 21:21:13ヒント
for(int iy = 0; iy < ye; iy++){
sumA+=cx1*(cy1+sy1);
sumB+=sx1*(cy1-sy1);
}
sum+=sumA+sumB;
0323デフォルトの名無しさん
2006/07/17(月) 22:12:57まだ最適化できる。
ヒント
for(int iy = 0; iy < ye; iy++){
sumA += cy1;
sumB += sy1;
}
sum += cx1 * (sumA+sumB);
sum += sx1 * (sumA-sumB);
0324323
2006/07/17(月) 22:19:41あ、自分で書いといて今気づいた。
この書き方だとループも外に括りだせるからO(n)で計算できる。
もとのコードだとO(n^2)だから圧倒的に性能が向上する。
というかアセンブラに手を出す前に論理レベルで最適化しろという典型例ですな。
まぁ、このスレで言うのは無粋だけどw
0325デフォルトの名無しさん
2006/07/17(月) 22:30:29for(int iy = 0; iy < ye; iy++){
sumA += cy1;
sumB += sy1;
}
for(int ix = 0; ix < xe; ix++){
sumC += cx1;
sumD += sx1;
}
sum = sumC * (sumA+sumB) + sumD * (sumA-sumB);
ま、こっちはオーダーレベルの最適化にならないがな。
0326317
2006/07/17(月) 23:01:47#あ、icc使用って書くの忘れてた。
そもそも、「コンパイラよりもアセンブラの方が絶対速い。ループ内部だけでもアセンブリ化しろ」と
主張する頭の固い人たちを納得させられればいいので、ループの最適化には手を出さずに済ませたいわけです。
で、「xmmレジスタは並列演算できるのだから絶対速い」というヒント(という名の指示)の元、
>317のようなコードを書いてみたわけですが。
処がこの程度のアセンブリ化ではC部分とのI/Fに時間を取られるようで効率が上がっていません。
実際元のソースをiccでコンパイルするとループをアンロールして4回分ずつ回すようです。
勿論SSE命令も使うし並列化オプションを指定すれば並列化してくれるし。
なので、このまま「保守性と開発工数を考えればコンパイラに任せたほうが無難」という報告をしてもいいのですが、
念のため(と技術的興味から)アセンブリ部分で無駄がないかを聞いてみたかったのです。
>>318
恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。
>>320
正直私には、gcc辺りのコードを書くのがやっと。iccに勝てるコードを書けるとは思いません。
#この場合、Cの単純な翻訳と言う意味で。
>>321
iccのマニュアルをさっと読んだ限りでは見た記憶がないのですが、調べてみます。
>>322-325
えーと、最終的なコードはもそっと複雑になるのでロジックレベルの最適化は>317で止めた次第です。
#後出しすんません。
ってことで、何かあれば引き続きお願いします。
#FPU命令とSSE命令って組み合わせるとどうなるのかなぁ。こればっかりはニモニック表にらめっこしてもわからん……
0327デフォルトの名無しさん
2006/07/18(火) 07:13:29インラインアセンブラの内部はコンパイラの最適化は効かない。
movsdやmovhlpsで1要素ずつ移動してるのが無駄だ。
>えーと、最終的なコードはもそっと複雑になるので
それがどんなコードか書いてくれないとレスのしようがない。
>>324のような最適化が最も重要なのに、それを検討する前から
アセンブラの書き方を考えるのはちょっとおかしい。
>FPU命令とSSE命令って組み合わせるとどうなるのかなぁ。
それは面白いのでレスをしたいところだが、
どんな処理かわからんことには・・・。
0328デフォルトの名無しさん
2006/07/18(火) 07:27:13>恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。
単純に、自前で書いてもコンパイラに任せても同じ程度のコードだと言っているだけだな。
アンロールしないと速度でないのは承知しているみたいだし。
>えーと、最終的なコードはもそっと複雑になるので
多少複雑になっても本筋は変わらんだろ。要はダメ出ししたいだけみたいだから。
>326はとっとと諦めてダメレポート書けばいいんでね。
0329デフォルトの名無しさん
2006/07/18(火) 07:39:41>iccに勝てるコードを書けるとは思いません。
結果は出てるんじゃんw
アセンブラで速度を問題にする場合はある程度センスが要求されますので、あきらめた方が良いかとおもわれ
0330デフォルトの名無しさん
2006/07/22(土) 18:26:54大量のスパムURLでログが流されまくり。
0331デフォルトの名無しさん
2006/07/29(土) 20:09:220332デフォルトの名無しさん
2006/07/29(土) 21:02:140333デフォルトの名無しさん
2006/07/29(土) 23:47:36MIPSでクイックソートを作らないといかんのだが分からん・・・
言語はMIPSベースの16ビットマイクロプロセッサ用
で、基本MIPSと同じです。
違う点、MULT DIV命令が無い
即値ロードはlhi $a,label で上位1バイト lliで下位1バイト読み出すものとする。
詳しくは、
ttp://72.14.207.104/search?q=cache:S58cP_y64_MJ:www.giga.it.okayama-u.ac.jp/~nobuya/jikken/02/p16.pdf+lli+lhi&hl=ja&ct=clnk&cd=3&lr=lang_ja
ソートされる要素の数は0x4000番地に
要素は0x4000から以下2バイト刻みで入っているものとする。
0334デフォルトの名無しさん
2006/07/29(土) 23:58:440335デフォルトの名無しさん
2006/07/30(日) 00:09:36それは、Cでは書けるんですが、
アセンブラになるとちょっとお手上げ状態です。
あとレジスタが8個しか使えない制限つきだったりします・・・。
0336デフォルトの名無しさん
2006/07/30(日) 00:30:28文句があるならベルサイユへいらっしゃい!
0337デフォルトの名無しさん
2006/07/30(日) 00:45:21データが1026個はソートできる仕様との事なので
あんまり深いスタックは惚れません・・・
0338デフォルトの名無しさん
2006/07/30(日) 00:52:590339デフォルトの名無しさん
2006/07/30(日) 00:58:05スタックの使い方決めて
レジスタを割り付けて
手動で1行ずつ変換
0340デフォルトの名無しさん
2006/07/30(日) 09:58:320341デフォルトの名無しさん
2006/07/30(日) 15:43:04call qword ptr mem
だったかな?
よく覚えてないけど。
0342デフォルトの名無しさん
2006/07/30(日) 20:36:46call far [edx]
call far [0xdeadbeaf]
>>341
call fword ptr MEM
0343デフォルトの名無しさん
2006/07/30(日) 23:43:52みなさんも気をつけてください!
0344デフォルトの名無しさん
2006/07/31(月) 00:27:27君もう来なくていいから
0345デフォルトの名無しさん
2006/07/31(月) 12:43:270346デフォルトの名無しさん
2006/08/03(木) 18:42:07mov eax,c1
mov ebx,delx
mul ebx
mov x[n],eax
となるのではなかろうかと思うのですが、正しいですか。
これをVC++6.0でインラインアセンブラにしようとしたら、同じサイズのオペランドのが
必要とかでエラーでした。早くアセンブラを理解できるようになりたい。
0347デフォルトの名無しさん
2006/08/03(木) 18:50:360348デフォルトの名無しさん
2006/08/04(金) 00:52:54非常に基本的なことなんだが、まず x, n, c1, delx 全ての変数の型が不明。
仮に全てunsigned longだったとして、
mov eax,c1
mul delx
で十分。
最後に x[n] という表記はナイ。
0349デフォルトの名無しさん
2006/08/04(金) 01:20:55「アセンブリの教科書」で勉強はじめたんだけど
いきなりつまづいたの。P54のフラグレジスタの説明で
mov al,7F
inc al
mov bl,0
sub bl,80
AX=0080 BX=0080
OV UP EI NG NZ NA PO CY
~~ ~~
符号付き演算でAX=0080になるのはよく分かる。
(1000 0000)の1は符号ビットで
127+(-128)=-1にするため
(1000 0000)は-128、(1111 1111)は-1と決められてる。
inc alで符号付き演算の桁上がりが生じたから
オーバーフローフラグはOVとなる。
一方、符号無しの場合のsub bl,80では
(0000 0000)-(1000 0000)=(1000 0000)
つまり0-128=128の0は256扱いになってるから、
これってつまり(0000 0000)ではなしに桁上がりで
(1 0000 0000)として扱われたってこと?
演算結果の桁上がりが生じてCYってのはそーいうこと?
一方が符号付きで他方が符号無しと判断されるのはなぜ?
0350デフォルトの名無しさん
2006/08/04(金) 01:21:570351デフォルトの名無しさん
2006/08/04(金) 01:35:55一般的に減算のあとのキャリーフラグは、ボローフラグの意味となる。
つまり、繰り上がりが生じたのではなく繰り下がりが生じたと言う意味。
0352デフォルトの名無しさん
2006/08/04(金) 01:47:10あっ、なるほど。そのほうが意味的に納得です。
mov al,7F
inc al
が符号付きとして処理され
mov bl,0
sub bl,80
が符号なしと処理された
扱いの違いの理由は何故でしょう?
もしかしてalを使うと符号付きの演算扱いになるとか、でしょうか?
0353デフォルトの名無しさん
2006/08/04(金) 09:26:36これはincとsubの違いと見当をつけて先へ進むことにします。
0354デフォルトの名無しさん
2006/08/04(金) 10:43:51フラグリファレンスによると、x86系CPUではinc/decではCFは操作されない。
これは、8bitCPU時代からの伝統でキャリーをレジスタ(orメモリ)間で伝播させる用途で便利。
#最下位バイト同士をaddして、インデックスに使用するレジスタをインクリメントして2番目をadcして……
尚、例えば68000の場合は対象がデータレジスタならフラグが影響を受けてアドレスレジスタでは影響を受けない。
この様に、フラグの振る舞いはCPUによって違うので、
実験から推測するのではなくリファレンスで調べておくことをお勧めする。
0355デフォルトの名無しさん
2006/08/04(金) 11:41:10了解です。ありがとう御座いました。
0356デフォルトの名無しさん
2006/08/14(月) 23:13:450357デフォルトの名無しさん
2006/08/14(月) 23:50:21今試したら問題なくDLできたよ
再DLでいけるかと
http://www.ollydbg.de/
0358デフォルトの名無しさん
2006/08/14(月) 23:58:37OllyDbg日本語化パッチとOllyDbgQ&A
http://hp.vector.co.jp/authors/VA028184/
0359デフォルトの名無しさん
2006/08/17(木) 11:08:260360デフォルトの名無しさん
2006/08/17(木) 12:41:45mov WORD [100] 1
ってかくと
----------
00000001 100番地
----------
00000000 101番地
----------
ってメモリに書かれると思うのですが
mov DWORD [100] 1
ってかくと
----------
00000001 100番地
----------
00000000 101番地
----------
00000000 102番地
----------
00000000 103番地
----------
の認識でいいでしょうか?
0361デフォルトの名無しさん
2006/08/17(木) 14:10:12リトルエンディアンのCPU(インテルx86等)ならその認識でいいと思う。
あとアセンブラによって記法が異なるので、今度質問するときはCPUと
使用アセンブラを書いた方がいいかも。(その記法は初めて見た。)
0362・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/18(金) 01:21:50か
0363デフォルトの名無しさん
2006/08/18(金) 03:07:160364・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/18(金) 03:21:090365デフォルトの名無しさん
2006/08/18(金) 03:29:530366デフォルトの名無しさん
2006/08/18(金) 04:25:490367デフォルトの名無しさん
2006/08/18(金) 06:57:080368デフォルトの名無しさん
2006/08/18(金) 09:59:580369デフォルトの名無しさん
2006/08/18(金) 10:15:480370デフォルトの名無しさん
2006/08/18(金) 18:53:570371デフォルトの名無しさん
2006/08/18(金) 23:59:190372デフォルトの名無しさん
2006/08/19(土) 09:30:16凡用レジスタ(ax,bx,cx...等)が表示するような
ソフトってありますか?
0373デフォルトの名無しさん
2006/08/19(土) 09:34:23「ぼんよう」って何?
レジスタが何を表示するの?
デバッグツールならgdbがあるけど。
#勿論汎用(はんよう)レジスタの値を表示することもできる。
0374デフォルトの名無しさん
2006/08/19(土) 10:35:570375デフォルトの名無しさん
2006/08/19(土) 11:24:520376デフォルトの名無しさん
2006/08/19(土) 12:49:54おまえは誤字に反応しすぎだ。この変態や労が
0377デフォルトの名無しさん
2006/08/19(土) 13:25:570379デフォルトの名無しさん
2006/08/19(土) 14:24:16しばしばビッグエンディアンより優れているとされる
ビッグエンディアン
しばしばリトルエンディアンより優れているとされる
0380デフォルトの名無しさん
2006/08/19(土) 14:27:54今時じゃない奴な。
0381デフォルトの名無しさん
2006/08/19(土) 14:39:160382デフォルトの名無しさん
2006/08/19(土) 15:15:33つ「IA-32 Intel(R) Architecture Optimization Reference Manual」
0383・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/19(土) 15:32:49あとは、先輩にとられて未だに返ってこないCQ出版社の2000円くらいの奴とか。
アレはイイ本だと思った。
0384デフォルトの名無しさん
2006/08/19(土) 15:43:03自分でそれなりに調べたことのある人ならベストチョイス。安いし。
0385デフォルトの名無しさん
2006/08/19(土) 16:32:42>>373じゃないが,「凡用」は「はんよう」を変換しても絶対に出てこないので,
誤字以前の問題だと思うが.
0386デフォルトの名無しさん
2006/08/19(土) 18:03:22gdb使いにくいんですが
他に無いですか?
OllyDbgきぼんぬ
0387・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/19(土) 18:09:10ただ、SSE2以降の対応がされてなかったような。
Visual Studioのデバッガは結構強力だよ。
0388デフォルトの名無しさん
2006/08/19(土) 18:13:360389デフォルトの名無しさん
2006/08/20(日) 11:44:440390・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/20(日) 12:56:24SSE4がマイブームなのだがまだCore2Duoマシンが手元にないから困る。
0391デフォルトの名無しさん
2006/08/20(日) 13:20:14Intel XeonのWoodcrestはどうよ?
30万円台からマシンが手に入るぜ
0392・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/20(日) 13:25:180393デフォルトの名無しさん
2006/08/20(日) 13:28:19http://www.apple.com/jp/
0394デフォルトの名無しさん
2006/08/20(日) 14:25:03#って、今言っても無意味か。
0395デフォルトの名無しさん
2006/08/20(日) 14:51:32仕事は何をしてるの?
0396・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/20(日) 14:57:100397デフォルトの名無しさん
2006/08/20(日) 15:40:09PGなの?
0398デフォルトの名無しさん
2006/08/20(日) 15:58:03うざい
0399デフォルトの名無しさん
2006/08/20(日) 16:30:07仕事で使ってる言語は何?
0400・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/20(日) 17:10:560401デフォルトの名無しさん
2006/08/20(日) 17:36:110402デフォルトの名無しさん
2006/08/20(日) 17:36:510403・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/20(日) 18:06:49って具体的に何クロックくらいなのか、とか。
0404デフォルトの名無しさん
2006/08/20(日) 18:09:08#一体何のニモニックなんだろう。
0405デフォルトの名無しさん
2006/08/20(日) 19:43:02LABEL:
nop
jmp LABEL
0406デフォルトの名無しさん
2006/08/24(木) 07:04:120407デフォルトの名無しさん
2006/08/24(木) 07:38:000408デフォルトの名無しさん
2006/08/24(木) 07:45:560409デフォルトの名無しさん
2006/08/24(木) 08:05:05セクション一個にすれば1024バイトにできると思うよ。
.textや.data兼ねるインポートセクション作ればいい。
それより小さいのは無理ぽ。
0410デフォルトの名無しさん
2006/08/24(木) 08:12:09PEが分かれば簡単かな?
MZの次のバイトは何なんですか?
0411デフォルトの名無しさん
2006/08/24(木) 08:53:480412デフォルトの名無しさん
2006/08/24(木) 09:00:3300400010 B8 00 00 00 00 00 00 00 40 00 1A 00 00 00 00 00 ク.......@......
00400020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00400030 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 ............P...
00400040 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 2E 24 コ.エ.ヘ!クLヘ!.$
超適当
0413デフォルトの名無しさん
2006/08/24(木) 09:28:550414デフォルトの名無しさん
2006/08/24(木) 10:59:440415デフォルトの名無しさん
2006/08/24(木) 11:33:140416デフォルトの名無しさん
2006/08/24(木) 13:56:04_ / \
| |/ _ノ ヽ、_ \ ・・・もしもしお母さん、僕だお、僕・・・そう、ヨシオだお・・・
| | o゚⌒ ⌒゚o \ ・・・事故起こしちゃって・・・相手を怪我させちゃったお・・・
| | (__人__) |
| |/ _ノ ヽ、_ \ ・・・お金がいっぱい必要だけどお金持ってないお・・・
| | o゚⌒ ⌒゚o \ ・・・うん・・・うん・・・今から言う口座にすぐ振り込んで欲しいお・・・
| | (__人__) |
| |/ _ノ ヽ、_ \ ・・・お母さん・・・迷惑かけてばかりでごめんなさい・・・
| | o゚⌒ ⌒゚o \ ・・・うん・・・ありがとう・・・がんばるお・・・じゃあね・・・
| | (__人__) |
プチッ… _ / \
ツーツー…| |/ _ノ ヽ、_ \ ・・・
| | o゚⌒ ⌒゚o \
| | (__人__) |
|_| ` ⌒´ /
§
∂
__
_ /⌒ ⌒\
| |/( ●) (●)\
| |::::::⌒(__人__)⌒::::: \
| | |r┬-| |
|_| `ー'´ /
§
∂
∽
0417デフォルトの名無しさん
2006/08/24(木) 14:14:01不正なexeで認識する環境もある
0418デフォルトの名無しさん
2006/08/24(木) 17:00:20普通のWindowsのEXE(Notepad.exeなど)はOEではなくOMFですか?
>>412
00400000 4D 5A 50 ←これ何ですか( ^ω^)
0419デフォルトの名無しさん
2006/08/24(木) 17:22:18というのは、ページサイズが4Kな上、
FAT32もNTFSも、普通はクラスタサイズが4K以上だから。
FAT16(FDDとか)を使うとか、ネット上での転送量を気にするとかなら
わずかに意味があるかもしれないが
それ以外は、ただの自己満足。
0420デフォルトの名無しさん
2006/08/24(木) 17:30:02PEヘッダへのオフセットの最下位バイト。
0421デフォルトの名無しさん
2006/08/24(木) 17:46:25>ネット上での転送量
普通圧縮かけるから結局無意味。
てか、サイズを小さくする目的でアセンブラ使ってる人はもう居ないでしょ。
組み込み系ですら見かけない。
0422デフォルトの名無しさん
2006/08/24(木) 18:00:30と、突っ込みが入る前に訂正しておこう。
0423デフォルトの名無しさん
2006/08/24(木) 18:18:28TVpQuzAAQABTU1BLU+sDAAAA/yUcAEAAHAAAAPAAAAAAAAAA4AAAABwAAAAAAADDg0GDYoFbgUkA
AAAAQAAAAFBFAABMAQEAAAAAAAAAAAAAAAAA4AAPAQsBBQyAAAAAAAAAAAAAAAACAAAAAAAAAOAB
AAAAAEAAEAAAABAAAAAEAAAAAAAAAAQAAAAAAAAA4AEAAGABAAAAAAAAAgAAAAAAEAAAEAAAAAAQ
AAAQAAAAAAAAEAAAAAAAAAAAAAAAGAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c2Vy
MzIuZGxsAAAAAAAAnQFNZXNzYWdlQm94QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAE
AAAA
0425デフォルトの名無しさん
2006/08/25(金) 09:30:59クリアしても動作に支障はないし
0426デフォルトの名無しさん
2006/08/25(金) 10:16:29>>423
アッー!
0427デフォルトの名無しさん
2006/08/25(金) 10:38:270428デフォルトの名無しさん
2006/08/25(金) 16:20:52これか?
昔は動いたけどXPSP2だと動かないっぽい・・・
TVpHZGkzMi5kbGwAQWRqdXN0V2luZG93UmVjdABDcmVhdGVXaW5kb3dFeEEAU2V0V2luZG93TG9u
Z0EAQAAAAFBFAABMAQEAuzQRQACJ2DHJ6xmQaAAPAQsBU3RyZXRjaERJQml0cwBIAAAAsWyNPAuQ
6wwAAEAAABAAAAACAACxF6uDxyjrEAQAAAAAAAAAABAAAYQDAACrkOsCAgDrEAAAEAAAEAAAAAAQ
AAAQAADi0OskAgAAAAAAAAAAAAAAXBEAADwAAAAAAAABABAAAIQBAAAAAgAAagBoAADIEI1zUOsE
4AAA4LEM86vGRgh4xkYM5Fb/UwhqAGgAAEAAagBqAItGDCtGBFCLRggrBlBqIGogaAAAyBBqAGgU
A0AAagD/Uwxo1wFAAGr8UFD/UxiJQ1T/UxCNs+wEAABqAGoAagBW/1MchcB0Blb/UyDr7MONkywB
AAAxwLDYMe2xC40sCIssqoXtdALi9IXJdROJxY08qo130LEM86WD7Qx98evZg+gMfdSNU2CLAkCD
+AZ+AjHAiQLHQ2Tt////iwqLRIvkiUNoU1ZXg8NQjXMYMcAxybEEi1MUD74+RgH6jZST3AAAAAsC
i3sQi3y7lDE64uNfXlvDYLs0EUAAi3QkKIP+AnUFagD/UyQx/4P+D3QVgf4AAQAAdQaLfCQs6wdh
/yVIEUAAaKcBQAD/c2iNc2SLLv9UJASNU1yLi/wEAACJyCsCg+h/fgaJCjH/6z2D/yZ1JWCLS2CF
yXQcjXtosQQPvgdQmTHbswn3+2vYkVhrwAwp2Kri6WGD/yV1Av8Og/8ndQL/BoP/KHUDgwYM/1Qk
BIXAdBr/VCQEiWtkiwQkiUNo/1QkBIX/dQXowP7//4PECGggAMwAagBoAANAAI2DLAEAAFBqE2oK
agFqAWjkAAAAanhqAGoA/3NU/xNhwhAARGVmV2luZG93UHJvY0EAR2V0TWVzc2FnZUEARGlzcGF0
Y2hNZXNzYWdlQQBQb3N0UXVpdE1lc3NhZ2UAKAAAAAwAAADs////AQAgAAMAAABFRElUAAEMDQAB
Cwz/AAEN/wAMDf8AAf4A/wELAAH/DFgAAAAAAAAACgAAABsAAAArAAAAwgIAAF4DAADRAgAA3QIA
AO4CAAAAAAAAR2V0REMAAAACAAAANBEAAFVzZXIzMi5kbGwAAHADAAA8EQAA
0429デフォルトの名無しさん
2006/08/25(金) 17:07:20セクションとはassumeのことですか?
csとdsを同じにしたらEXEではなくなるんじゃないですか( ^ω^)
0430デフォルトの名無しさん
2006/08/25(金) 19:15:35たぶんPEの最小サイズ?
TVoAAFBFAABMAQEATWVzc2FnZUJveEEAqAAPAQsBdXNlcjMyLmRsbAAxwLkpAAAAUGjEAEAA6yYA
AEAABAAAAAQAAAAKAAAAAAAAAAQAAAAAAAAA6QAAAMQAAADMzOtcAgAAAAAAEAAAAAEAAAAQAAAA
AQAAAAAAAgAAAAAAAAAAAAAAqAAAABQAAACBQIFpgUCDqV+DqQqBvIHcgsLfgVvfKYLCgfQARAAA
AAAAAAAAAAAAHgAAAEQAAABojABAAFDrHDIzM2J5dGUA6QAAAAAAAADpAAAAAAAAAAAAAAD/FUQA
QADDzCA=
0431デフォルトの名無しさん
2006/08/25(金) 20:02:150432デフォルトの名無しさん
2006/08/26(土) 01:29:130433デフォルトの名無しさん
2006/08/28(月) 01:32:20>>430のは動くけど。
0434デフォルトの名無しさん
2006/08/29(火) 00:28:35Win32のEXEはCS=DSが普通だし、
DOSのEXEもスモールモデルはCS=DS。
COMでもCS≠DSにすることは不可能ではないけどちと話がずれるな。
0435デフォルトの名無しさん
2006/08/29(火) 03:25:130436デフォルトの名無しさん
2006/08/29(火) 03:46:130437デフォルトの名無しさん
2006/08/29(火) 04:06:280438デフォルトの名無しさん
2006/08/29(火) 07:32:27_MessageBoxA@16だけだからスタックは16バイトでよいですか?
0439デフォルトの名無しさん
2006/08/29(火) 13:31:19hello worldと表示させる.asmはあるのですが
このあとnasmやmasm32 を使って helloworld
を表示する方法をおしえていただけませんか?
0440デフォルトの名無しさん
2006/08/30(水) 01:54:52Win32だとCS=0x1b、DS=0x23だったような。ollydbgで確認。
0441デフォルトの名無しさん
2006/08/30(水) 10:08:45わかっているくせに
0442デフォルトの名無しさん
2006/08/30(水) 19:27:08キョン君のこと好きなんでしょ
0443デフォルトの名無しさん
2006/08/30(水) 20:12:510444デフォルトの名無しさん
2006/08/30(水) 23:55:52にら
0445デフォルトの名無しさん
2006/08/30(水) 23:58:340446デフォルトの名無しさん
2006/08/31(木) 00:01:320447デフォルトの名無しさん
2006/08/31(木) 00:06:380448デフォルトの名無しさん
2006/08/31(木) 01:43:300449デフォルトの名無しさん
2006/08/31(木) 06:09:190450デフォルトの名無しさん
2006/08/31(木) 11:47:380451デフォルトの名無しさん
2006/08/31(木) 14:04:480452デフォルトの名無しさん
2006/08/31(木) 19:25:350453・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/08/31(木) 23:18:23movd mm1, edx
punpckldq mm0, mm1
0454デフォルトの名無しさん
2006/09/01(金) 08:32:020455デフォルトの名無しさん
2006/09/01(金) 08:47:590456デフォルトの名無しさん
2006/09/01(金) 08:57:190457デフォルトの名無しさん
2006/09/01(金) 09:44:06アセンブラでMessageBox呼び出しだけでどうやったら2499バイトを超える事ができるのかが逆に疑問だ
0458デフォルトの名無しさん
2006/09/01(金) 09:56:150459デフォルトの名無しさん
2006/09/01(金) 10:38:370460デフォルトの名無しさん
2006/09/08(金) 11:39:40pushl %ds
こういう命令が書かれてたとき、
スタックポインタに加算される値は2?それとも4?
0461デフォルトの名無しさん
2006/09/08(金) 12:14:160462デフォルトの名無しさん
2006/09/08(金) 12:29:380463デフォルトの名無しさん
2006/09/20(水) 19:19:17x86系Linuxのnasmで ”1”の文字 一文字表示しようと思うのですが、
$ nasm -f elf hajime.asm
$ ld -s -o hajime hajime.o
でアセンブルもリンクも問題なくできるのですけど、
$ ./hajime [Enter]
$
セグメンテーション違反です
って表示され叱られてしまいました! どなたかご教示願いないでしょうか。
ソースは以下のようになってます。nasmは、 nasm-0.98.39を使ってます。
global _start
_start:
mov eax, 31h ; 文字 "1"
push eax ; スタックにバッファを設定
mov eax, 4 ; 出力(sys_wrigte)
mov ebx, 1 ; ファイルハンドル(1=標準出力)
mov edx, 1 ; 1文字出力することを指定
mov ecx, esp ; 書き込むバッファ
int 0x80 ; 出力する
pop eax
0464デフォルトの名無しさん
2006/09/20(水) 20:15:23最後にプログラム終了の命令を追加してみてください。
mov eax, 1 ; sys_exit
mov ebx, 0 ; 終了ステータスコード
int 0x80
0465デフォルトの名無しさん
2006/09/20(水) 21:10:58早速のご教示、ありがとうございます。
書かれている命令を追加してみましたが、結果は変わりませんでした。
『独習アセンブラ』に書かれている、次のサンプル「Hallo assembler」の方はキチンと表示
されるのに一番最初のサンプルコードがトラブってしまって、まいってます!
0466( ^ω^)飛来ブーン
2006/09/20(水) 21:23:160467デフォルトの名無しさん
2006/09/20(水) 21:29:56で最初に出るサイトのasm05.htmlに似たようなのがある
push eaxの前にpusha、pop eaxの後にpopaを入れてみてはどう?
0468デフォルトの名無しさん
2006/09/20(水) 21:58:02pusha、pop を入れてみましたが、結果は、まったく変わりません。
コードを書き足しているのにまったく変わらないというのも
何か、おもしろいですね。
0469デフォルトの名無しさん
2006/09/20(水) 22:08:54global _start
_start:
mov eax, 31h ; 文字 "1"
push eax ; スタックにバッファを設定
mov eax, 4 ; 出力(sys_wrigte)
mov ebx, 1 ; ファイルハンドル(1=標準出力)
mov edx, 1 ; 1文字出力することを指定
mov ecx, esp ; 書き込むバッファ
int 0x80 ; 出力する
pop eax
mov eax, 1 ; sys_exit
mov ebx, 0 ; 終了ステータスコード
int 0x80
で動作したよ。nasm-0.98 と nasm-0.98.38 で確認。
0470463
2006/09/20(水) 22:30:17家では、やはり「 セグメンテーション違反です」が出てしまいます orz
先ほども書きましたが、次のサンプルコードの「Hello assembler」は順調に
アセンブルもリンクも 実行もウマクいくんですけど …
nasm-0.98.38 をgetして、コンパイルし直してみます。
みなさん、Thanks
0471デフォルトの名無しさん
2006/09/20(水) 22:54:40いや、恥ずかしながら俺がそうだった。
見つけたときは全身脱力したよ。俺の1週間は何だったんだってね。
0472デフォルトの名無しさん
2006/09/20(水) 22:58:24全身脱毛に見えた
0473463
2006/09/20(水) 23:28:07私もint 0x08をサンプルの「Hello assembler」の方でやってしまいました。
これやると、「 セグメンテーション違反です」がモロ出るんですよね。
今、 nasm-0.98.38 をgetしてきましたが、今度は、nasmのコンパイルが通らない!
泥沼に嵌まりこんでしまいました。 orz
0474デフォルトの名無しさん
2006/09/20(水) 23:38:48ttp://prdownloads.sourceforge.net/nasm/nasm-0.98.39-1.i386.rpm?download
$ rpm -Uvh nasm-0.98.39-1.i386.rpm
0475デフォルトの名無しさん
2006/09/20(水) 23:47:420476デフォルトの名無しさん
2006/09/21(木) 02:47:09nasmのコンパイルが通らないとは
nasm自体のソースコードがコンパイルできないということですか?
でしたら>>474,475などで解決できると思うのですが。
それともnasmのインストールは完了していて、サンプルコードがアセンブルできない
ということですか?
0477463
2006/09/21(木) 06:40:38おはようございます。
私の場合は、nasmをソースからコンパイルしてinstallしています。
nasm-0.98.39.tar.bz2を展開してコンパイルして使いだしていたのですが、
nasm-0.98.38を使ってる人>>469でのアセンブリのソースコードが問題なく
アセンブルが通るということなのでnasm-0.98.38.tar.bz2をゲットしてコンパイル
したという訳なんです。
0478463
2006/09/21(木) 12:37:21ソース↓
section .data ; セグメンテーション違反回避
global _start
_start:
mov eax, 31h ; 文字 "1"
push eax ; スタックにバッファを設定
mov eax, 4 ; 出力(sys_wrigte)
mov ebx, 1 ; ファイルハンドル(1=標準出力)
mov edx, 1 ; 1文字出力することを指定
mov ecx, esp ; 書き込むバッフ
int 0x80 ; システムコール,出力する
mov eax, 0ah ; 0ah
push eax ;
mov eax, 4 ; は
mov ebx, 1 ; 改
mov edx, 1 ; 行
mov ecx, esp ; 用
int 0x80 ; システムコール,改行する
pop eax ; eaxの回収
mov eax, 1 ; sys_exit
mov ebx, 0 ; 終了ステータスコード
int 0x80 ; システムコール,終了する
0479デフォルトの名無しさん
2006/09/21(木) 13:53:05.dataセクションにはグローバル変数等を配置することになっているので、
そこにコードを記述することはできない。
コードを配置するのは.textセクション。
スタックにバッファを置くために2回pushしているが、1回しかpopしていない。
それから改行を出力するために苦労した痕が見受けられるが、次のように
すればプログラムを短縮できる。
mov eax, 0x0a31
push eax
mov eax, 4
mov ebx, 1
mov edx, 2
mov ecx, esp
int 0x80
pop eax
0480デフォルトの名無しさん
2006/09/22(金) 02:03:54シリンダ0番、セクタ2番のプログラムを0x8000に読みだして実行
したいのです。
最後のJMPで*を付けると実行出来ないのですが、理由を教えて下さい。
MOVW $0x800, %AX
MOVW %AX, %ES
MOVB $0x00, %CH
MOVB $0x02, %CL
MOVB $0x00, %DH
MOVB $0x00, %DL
MOVB $0x02, %AH
MOVB $0x01, %AL
INT $0x13
JMP *0x8000
0481デフォルトの名無しさん
2006/09/22(金) 03:38:12おそらくブート時のロード処理だと見当はつくが。
或いは逆アセしてみて意図したコード(0x8000への絶対ジャンプ)に
きちんと変換されたかを確認するとか。
0482デフォルトの名無しさん
2006/09/22(金) 07:27:250x8000番地に飛ばすならjmp $0x8000が正解だと思う‥‥
0483482
2006/09/22(金) 07:52:23バッファのアドレスを指定するときは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
0484デフォルトの名無しさん
2006/09/22(金) 12:32:15サンクス。
>>481
すいません。
OS:FreeBSD6.1
アセンブラ:GCC
その他:ld、objcopy
エミュレータ:bochs
作っている物:ブートの最初の512byteのプログラム
>>482
jmp $0x8000だとコンパイルエラーになります。
http://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する場合「*」が必要なのかなと思いました。
0485デフォルトの名無しさん
2006/09/22(金) 13:08:06「*」を付けた際の動作は、御指摘の通りでした。
解決できました。
ありがとうございました。
0486463 ◆RMO61H2xHE
2006/09/22(金) 20:27:49ご教示、ありがとうございます。とても助かりました。
今度は、こんな問題で引っかかっています。
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; システムコール,終了する
0487デフォルトの名無しさん
2006/09/22(金) 21:03:09lss 20+4(%esp), %esp
と、ESPとSSに1命令で値をつめてるコードがあったのですが、
この20+4()ってのはどういう意味なんでしょうか?
0488デフォルトの名無しさん
2006/09/22(金) 21:11:12pand mm0, mm1
を実行し結果がゼロになっても、ゼロフラグが立たないようです。
ゼロかどうかをチェックするにはどうしたらいいんでしょうか?
0489463 ◆RMO61H2xHE
2006/09/22(金) 21:13:04section .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 と表示されます!
0490487
2006/09/22(金) 22:01:16lss 0x18(%esp),%esp
こういう風に変換されてました。
よく調べもせずに質問してすみませんでした。
0491デフォルトの名無しさん
2006/09/22(金) 22:12:08mov cl, [message+2]
xchg cl, [message+3]
mov [message+2], cl
0492デフォルトの名無しさん
2006/09/22(金) 22:56:07春だな・・・
0493463 ◆RMO61H2xHE
2006/09/22(金) 22:56:18ありがとうございます。
eHllo, Worldとなりました。アセンブリって意外とレジスタの動きが分かりやすいん
ですね。
本や、ネットで検索しながらやってるんですけど、Linuxのnasmで
初心者に分かりやすい解説は、殆んどないんで困ってました。
0494デフォルトの名無しさん
2006/09/22(金) 23:18:49あれで十分よ
0495デフォルトの名無しさん
2006/09/22(金) 23:19:53イイジダイダナー
0496・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/09/23(土) 05:38:45MMX演算はフラグレジスタを更新しない。
いちど汎用レジスタに転送してから比較する必要がある。
0かどうかだけを判定するだけなら、たとえば
packssdw mm0, mm0
movd eax mm0
test eax, eax
0497デフォルトの名無しさん
2006/09/23(土) 18:56:59DAAってハーフキャリーは0になるの?それとも変化するの?どっち?
0498デフォルトの名無しさん
2006/09/23(土) 20:05:470499デフォルトの名無しさん
2006/09/26(火) 21:57:47下記のソースを弄ってみましたが、よく分からないので教えて頂けないでしょうか。
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 ; 終了
0500デフォルトの名無しさん
2006/09/26(火) 22:49:24それじゃ一回だけ表示された後、しらばく後かすぐに終了するだろ。
int 0x80 ; 出力
doit:
dec ecx ; ecxをデクリメントする
jecxz endquit ; ecxがゼロならジャンプ
jmp doit ; doitへジャンプ
このdoit以下何もやっていないと同じだぜ?
なぜecxをデクリメントして0になったら終了になるん?何目的だ?
たぶんint0x80は文字列表示機能だと仮定するなら、
ediにでも0xaを入れておいて、
dec edi
jnz _start ← ゼロじゃなけりゃジャンプっての
にすればええ。
0501499
2006/09/26(火) 23:28:28> それじゃ一回だけ表示された後、しらばく後かすぐに終了するだろ。
その通りなんです。弄っているうちに わけわからなくなってしまい、
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,"$"
0502デフォルトの名無しさん
2006/09/26(火) 23:44:57そんくらい気ずかん?(´・ω・`)
0503デフォルトの名無しさん
2006/09/27(水) 01:45:08答えは分かるがあえて書かない。自分で考える事が上達には大事だしな。
先ほど書いたようにdiあるいはsiをcxの代わりにカウンタとし、
dec di
jnz また文字列出力する場所
ってな感じにするのが良い。
あとint21hの後のレジスタの値は保障できないと考えた方が一応はいいと思うから、
doitの位置を変えた方が確実だと思う。
0504デフォルトの名無しさん
2006/09/27(水) 09:36:16x = x * 3;
と、
x = (x<<1) + x;
はどちらが高速なんですか?
0505デフォルトの名無しさん
2006/09/27(水) 10:02:43スループットは上の方がいいが、
レイテンシは下の方がいい。
CPUによるけど。
どちらが速いかは周りの処理にもよる。
でも、x86ならこれが一番速いよ。
lea x,[x*2+x]
0506デフォルトの名無しさん
2006/09/27(水) 15:00:543倍するのはleaに最適化してくれますよ。
0507・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/09/27(水) 22:23:36mov edx, eax
add eax, eax
add eax, edx
0508デフォルトの名無しさん
2006/09/28(木) 00:52:21シフトが add の 8 倍遅い変態 CPU を持ち出すのは反則だと思いまつ。
0509デフォルトの名無しさん
2006/09/28(木) 01:18:150510・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/09/28(木) 01:23:14クロックを重視したデータキャッシュが小さすぎたりパイプラインが長すぎたり
熱すぎたりで、全体としてマイナス要素が大きかったのが敗因ですな。
0511デフォルトの名無しさん
2006/09/30(土) 18:11:57ご教示 お願いできないでしょうか。
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
0512デフォルトの名無しさん
2006/09/30(土) 18:27:46あと最初のパラメタは[ebp+4]じゃなくて[ebp+8]だボケ
0513ボケ
2006/09/30(土) 19:15:48早速のご教示ありがとうございます。
ご指摘のdxをedxとし[ebp+4]を[ebp+8]に直してやってみたのですけど、
結果は変わらず、何も表示されなくて ただ改行されただけでした。
Cの参考ソースはけっこうありますけど、アセンブルってほとんどないですね!
0514デフォルトの名無しさん
2006/09/30(土) 20:05:55最後に0x0aも出力してみれ。
0515デフォルトの名無しさん
2006/09/30(土) 21:58:20ここ間違っているのでは
既に40引いてしまっているのに・・・
0516デフォルトの名無しさん
2006/09/30(土) 22:04:240517デフォルトの名無しさん
2006/09/30(土) 22:17:03putcharの先頭部分は
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 に修正。
0518デフォルトの名無しさん
2006/09/30(土) 22:34:25だったら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
コンパイラがどんなコードを吐くか、自分のものと見比べるべし。
最適化オプションも併せて指定するといいかもな。
0519デフォルトの名無しさん
2006/09/30(土) 22:37:260520デフォルトの名無しさん
2006/09/30(土) 22:40:350521デフォルトの名無しさん
2006/09/30(土) 22:48:430522デフォルトの名無しさん
2006/09/30(土) 22:53:44putchar2はwriteをコールするだけだから関数の存在が消えてしまう可能性はあるが。
>>520
高度な最適化コンパイラは凡人の考えの及ばぬような超変形型ロジックを組むことがあるから。
0523ボケ
2006/09/30(土) 22:59:17釣できるほどのウデがあればいいんですけど…
貴方の仰る通り、>511の投稿には誤りがたくさんありました。
言われた通りにやったら AB と表示されました! 改行はしないみたいですけど、
改行は組めますので、後は簡単です。
Thanks
0524デフォルトの名無しさん
2006/09/30(土) 23:37:48ふ〜ん
0525デフォルトの名無しさん
2006/10/01(日) 01:50:05コンパイラ程度の最適化が超変形?
じゃあ人が書いたコードは読めねぇなw
0526デフォルトの名無しさん
2006/10/01(日) 02:10:08きょうびのコンパイラが超変形かますのは事実だろ。
何を噛み付いてるんだ。
カルシウム足りないのか。
0527・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/01(日) 02:25:38を
add eax, eax;
add eax, eax;
add eax, eax;
add eax, eax;
add eax, eax;
に展開するコンパイラとかな。
0528デフォルトの名無しさん
2006/10/01(日) 02:30:210529デフォルトの名無しさん
2006/10/01(日) 02:39:090530デフォルトの名無しさん
2006/10/01(日) 03:04:160531デフォルトの名無しさん
2006/10/01(日) 03:36:33GCCでは無数にある最適化オプション組み合わせていくら頑張ってもシフトだった。
-O0ですらシフトだったw
VC++のリリースコンパイルでもシフトだから、それが最善じゃないのか?
0532デフォルトの名無しさん
2006/10/01(日) 05:26:38imul ecx
sar edx,byte 005h
mov eax,edx
shr eax,byte 01fh
add edx,eax; / 100
これとか実行してみるまで何やってるかわからなかった(VC6)。
0533デフォルトの名無しさん
2006/10/01(日) 05:38:03いや、それ普通。
VCのそれは、シフトが異常に遅い某CPUに配慮したものと思われ。
多分だけど。
0534デフォルトの名無しさん
2006/10/01(日) 09:07:130535デフォルトの名無しさん
2006/10/01(日) 09:27:21ちょっと上くらい読めや>507-509
0536・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/01(日) 14:54:18依存関係チェインが深い場合は加算を繰り返した方ほうが早い
VCじゃなくて、ICCの-QxWとか-QxNとかのPen4専用オプションだったような
>>532
除算はクロック数やたらかかるから定数積算とシフトに置き換えるのは常套手段
0537デフォルトの名無しさん
2006/10/01(日) 17:29:21もらった方がどれだけわかりやすいことか。
あるいは除算命令でこのシーケンスと同じμop生成するとか。
書きたいことはまだあるけどこれ以上はちょっとスレ違いになるので遠慮しよう。
0538デフォルトの名無しさん
2006/10/01(日) 17:53:12何で割るかによって全く違うロジックになるから。
そんなもんにトランジスタ突っ込む余裕なんかない
0539デフォルトの名無しさん
2006/10/01(日) 18:33:31定数除算限定で、しかも最適化のタイミングはコンパイル時じゃないといけない
程度に複雑なアルゴリズムなのか。
随分と頓珍漢なことカキコんじまったな(恥
0540デフォルトの名無しさん
2006/10/04(水) 23:19:27ml〜コマンドは合ってるはずなのですが。
知恵をください。
XPSP2です
0541デフォルトの名無しさん
2006/10/04(水) 23:23:42それだけの情報で何かわかると思ってんのか。
せめてエラーメッセージくらい貼れよ。
0542デフォルトの名無しさん
2006/10/04(水) 23:31:03操作可能なプログラムまたはバッチ ファイルとして認識されていません。
ってなります。
0543デフォルトの名無しさん
2006/10/04(水) 23:32:22アホか。パス通してないだけでないか。
0544デフォルトの名無しさん
2006/10/04(水) 23:46:160545デフォルトの名無しさん
2006/10/05(木) 05:03:25質問から察するに、それすら出来ていなさそうな気がする。
WinXPのDOS窓からの操作なら、DOS窓開いたらまずこのコマンドを打ち込む。
> set Path=%Path%;(ml.exeのあるディレクトリのパス)
開くたびにこれを入力するのが面倒くさいならバッチファイルに書くなり
GUIから環境変数に登録するなり何なりと。
0546デフォルトの名無しさん
2006/10/05(木) 20:38:090547デフォルトの名無しさん
2006/10/10(火) 10:06:06なんであんなことになってんの?
0548デフォルトの名無しさん
2006/10/10(火) 11:35:361ワードが無限のビット長だとすると、原理的には
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 で求めることができる。
つまり定数の除算は乗算とシフトに変換できるというわけ。
実際はビット長が無限大ということはないし符号も考慮しないといけないので
これよりも少し複雑な処理になる。
0549デフォルトの名無しさん
2006/10/10(火) 12:14:56inc ecx
mov eax, dword 028f5c28h
imul ecx
でedxに解が得られないかな。
0550デフォルトの名無しさん
2006/10/10(火) 12:35:000551デフォルトの名無しさん
2006/10/10(火) 20:35:590552デフォルトの名無しさん
2006/10/11(水) 12:57:52VC++の最適化OFFで生成した以下の絶対値を求めるコード
cdq
xor eax,edx
sub eax,edx
これに対応するC/C++のコードがわかるかたいませんか?
0553デフォルトの名無しさん
2006/10/11(水) 13:25:58インラインアセンブラでも使ってない限りも最適化 Off ではそのコードは
出てこないと思うんだが・・・。
abs() を呼んでれば最適化 On の時そのコードになるよ。
0554デフォルトの名無しさん
2006/10/11(水) 13:59:52/Oiオプションでabsが上記の命令に展開されたのを確認しました。
最適化はOFFだと思ってたのですが、一部だけ有効になってるのかもしれません。
(バイナリとPDBファイルしかないので詳細不明)
ありがとうございました。
0555デフォルトの名無しさん
2006/10/11(水) 17:48:43/Oiって思いっきり最適化オプションの一部だろ。
0556デフォルトの名無しさん
2006/10/11(水) 18:26:42ワロタw
0557デフォルトの名無しさん
2006/10/12(木) 09:14:280558デフォルトの名無しさん
2006/10/12(木) 13:59:220559デフォルトの名無しさん
2006/10/12(木) 15:34:130560デフォルトの名無しさん
2006/10/12(木) 16:21:150561デフォルトの名無しさん
2006/10/12(木) 22:19:52訴訟の元ハケーン
0562デフォルトの名無しさん
2006/10/12(木) 22:34:020563デフォルトの名無しさん
2006/10/13(金) 13:55:12やっぱインラインかな
0564デフォルトの名無しさん
2006/10/13(金) 15:49:03分かりやすくお願いします.
0565デフォルトの名無しさん
2006/10/13(金) 15:54:220566デフォルトの名無しさん
2006/10/13(金) 15:54:280567デフォルトの名無しさん
2006/10/13(金) 15:58:200568デフォルトの名無しさん
2006/10/13(金) 16:07:08本当はアセンブリ言語ってんだ。俗的にアセンブラでも通用するが。
0569デフォルトの名無しさん
2006/10/13(金) 16:10:510570デフォルトの名無しさん
2006/10/13(金) 17:20:51JISでは「アセンブラ言語」
0571デフォルトの名無しさん
2006/10/13(金) 18:50:010572デフォルトの名無しさん
2006/10/14(土) 16:55:38キーボードから3個の整数a、b、cを入力してスタックにセットし、これらの整数のうち最大整数をディスプレイに出力せよ。ただし、最大整数をセットするための変数maxもスタック上に作ること。
これが出来ないと帰らせともらえませんが、全くわかりません。どなたか出来る方いましたらよろしくお願いします。
0573デフォルトの名無しさん
2006/10/14(土) 17:21:41その時間位になれば、わかる人がここに来るぞ、たぶん。
0574デフォルトの名無しさん
2006/10/14(土) 17:40:28開発環境、動作環境を書け。
話はそれからだ。
0575デフォルトの名無しさん
2006/10/14(土) 18:05:18どのアセンブラで、どのCPUですか
0576デフォルトの名無しさん
2006/10/14(土) 19:18:170577デフォルトの名無しさん
2006/10/14(土) 19:23:08いやだから教えようにも
・・まぁなんだ、頑張れ
0578デフォルトの名無しさん
2006/10/14(土) 19:35:56>>574-575
0579デフォルトの名無しさん
2006/10/14(土) 19:54:20変数って何桁でもいいの?
0580デフォルトの名無しさん
2006/10/14(土) 22:00:50まあわかったところでこんなところに書き込めるようなコード量に収まるとも思えんがw
0581デフォルトの名無しさん
2006/10/14(土) 22:22:37無能自慢はいいから
0582デフォルトの名無しさん
2006/10/14(土) 23:23:22つ【ファンクションリクエスト】
0583デフォルトの名無しさん
2006/10/14(土) 23:44:270584デフォルトの名無しさん
2006/10/15(日) 00:01:57それがある環境だと誰が言った?
0585デフォルトの名無しさん
2006/10/15(日) 00:17:320586デフォルトの名無しさん
2006/10/15(日) 00:27:140587デフォルトの名無しさん
2006/10/15(日) 00:43:220588デフォルトの名無しさん
2006/10/15(日) 00:55:36void main(){
}
0589デフォルトの名無しさん
2006/10/15(日) 00:57:03void main(){
int a, b, c, max;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
if(a < b){
}
}
0590デフォルトの名無しさん
2006/10/15(日) 00:58:06gcc -S
で、アセンブリ出力したら、
勝手にやってくれるよ。
だって、ローカル変数はスタックなんだからさ。
0591デフォルトの名無しさん
2006/10/15(日) 01:43:47ローカル変数が必ずスタックに確保されるという保証はない
0592・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/15(日) 01:49:360593デフォルトの名無しさん
2006/10/15(日) 03:34:15「C言語のローカル変数がスタック上に生成される」というのは
そういう実装になっている処理系が多い、というだけで
C言語の規格上、ローカル変数(自動記憶域期間をもつオブジェクト)は
「スタック上に確保されなければならない」とは一言も書いてない。
0594デフォルトの名無しさん
2006/10/15(日) 11:57:250595デフォルトの名無しさん
2006/10/15(日) 12:07:560596デフォルトの名無しさん
2006/10/15(日) 12:34:440597デフォルトの名無しさん
2006/10/15(日) 14:43:460598・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/15(日) 15:18:30そんなしょぼいポンコツコンパイラなんざ使わないからしらねー。
0599デフォルトの名無しさん
2006/10/15(日) 15:20:44gcc-4.1.1で最適化を-O3なんかにしたら最適化が変態すぎてまともにうごかないんだぜ。
0600デフォルトの名無しさん
2006/10/15(日) 17:52:03お前半年くらい前にあーだこーだいってた気がしたが。
ありゃ可変引数リストに関してだったっけ?
0601デフォルトの名無しさん
2006/10/15(日) 18:04:44しょぼいポンコツとは失礼な。
某大学の実習で使用されるシステムはH/Wスタックを装備していないから
メモリ空間ぜ〜んぶヒープな環境だ。レジスタはアキュムレータ1つだけ。
で、課題でこのシステム向けに最適化されたANSI Cのサブセットコンパイラを
つくれというのがあったが、どんなに凝ったコンパイラを作れど、この場合
スタックを「使わない」のではなく「使えない」んだよ。
団子はそんな環境で四苦八苦したことがないだろうが。
0602デフォルトの名無しさん
2006/10/15(日) 18:07:25レジスタは他にもあったよ。PCとか間接メモリアドレッシングで使うやつとか。
0603デフォルトの名無しさん
2006/10/15(日) 18:18:49無能自慢はいいから
0604・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/15(日) 18:22:58んーでもそういう環境わざわざ選ぶ理由無いよね♪
どんなマイナーCPUですか?
ちなみにJava仮想マシンなら汎用レジスタ1本のスタックマシンだよね。
それ以前の問題として、マシン語がどんなのかよくわからんわけで。
それこそ情報処理技術者でよく使われるCOMET2/CASL2かもわからんし。
Cでコンパイルしてアセンブリコード吐かせれば出せるって前提自体が
おかしいと思うわけで。
演習で使う端末ってx86とかPowerPC(ようはMac)のほうが多いと思うんだけど
0605デフォルトの名無しさん
2006/10/15(日) 19:39:54ゴメ。自慢するつもりはなかった。ただこういう環境もあるということを言いたかっただけ。
>>604
あるよ。この流れの上流をよく見てみ。>>572で今学校の授業中ですとある。
どんな反則/時代遅れシステムを使わされるかもわからない。高機能から超低次元まで
様々な環境を考慮しなければ質問に答えることは出来ない。
そうでなくてもこの分野はどんな質問がくるか予測しづらい面もある。
肝心の質問者は何も言わず逃げやがったなw
0606・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/15(日) 19:43:12某プロセッサコアのシミュレータと格闘してた。
アレは気が狂いそうだ。
0607デフォルトの名無しさん
2006/10/15(日) 20:04:21人智では管理できんな、この数じゃ。CellとかItaniumとか!
0608デフォルトの名無しさん
2006/10/15(日) 23:36:330609デフォルトの名無しさん
2006/10/15(日) 23:38:240610デフォルトの名無しさん
2006/10/15(日) 23:46:19レジスタの長さは、それぞれ 1Mバイトぐらいでよろしーですか?w
0611デフォルトの名無しさん
2006/10/15(日) 23:48:430612デフォルトの名無しさん
2006/10/16(月) 00:21:1568000のことですか?
0613デフォルトの名無しさん
2006/10/16(月) 00:27:100614デフォルトの名無しさん
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を△△△△にする
という形でできるだけ詳しくお願いします
本当にお願いします ・・・
0615デフォルトの名無しさん
2006/10/16(月) 01:42:530616デフォルトの名無しさん
2006/10/16(月) 02:30:420617デフォルトの名無しさん
2006/10/16(月) 02:43:23と念を押しておいても誰かが先に答えちまうんだろうな
偽善もほどほどにしとけよ?
0618デフォルトの名無しさん
2006/10/16(月) 02:45:270619デフォルトの名無しさん
2006/10/16(月) 02:48:32本当にお願いします・・教えてください
0620デフォルトの名無しさん
2006/10/16(月) 02:52:450621デフォルトの名無しさん
2006/10/16(月) 03:36:39それしか書いてないので・・・
PDP11ってやつですかね・・?
オペランドとか・・
自分も授業で少ししただけで全然わからないんです・・・
教えてもらえないでしょうか。。。
0622デフォルトの名無しさん
2006/10/16(月) 03:51:59PDP11のアセンブラのマニュアルならここにあるからしっかり勉強しろ。
ttp://www.bitsavers.org/pdf/dec/www.computer.museum.uq.edu.au_mirror/D-09-30_PDP11-40_Processor_Handbook.pdf
0623デフォルトの名無しさん
2006/10/16(月) 04:00:17いいものを手に入れた。マジサンクス>>622
0624デフォルトの名無しさん
2006/10/16(月) 04:32:48わかりました
勉強はします
そのマニュアルは全部英語でよくわかりませんが・・
でも締切りが今日なんです・・・
とりあえず答えを教えてもらえないでしょうか・・・
もう時間が・・・
お願いします
0625デフォルトの名無しさん
2006/10/16(月) 04:38:51そうやって2chに張り付いてうだうだ書いている暇に、英和辞典片手にマニュアル読めよ。
0626デフォルトの名無しさん
2006/10/16(月) 04:42:53>>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よりも随分素直で理解しやすいよ。
0627デフォルトの名無しさん
2006/10/16(月) 04:53:36register 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;
0628デフォルトの名無しさん
2006/10/16(月) 04:55:040629デフォルトの名無しさん
2006/10/16(月) 04:57:31>>626
わざわざありがとうございます
ですがその資料ホントに読めません・・・
あと習い始めたばかりでまだ実行とかは全く習ってないししたこともないんです
書いてある問題の意味すらわからなくて、今答えの見当もつかない状態なんです・・
本当にお願いします・・
0630626
2006/10/16(月) 04:58:52問3は差分アドレッシングの問題じゃないわ。何に気をとられていたのやらorz
問3はたぶん絶対アドレッシング(absolute addressing)の問題。
関連ページは 3-12 (40)
>>627
それほぼ答えじゃんorz
ま、俺は別にいいけどね。
0631デフォルトの名無しさん
2006/10/16(月) 05:00:17UNIックソのPDP11アセンブラは>>622とは違う文字使っていたような希ガス
0632630
2006/10/16(月) 05:02:18また間違えましたよ。
すぐ隣のページだけどね:-p
0633デフォルトの名無しさん
2006/10/16(月) 05:05:28× register short int r1 = 100;
○ register short int *r1 = 100;
0634デフォルトの名無しさん
2006/10/16(月) 05:07:04ありがとうございます
でもCは全く習ってなくて、何が書いてあるのか理解できません・・・
本当にすみません
できれば>>614の形式で教えていただけないでしょうか・・
手書きで説明を書いて提出するので・・・
>>630
わざわざ報告ありがとうございます
0635デフォルトの名無しさん
2006/10/16(月) 05:15:23マニュアルの中から僅かな量のエッセンスを抽出してもらって、あまつさえ
重要語句に日本語を付加されてまでまだ「読めません」かよ。
読めないのではなくて 読 ん で い な い だろ。
今から>>622読んで理解しろ。実際ここにいる連中も1時間程度で読んで理解しているんだ。
0636デフォルトの名無しさん
2006/10/16(月) 05:18:20それとCのソースもな。
0637デフォルトの名無しさん
2006/10/16(月) 05:30:500638デフォルトの名無しさん
2006/10/16(月) 05:42:080639デフォルトの名無しさん
2006/10/16(月) 05:51:08教科書読んでも全然わからなくて・・・
>>627はどういうことなんですか・・?
実行結果・・?
もういやだ・・もうこんな時間・・どうにもできない・・・だれか・・
0640デフォルトの名無しさん
2006/10/16(月) 06:07:13残念でした。
2chに聞いたのが間違いなんだよ
何でもサポートセンターじゃない
先生のところへ行って直接手取り足取り教えて貰いな
親切に教えて、しかも学ぶ事そのものまで教えてまでいるスレ住人を
裏切り続けてるのは外ならぬお前なんだと言う事を覚えておけよ?
0641デフォルトの名無しさん
2006/10/16(月) 06:09:32そろそろ寝るか。
30分ぐらい。
0642デフォルトの名無しさん
2006/10/16(月) 06:18:11裏切り続けてると言われても・・言われたことはしました・・
その上でなら仕方ありません・・
時間があるのならゆっくり勉強すればいいかもしれませんが、もう時間がなくて一から勉強することができません・・・
だからもう・・・
0643デフォルトの名無しさん
2006/10/16(月) 06:23:02人の答え丸写しして本人は理解してないのに単位取るなんて不正だし。
0644デフォルトの名無しさん
2006/10/16(月) 06:23:44くだらん言い訳はするな。
それに提出物だから教えて貰えないというのもおかしな話だ。
質問を受け付けてくれない先生か。さぞお気の毒だこと。
そうやって言い訳し続けて、裏切り続けるがいいさ。
と、漏れもマジレス
0645デフォルトの名無しさん
2006/10/16(月) 07:06:33何を言われてももうこれしかありません・・・
0646デフォルトの名無しさん
2006/10/16(月) 07:09:06答えを教えたって豚に真珠だろうさ。
0647デフォルトの名無しさん
2006/10/16(月) 07:21:020648デフォルトの名無しさん
2006/10/16(月) 07:51:542chでこんなに優しくしてもらえるなんてそうないぞ。
問1ぐらいは分かるだろ。
ま、残りは空欄でも仕方ないな。
0649デフォルトの名無しさん
2006/10/16(月) 08:00:040650デフォルトの名無しさん
2006/10/16(月) 08:22:28やっぱりヒキニト君ってイライラが溜まってるんだね。
そんなの俺なら「宿題は自分でやれよ」の一言で済ますけど。
0651デフォルトの名無しさん
2006/10/16(月) 11:21:270652デフォルトの名無しさん
2006/10/16(月) 11:23:32r0がゼロレジスタか否かで結果が変わるな
PDP11が確実でなければ
0653デフォルトの名無しさん
2006/10/16(月) 12:25:35学生なら幾らでも時間はあるだろ
4年で卒業できる実力が無いならおとなしく留年しろ
それが世のためだ
0654デフォルトの名無しさん
2006/10/16(月) 12:26:48本当にお願いします…
0655デフォルトの名無しさん
2006/10/16(月) 12:42:11始めて↓のスレタイを見たときは、
アセンブラ… (;´Д`) ハァハァ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1087897801/
ああなるほど、アセンブラだから汗んブラってことで
汗をかいているって意味か、もしくはブラジャー見てハァハァ言ってるのかって
意味なのかとわかった。んだが・・・
0656デフォルトの名無しさん
2006/10/16(月) 12:53:52そういう意味はないぜ。
伝統的に「Part*」でなく顔文字でスレ名つけてるだけで。
そのスレタイだったら、アセンブラにハァハァしてると
解釈するのが自然で、汗とかけてるわけじゃない
0657デフォルトの名無しさん
2006/10/16(月) 13:26:09ところを想像した
やばい、想像しただけで勃起する
0658デフォルトの名無しさん
2006/10/16(月) 14:14:380659デフォルトの名無しさん
2006/10/16(月) 14:14:58わからないとか言ってる奴は絶対に問題を自力で解こうと思ってないし、
マニュアルも英語だからという理由で読もうともしてない。
以下、アドレスや数値は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にする
0660デフォルトの名無しさん
2006/10/16(月) 14:19:59たんなる釣りだろ。
0661デフォルトの名無しさん
2006/10/16(月) 15:06:000662デフォルトの名無しさん
2006/10/16(月) 15:37:490663デフォルトの名無しさん
2006/10/16(月) 15:47:53このスレを見る限り。(>>36-55,>>88-98,>>191-207,>>244-254,>>572-605,>>614-659)
こちらに質問された方はお気の毒でした。結局間に合ってないよね。
でも、資料提供から問題箇所の切り出し、C言語による整理とここでこんなに
丁寧に指導してもらえることってそうはないから、努力して理解に努める
姿勢を見せれば良い方向に転んだかもしれないあたり、少し残念。
それはさておき。
ここの姉妹スレとしてアセンブラの宿題スレを立てようと思うが、どうだろうか。
意見がなかったら近いうちに立てるよ。住人さんが定着するかどうかはわからないけど。
0664デフォルトの名無しさん
2006/10/16(月) 16:12:140665デフォルトの名無しさん
2006/10/16(月) 16:22:41スレタイに「宿題」「質問」「アセンブラ」などの単語が入ってれば
ある程度人は集まると思う。
過疎化や実質非宿題スレ化などが懸念されるが、
ネタが増えそうな気もするし、俺は立てるのに賛成。
0666デフォルトの名無しさん
2006/10/16(月) 16:39:46少なすぎるか、適量かで意見が分かれそうだな。
このペースだと複数問題のパラレル同時進行てな事態はそうは起きないだろうから
漏れは丁度いいと思う。もうちょい増えても構わんが。
0667デフォルトの名無しさん
2006/10/16(月) 17:33:55本音としては、ここに集う宿題君を肴にしてお前らと暇つぶしするのがいい。
宿題は自分でやれ。2chはお前らの代返君じゃねーんだぞと。
0668デフォルトの名無しさん
2006/10/16(月) 18:05:39それに、質問して来た人を直接ここで肴にするのは
ちょっと気が引けるし。
0669デフォルトの名無しさん
2006/10/16(月) 18:12:280670デフォルトの名無しさん
2006/10/16(月) 18:41:170671デフォルトの名無しさん
2006/10/16(月) 18:45:56> 問2
おしい。32ページ。
> -(Rn) Register is decrimented and then used as a pointer.
つまり、まず減算してからポインターとして使う。
0672デフォルトの名無しさん
2006/10/16(月) 20:57:01STC
SBB EAX,EAX
ADD EAX,13
DEC EAX
XOR EAX,9
NOT AX
SHL EAX,8
上の命令を実行した後、EAXに入っている値を10進法で求めよ。
0673デフォルトの名無しさん
2006/10/16(月) 21:58:43じぶんでやれかす
0674デフォルトの名無しさん
2006/10/16(月) 21:59:50「じぶんでやれかす」って一度書いてみたいなw
0675673
2006/10/16(月) 22:01:510676デフォルトの名無しさん
2006/10/16(月) 22:03:480677デフォルトの名無しさん
2006/10/16(月) 22:14:070678デフォルトの名無しさん
2006/10/16(月) 22:48:250679デフォルトの名無しさん
2006/10/16(月) 23:22:10http://game10.2ch.net/test/read.cgi/mmosaloon/1156941719/l50の172
↑http://www.usamimi.info/~nkra/desktop/GEpassword.html
いつまでもこんなことやってたら高校生とかになっても厨のままだよ
0680デフォルトの名無しさん
2006/10/16(月) 23:27:110681デフォルトの名無しさん
2006/10/17(火) 07:01:21誰か建てろ。
0682デフォルトの名無しさん
2006/10/17(火) 15:07:18質問者は、質問の際に以下の項目を記入する事。
【機種】
【CPU】
【アセンブラ】
※判らない人は判る範囲で埋めて下さい。
アセンブリは環境によってコードが異なるります。
3つとも空欄や不明の場合、回答者が趣味で使っている環境で答えますが
それがあなたの環境で実行出来るか否かの保障は出来ません。
0683デフォルトの名無しさん
2006/10/17(火) 15:18:020684デフォルトの名無しさん
2006/10/17(火) 16:00:27もちろんわかる人には環境を詳しく書いてもらうとして。
0685デフォルトの名無しさん
2006/10/17(火) 16:04:560686デフォルトの名無しさん
2006/10/17(火) 16:29:58アセンブリ
アセンブル
0687デフォルトの名無しさん
2006/10/17(火) 16:43:58アセンブリ言語を指してアセンブラと言うことも多い。
0688デフォルトの名無しさん
2006/10/17(火) 17:26:57アセンブリ
アセンブル
アセンブレ
アセンブロ
つっこみいれてやれよ。
0689デフォルトの名無しさん
2006/10/17(火) 23:00:470690689
2006/10/17(火) 23:01:30吊ってくる
0691デフォルトの名無しさん
2006/10/17(火) 23:30:022.[8085h]←[8051h]+[8052h] を計算し、符号付2進数加算としてのオーバーフローを判定する
この二つを8085プログラムで書けという問題なのですがまったく分かりません。
どなたか分かる方教えてください。よろしくお願いします。
0692デフォルトの名無しさん
2006/10/17(火) 23:49:460693デフォルトの名無しさん
2006/10/18(水) 00:05:04宿題スレに逝け
アセンブラの宿題質問スレ
http://pc8.2ch.net/test/read.cgi/tech/1161097445/
0694デフォルトの名無しさん
2006/10/18(水) 00:11:22次からテンプレに追加せんとな。
0695デフォルトの名無しさん
2006/10/18(水) 00:42:240696デフォルトの名無しさん
2006/10/18(水) 00:58:48まるでソンブレロみたいだ
0697デフォルトの名無しさん
2006/10/18(水) 01:50:04ファミコンアセンブラはまじで楽しい。
それ以外のアセンブラなんて人間にすすめるもんじゃない。
0698デフォルトの名無しさん
2006/10/18(水) 06:29:45まあ、x86系の石よりはマシだが。
68000の優るものは何もない。
0699デフォルトの名無しさん
2006/10/18(水) 06:36:39JAVAチップだって結局(ry
0700・∀・)っ-○◎○新世紀ダンゴリオン ◆DanGorION6
2006/10/18(水) 06:37:480701デフォルトの名無しさん
2006/10/18(水) 09:22:080702デフォルトの名無しさん
2006/10/19(木) 19:45:53アセンブラをアセンブラでアセンブルする厨は(・∀・)カエレ!
0703デフォルトの名無しさん
2006/10/20(金) 00:14:570704デフォルトの名無しさん
2006/10/20(金) 00:24:20そういうのもそうでないのもある。
awkで書かれてるのとかもあるよ
0705デフォルトの名無しさん
2006/10/20(金) 00:27:38普通の言語のコンパイラならともかく、
アセンブラは何も考えずにアセンブルできるから
言語は何でもいいんじゃないの。
0706デフォルトの名無しさん
2006/10/20(金) 01:18:250707デフォルトの名無しさん
2006/10/20(金) 03:04:40勝手に最適化してくれるらしいぞ
0708デフォルトの名無しさん
2006/10/20(金) 06:31:390709デフォルトの名無しさん
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 ; おわり
0710709
2006/10/20(金) 07:38:300711デフォルトの名無しさん
2006/10/20(金) 13:06:04push 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バイトってこと。
0712デフォルトの名無しさん
2006/10/20(金) 13:38:16引数で渡された値に帰り先を変更したいようだから
それではやってる事が全く違うんじゃないか?
0713デフォルトの名無しさん
2006/10/20(金) 13:42:00偉そうに嘘を教える知ったか乙
0714デフォルトの名無しさん
2006/10/20(金) 14:05:59吊って来るorz
0715デフォルトの名無しさん
2006/10/21(土) 02:50:55mov ax,[di+1]はNGですか?
0716デフォルトの名無しさん
2006/10/23(月) 11:34:17retの戻りアドレスをArg1に変更したいだけならこうじゃないか?
0100 mov AX,0300
0103 push AX ; Arg1
0104 call 200
0200 pop AX ; 本来のret先をスタックから取り除く
0201 ret ; 103でpushした値がスタックトップなのでそこにretする
0300 int 20 ; おわり
0717デフォルトの名無しさん
2006/10/23(月) 15:15:42入る大学間違えたんですが。
0718デフォルトの名無しさん
2006/10/23(月) 17:24:31だから?
0719デフォルトの名無しさん
2006/10/23(月) 17:35:06よくあることだ。気にするな。
0720717
2006/10/23(月) 17:44:40誤爆です。
(なぜか向こうにレスがつかなかった。)
0721デフォルトの名無しさん
2006/10/23(月) 17:45:08ret
0722デフォルトの名無しさん
2006/10/23(月) 18:32:580723デフォルトの名無しさん
2006/10/23(月) 19:24:310724デフォルトの名無しさん
2006/10/24(火) 07:09:340725デフォルトの名無しさん
2006/10/24(火) 08:07:590726デフォルトの名無しさん
2006/10/24(火) 10:05:420728デフォルトの名無しさん
2006/10/24(火) 13:36:180729デフォルトの名無しさん
2006/10/24(火) 13:44:420730デフォルトの名無しさん
2006/10/24(火) 13:53:050731デフォルトの名無しさん
2006/10/24(火) 14:01:41ただし、WORDが何バイトか、あるいは何ビットかは知ったこっちゃない。
0732デフォルトの名無しさん
2006/10/24(火) 15:33:360733デフォルトの名無しさん
2006/10/24(火) 15:40:220734デフォルトの名無しさん
2006/10/24(火) 18:15:290735デフォルトの名無しさん
2006/10/24(火) 18:26:320736デフォルトの名無しさん
2006/10/24(火) 18:32:3310進法なら44だ。
これが表す命令はCPUによって違うが、
1byteの2CH命令を持つCPUって何だろ。
0737デフォルトの名無しさん
2006/10/24(火) 18:33:280738デフォルトの名無しさん
2006/10/24(火) 18:35:59マジレスすると、炭素と水素が結合した物が2個。
0739デフォルトの名無しさん
2006/10/24(火) 23:15:410740デフォルトの名無しさん
2006/10/24(火) 23:52:37z80なら
inc l
0742デフォルトの名無しさん
2006/10/25(水) 10:56:51ザイログフォーマットではxxxhという表現は無いな
2chだとインテルフォーマットだと思うぞ
だから INC L だな
0743デフォルトの名無しさん
2006/10/25(水) 11:21:370744デフォルトの名無しさん
2006/10/25(水) 11:37:030745デフォルトの名無しさん
2006/10/25(水) 11:58:45いい音楽って例えばどういうの?
0746デフォルトの名無しさん
2006/10/25(水) 12:55:150747デフォルトの名無しさん
2006/10/25(水) 13:25:020748デフォルトの名無しさん
2006/10/25(水) 22:46:00搭乗してるユニットのOSを書き換えながら
戦闘するパイロットが居るんだっけか
0749デフォルトの名無しさん
2006/10/25(水) 22:54:05しーぽん
0750デフォルトの名無しさん
2006/10/26(木) 01:51:030751デフォルトの名無しさん
2006/10/26(木) 01:54:160752デフォルトの名無しさん
2006/10/26(木) 01:57:33てか、なんちゃら機関と同じで実現できないだろ。
0753デフォルトの名無しさん
2006/10/26(木) 02:04:47ユーザーモードで動いてるOSがいくつも走ってて
そっちを書き換えてた可能性は十分ある。
それほど不自然ではない気もするぞ。
別に0から全てのコード書き上げたってんじゃないんだろう?
0754デフォルトの名無しさん
2006/10/26(木) 02:17:04OSのカーネルだろうがメモリ上の単なるデータに過ぎないんだから、適切な権限さえあれば
いくらでも書き換えることができる。アーキテクチャにもよるけどな。
0755デフォルトの名無しさん
2006/10/26(木) 02:19:01勧善懲悪覗機関
0756デフォルトの名無しさん
2006/10/26(木) 02:41:260757デフォルトの名無しさん
2006/10/26(木) 03:56:04全然勉強が進まん…orz
0758デフォルトの名無しさん
2006/10/26(木) 11:16:360759デフォルトの名無しさん
2006/10/26(木) 12:07:390760デフォルトの名無しさん
2006/10/26(木) 12:32:120761デフォルトの名無しさん
2006/10/26(木) 17:20:360762デフォルトの名無しさん
2006/10/26(木) 18:24:59オモイカネがOSだったんだw
0763デフォルトの名無しさん
2006/10/27(金) 00:14:18希望はよくわかった。
今日から君はコーダーだ。
0764デフォルトの名無しさん
2006/10/27(金) 02:08:240765デフォルトの名無しさん
2006/10/27(金) 07:41:490766デフォルトの名無しさん
2006/10/27(金) 08:24:40極悪人事だな
0767デフォルトの名無しさん
2006/10/27(金) 13:26:340768デフォルトの名無しさん
2006/10/27(金) 15:30:01おっさんの喘ぎ声がでるようなリコーダーはいりません!
0769デフォルトの名無しさん
2006/10/27(金) 16:15:05486CPUでCR0レジスタの30と29ビット目を1にすると
キャッシュ機能を無効にすることが出来るのでしょうか?
0770デフォルトの名無しさん
2006/10/27(金) 16:27:130771デフォルトの名無しさん
2006/10/27(金) 16:29:420772デフォルトの名無しさん
2006/10/30(月) 03:26:210773デフォルトの名無しさん
2006/10/30(月) 15:02:590774デフォルトの名無しさん
2006/10/30(月) 16:01:340775デフォルトの名無しさん
2006/10/30(月) 16:02:32Rubyとかじゃないの?
0776デフォルトの名無しさん
2006/10/30(月) 20:30:24よく分からないがTTLですらアセンブラは存在していたのになぜRubyなんか持ち出す?
awkで十分だよ
0777デフォルトの名無しさん
2006/10/30(月) 22:10:470778デフォルトの名無しさん
2006/10/30(月) 23:18:47ビットスライス組み合わせてニーモニックからバイナリへの変換でもしてたん?
0779デフォルトの名無しさん
2006/10/31(火) 07:34:25互換性はあるともないとも書いてないのが…使ってる香具師いる?
0780デフォルトの名無しさん
2006/10/31(火) 08:20:28nasm派はYASMでおk
0781デフォルトの名無しさん
2006/11/02(木) 13:03:08お前の大学特定した
0782デフォルトの名無しさん
2006/11/04(土) 05:41:080783デフォルトの名無しさん
2006/11/04(土) 13:24:430784デフォルトの名無しさん
2006/11/05(日) 11:17:020785デフォルトの名無しさん
2006/11/07(火) 01:36:590786デフォルトの名無しさん
2006/11/07(火) 01:40:210787デフォルトの名無しさん
2006/11/07(火) 05:38:350788デフォルトの名無しさん
2006/11/07(火) 06:18:24「Romanticが止まらない」なら好きだな
0789デフォルトの名無しさん
2006/11/07(火) 06:23:44ブールーマー(・∀・)イイ!
あんぱーんあんぱーんあんぱんあんぱん
あん!ぱん!
0790デフォルトの名無しさん
2006/11/07(火) 10:27:01ハイヒール大好きだけどバンプスとミュールも大好き
カノジョできたら無理矢理はかせてやりたい
0791デフォルトの名無しさん
2006/11/07(火) 13:15:540792デフォルトの名無しさん
2006/11/11(土) 00:58:56夏の薄着にはピンヒールのサンダルがちょっとイイ
0793デフォルトの名無しさん
2006/11/16(木) 05:24:25みんな、がんがれ
0794デフォルトの名無しさん
2006/11/16(木) 20:49:500795デフォルトの名無しさん
2006/11/16(木) 23:41:050796デフォルトの名無しさん
2006/11/17(金) 09:36:20そもそもいらん信号出すような命令残しておくなよ。バグだろ?>某社
0797デフォルトの名無しさん
2006/11/17(金) 10:56:54過去への優しさです。
0798デフォルトの名無しさん
2006/11/17(金) 12:07:060799デフォルトの名無しさん
2006/11/17(金) 12:21:00おまえの優しさが人を傷つけていることになぜ気づかない?
0800デフォルトの名無しさん
2006/11/17(金) 14:28:58それは仕様です
0801デフォルトの名無しさん
2006/11/17(金) 16:20:180802デフォルトの名無しさん
2006/11/18(土) 22:35:350803デフォルトの名無しさん
2006/11/18(土) 23:34:19「ガッはガッ」
0804デフォルトの名無しさん
2006/11/19(日) 18:11:49(アセンブラを使うのは)ぬるぽ
0805デフォルトの名無しさん
2006/11/20(月) 10:08:390806デフォルトの名無しさん
2006/11/20(月) 14:04:080807デフォルトの名無しさん
2006/11/20(月) 14:22:000808デフォルトの名無しさん
2006/11/20(月) 19:26:330809デフォルトの名無しさん
2006/11/23(木) 11:25:490810デフォルトの名無しさん
2006/11/25(土) 00:22:11nasmで作った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では無理だったんだが・・・
0811デフォルトの名無しさん
2006/11/25(土) 00:24:04コードに明示されない順番依存ってリロケートとしておかしくないの?
0812デフォルトの名無しさん
2006/11/25(土) 00:33:29ごめん、サンプルは適当に書いた。
要は、exeとして必要な部分を一切省いた、純粋にアセンブラで記述した部分だけを出せるリンカーって事で。
nasmで-f BINを指定したときと同じようなイメージ。
0813デフォルトの名無しさん
2006/11/25(土) 09:50:16objと言われてもOMFかcoff(win32)かわからない
OMFならobj2binがgoogleでヒットするな
0814デフォルトの名無しさん
2006/11/25(土) 10:07:04nasm -fbin b.asm
copy /b a+b hoge.bin
じゃ駄目なの?
0815デフォルトの名無しさん
2006/11/25(土) 11:02:32http://www.microsoft.com/downloads/details.aspx?FamilyID=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=ja
0816810
2006/11/26(日) 23:38:21>>813
一応どちらでも出せるんで、ツールに合わせます。
>>814
a.asmからb.asmにあるラベルを参照したりすることがあるので、単純にくっつけるのはまずいです。
>>815
MASMのマニュアル?を探してみましたが、どのオプションでそれができるか不明でした。
どれか使えばできますか?
0817デフォルトの名無しさん
2006/11/27(月) 08:35:47できれば日本語がいいんですが・・・
0818デフォルトの名無しさん
2006/11/27(月) 10:36:460819デフォルトの名無しさん
2006/11/27(月) 11:09:31MS-DOSとかが利用するような。
0820デフォルトの名無しさん
2006/11/27(月) 11:27:330821デフォルトの名無しさん
2006/11/27(月) 11:41:22できればATも参考に知りたいですが・・・
0822デフォルトの名無しさん
2006/11/27(月) 11:57:58多分それが一番手っ取り早い。
0823デフォルトの名無しさん
2006/11/27(月) 12:24:560824デフォルトの名無しさん
2006/11/27(月) 16:42:32できるだけ早く欲しかったんですが。
明日、市の図書館とBOOKOFFあたってみます。
0825デフォルトの名無しさん
2006/11/27(月) 17:07:290826デフォルトの名無しさん
2006/11/27(月) 20:31:23AT BIOSは"InterruptList"があるけど。
0827デフォルトの名無しさん
2006/11/27(月) 21:47:09ttp://www.webtech.co.jp/company/doc/undocumented_mem/index.html
0828デフォルトの名無しさん
2006/11/28(火) 00:25:03PC-9801 プログラマーズBible,東京理科大学EIC編,技術評論社,ISBN4-87408-615-2
UNDOCUMENTED 9801/9821 Vol1,小高輝真,河野健,インプレス,ISBN4-8443-4642-3
に一通り載ってる
0829デフォルトの名無しさん
2006/11/30(木) 01:19:29全部アセンブリで書けばあらゆるソフトは超快速になるのか?
0830デフォルトの名無しさん
2006/11/30(木) 01:52:24そんなの当たり前じゃん。釣りか?
0831デフォルトの名無しさん
2006/11/30(木) 01:55:23じゃあアセンブラで2chブラウザつくってくれ
インタフェースもおしゃれにしてくれよな!
0832デフォルトの名無しさん
2006/11/30(木) 02:11:19つーか、CPUがどういう動作をするか完全に理解してて、各命令の動作速度、スレッドまで考慮できれば
アセンブラの方が早くできるだろうなw
マンドクセ('A`)
0833デフォルトの名無しさん
2006/11/30(木) 02:34:26それって総当りでいつかは暗号解けるだろ、
と似たようなアルゴリズムだよね
0834デフォルトの名無しさん
2006/11/30(木) 12:45:32本来は総当りする必要はない
0835デフォルトの名無しさん
2006/11/30(木) 15:19:380836デフォルトの名無しさん
2006/11/30(木) 22:24:16それまで宇宙があればね。
0837デフォルトの名無しさん
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,´`ヽ;;;、,,,,,,___,) ヽ'-゙'"
(`ー':;;;;;;;;;;;;;;;ノ
``''''''``'''''´
0838デフォルトの名無しさん
2006/11/30(木) 22:44:38アセンブラっていまどこでインストールすればいいんだ?
IDE使わずに100%フリーな環境でそろえたいんだけど
0839デフォルトの名無しさん
2006/11/30(木) 22:46:570840デフォルトの名無しさん
2006/11/30(木) 22:50:350841デフォルトの名無しさん
2006/11/30(木) 23:01:550842デフォルトの名無しさん
2006/12/01(金) 00:23:40NASMかMASM>815
0843デフォルトの名無しさん
2006/12/01(金) 00:40:22しかもIDE無しでだ
なおこのレスには一部誇張が含まれる
0844デフォルトの名無しさん
2006/12/01(金) 00:51:40>このパッケージをインストールするために、お使いのコンピュータ上に Visual C++ 2005 Express Edition がインストールされている必要があります。
これフリーなのか?
0845デフォルトの名無しさん
2006/12/01(金) 01:04:480846デフォルトの名無しさん
2006/12/01(金) 01:11:530847デフォルトの名無しさん
2006/12/01(金) 01:12:150848デフォルトの名無しさん
2006/12/01(金) 05:14:01それだけ取り出して IDE本体は削除すればいいんじゃね?
0849デフォルトの名無しさん
2006/12/01(金) 07:03:15インストール中にTempディレクトリを見ると、VS2005EEなしでも取り出せるな。
0850デフォルトの名無しさん
2006/12/01(金) 08:47:450851デフォルトの名無しさん
2006/12/01(金) 19:23:12そういわれてみるとちょっと文章変だったり、ところどころ勘違いっぽい記述があるけど
それを差し引いてもすごいよな。
0852デフォルトの名無しさん
2006/12/01(金) 23:04:330853・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2006/12/01(金) 23:39:480854デフォルトの名無しさん
2006/12/01(金) 23:45:53っていうか、その人はそこそこ有名じゃんw
厨房なんて思うわけないよ
0855・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2006/12/01(金) 23:51:36じゃあこっちか
大御所ばっかじゃねーかwwwww
0856デフォルトの名無しさん
2006/12/01(金) 23:54:01http://codezine.jp/a/article/aid/505.aspx
0857・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2006/12/02(土) 00:07:010858デフォルトの名無しさん
2006/12/04(月) 12:56:360859デフォルトの名無しさん
2006/12/06(水) 03:44:12どっかでダウンロード出来ないんですか?
0860デフォルトの名無しさん
2006/12/07(木) 21:41:09今はだいぶ便利になったみたいだね。
おっさんはマジで市ねよ。
0861デフォルトの名無しさん
2006/12/08(金) 10:58:56DDSとか
0862デフォルトの名無しさん
2006/12/09(土) 22:31:370863デフォルトの名無しさん
2006/12/10(日) 12:22:32ttp://www.wex.cn/dwing/mygem.htm
0864デフォルトの名無しさん
2006/12/13(水) 16:36:430865デフォルトの名無しさん
2006/12/13(水) 21:08:200866デフォルトの名無しさん
2006/12/14(木) 14:05:05addis命令というのがあるみたいなのでそれを使ってみます。
0867デフォルトの名無しさん
2006/12/15(金) 10:21:250868デフォルトの名無しさん
2006/12/15(金) 17:52:08Macですよ。
0869デフォルトの名無しさん
2006/12/15(金) 21:29:38それともld scriptで対処するべきか。
0870デフォルトの名無しさん
2006/12/18(月) 22:10:15そこは自作スクリプトで対応(ry
0871デフォルトの名無しさん
2006/12/18(月) 22:45:39やっぱりか。とりあえず__textセクションだけ抜き出す奴を作った。
これで何とかなると思う。ありがとう。
0872デフォルトの名無しさん
2006/12/19(火) 01:16:140873デフォルトの名無しさん
2006/12/19(火) 01:22:59そう。Mach-Oでやってるの。
いま494bytesのHello, world!が出来たとこ。
普通にCで作ったら8192bytesでしたよ。
ここまでくるのに苦労しましたわ。
0874デフォルトの名無しさん
2006/12/19(火) 18:24:34mov ax,09h
mov dx,offset msg
int 21h
msg db 'Hello world!',0dh,0ah,'$'
0875デフォルトの名無しさん
2006/12/19(火) 21:25:03ブログで書いてたやつか?
0876デフォルトの名無しさん
2006/12/20(水) 09:52:28そのメッセージ部分で終了できるのか?
0877デフォルトの名無しさん
2006/12/20(水) 10:00:310878デフォルトの名無しさん
2006/12/20(水) 19:19:45そうそう
0879874
2006/12/20(水) 20:01:58mov ah,09h
mov dx,offset msg
int 21h
mov ah,4ch
int 21h
msg db 'Hello world!',0dh,0ah,'$'
0880デフォルトの名無しさん
2006/12/21(木) 13:11:32縮めるんなら、
mov ah,4ch
int 21h
を
ret
にする
0881デフォルトの名無しさん
2007/01/03(水) 01:05:530882デフォルトの名無しさん
2007/01/12(金) 15:37:460883デフォルトの名無しさん
2007/01/12(金) 17:07:240884デフォルトの名無しさん
2007/01/12(金) 17:11:000885デフォルトの名無しさん
2007/01/12(金) 18:19:260886デフォルトの名無しさん
2007/01/12(金) 19:14:23___ ‖
/ `ヽ‖
,:' 、ゑ
,' ; i 八、
|,! 、 ,! | ,' ,〃ヽ!;、
|!| l川 l リへ'==二二ト、
リ川 !| i′ ゙、 ', ',
lルl ||,レ′ ヽ ,ノ ,〉
|川'、 ,,.,.r'" ,,ン゙
`T" ! ,/ '.ノ,/|
/ ,!´ !゙ヾ{ |
/ ,' i ゙ ! ,l゙
,r‐'ヽ-、! ', l|
{ `ヽ ! 「゙フ
,>┬―/ ; i,`{
/ /リ川' ', ゙、
/ ,/ ゙、 ゙、
ノ / ', `、
\_/ ; ゙、ヽ、
l__ ! ___〕 ,、l
 ̄`‐┬―r┬‐r'´ `'‐'′
| .! | |
| | .| |
0887デフォルトの名無しさん
2007/01/12(金) 23:03:060888デフォルトの名無しさん
2007/01/12(金) 23:17:59通報しますた
0889デフォルトの名無しさん
2007/01/13(土) 18:44:00記念パピコ
0890デフォルトの名無しさん
2007/01/14(日) 01:13:38日本語で解説してあるサイトをご存知の方いらしたら教えてください。
色々検索しても英語の情報ばかりで理解できず困っています。
宜しくお願いします
0891デフォルトの名無しさん
2007/01/14(日) 01:27:070892デフォルトの名無しさん
2007/01/14(日) 01:35:370893デフォルトの名無しさん
2007/01/14(日) 01:37:12ぐらい買えよ
0894デフォルトの名無しさん
2007/01/14(日) 01:39:400895デフォルトの名無しさん
2007/01/14(日) 10:55:58港で話題の「GNU開発ツール」(ISBN:4-903708-01-2)もいいと思うぞ。
0896デフォルトの名無しさん
2007/01/14(日) 11:12:47漏れは陸(おか)の人間だから巷(ちまた)で話題の本を探すよ。
0897895
2007/01/14(日) 18:21:49アワビをくわえた尼さんが話してたんだもん!!
ほら、こんなに仲間が。↓
港で噂 の検索結果 約 134 件
0898デフォルトの名無しさん
2007/01/14(日) 18:48:020899デフォルトの名無しさん
2007/01/14(日) 22:48:51チトワロタ
0900デフォルトの名無しさん
2007/01/19(金) 02:17:36たとえば10000001をシフトすると、CFが1になり、値は2となります。
左シフトでは、符号付きの数値には対応してないという事でしょうか。
いや、まさかそんなわけないだろし。
0901デフォルトの名無しさん
2007/01/19(金) 02:47:090902デフォルトの名無しさん
2007/01/19(金) 02:50:44もしかして
00000011
ってなると思ってる
0903デフォルトの名無しさん
2007/01/19(金) 03:28:06CFが1で、00000010になるのではないかと。
>>901
あーそっか。-63か-64かは知らないが、絶対値がこれ以下なら
上から2番目のビットも1だから負のままだし、
絶対値がそれ以上の場合にはオーバーフローになるわけね。
tnx.
0904デフォルトの名無しさん
2007/01/23(火) 01:03:12MOV AH, 4CH
INT 21H
とシステムコールを利用した時、スタックに値があれば、
終了するのではなく、その値のアドレスに飛ぶのでしょうかね?
Cで例えるなら、exit()でなくreturn相当なのかな。
0905デフォルトの名無しさん
2007/01/23(火) 03:40:16exit(AL)になる
returnはret
0906デフォルトの名無しさん
2007/01/23(火) 06:28:00前提が書いてないから勝手にMS-DOSと仮定するが、
そのシステムコールではスタックは関係ない。
0907デフォルトの名無しさん
2007/01/23(火) 21:23:33>>906
どうもです。&& 環境書いてなくてすまんかったです。
しかし、exitであるならば、あの本のコードは少し変なのかな。
……と思ったら、web上の正誤表見たら訂正されてたorz
0908デフォルトの名無しさん
2007/01/26(金) 17:26:54ちょwwww
0909デフォルトの名無しさん
2007/01/26(金) 17:31:250910デフォルトの名無しさん
2007/01/26(金) 17:33:45EMULATE_WINDOWSを展開すると、haltするコード
だが、笑い所がいまいち分からない
だってコードの使い所が分からない
0911デフォルトの名無しさん
2007/01/26(金) 17:36:05面白くもなんともないが。
0912デフォルトの名無しさん
2007/01/26(金) 19:45:290913デフォルトの名無しさん
2007/01/28(日) 12:29:15よくある実装だ
0914デフォルトの名無しさん
2007/02/01(木) 20:41:18linuxなんでdebugコマンドが無くて試せず辛い。
同じようなコマンドにはどのようなものがあるでしょうか。
0915デフォルトの名無しさん
2007/02/01(木) 23:05:52たぶん期待する物はない。
gdbはそういう用途では使いものにならんからのう。
adbとかたまに欲しくなりますな。
0916デフォルトの名無しさん
2007/02/02(金) 00:21:17昔のunixには標準で入ってたんだがなぁ。ccが消えた頃から無くなったんかねぇ。
0917デフォルトの名無しさん
2007/02/02(金) 02:13:06うーん、そうなのですかぁ。
なんとも残念無念。
0918デフォルトの名無しさん
2007/02/05(月) 21:40:540919デフォルトの名無しさん
2007/02/05(月) 21:51:010920デフォルトの名無しさん
2007/02/05(月) 22:07:350921デフォルトの名無しさん
2007/02/14(水) 00:12:45こんばんはこんばんは!
初級Javaプログラマだけど
アセンブラを勉強するための環境って最近はなにが多いの?
アセンブラってCPUによって違うんだよね?
x86系がほとんどなの?
64bitのはまた書き方違ってくる?
?
?
?
0922デフォルトの名無しさん
2007/02/14(水) 00:46:02初心者向けの書籍がこれほど多いアセンブリ言語も無かろう
0923デフォルトの名無しさん
2007/02/14(水) 01:11:16>正式名称は,CASL II(きゃすうるつー)。
へぇー
でも実用的じゃないアセンブリよりも、Intel系のアセンブリをやったほうが
いい気がするんだけど、どっちでも勉強になるからかわんねって感じなのかな
0924デフォルトの名無しさん
2007/02/14(水) 01:25:55x86のアセンブラは今や一部の人を除いて利用される頻度は少ないのである意味あまり実用的でない。
0925デフォルトの名無しさん
2007/02/14(水) 01:27:260926デフォルトの名無しさん
2007/02/14(水) 01:33:260927デフォルトの名無しさん
2007/02/14(水) 01:40:58つーか、誰かやってくれ。今なら給料出すから。
0928・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2007/02/14(水) 01:44:08x86アセンブラだろ常識的に考えて。
0929デフォルトの名無しさん
2007/02/14(水) 01:44:25でも、初心者には敷居がたかそうだなぁ
0930デフォルトの名無しさん
2007/02/14(水) 01:56:340931デフォルトの名無しさん
2007/02/14(水) 02:00:010932デフォルトの名無しさん
2007/02/14(水) 02:03:560933デフォルトの名無しさん
2007/02/14(水) 02:14:40普通はコンパイラでやるだろ。
PowerPC系のアセンブラも覚えておいて損はないだろうけど、
これから未来永劫CELLが使われ続ける訳でもなし。
0934・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2007/02/14(水) 02:20:320935デフォルトの名無しさん
2007/02/14(水) 02:24:01自分が使うCPUにどういう命令があって、その実行にどれだけのコストがかかるかという知識がいらなくなる時代はまだ当分こないだろうな。
重要なのはそういう知識であって、アセンブラの文法とか機能はわりとどうでもいい。
0936デフォルトの名無しさん
2007/02/14(水) 02:25:59実力が
0937デフォルトの名無しさん
2007/02/14(水) 10:06:54入門書とかじゃなくて。
詳しく買いてるやつ。
0938デフォルトの名無しさん
2007/02/14(水) 13:03:47インストラクションセットを覚える暇すらない
みんな8bitとか16bitとかだけど
命令表を斜め読みして
「げ、左シフトねーじゃんこのCPU」とか
「符号反転ねーよ」とか
「乗算命令じゅーよー」だの
「わは。レジスタ4つ、こっちは32個ー」とか言いつつテンパってる
0939デフォルトの名無しさん
2007/02/14(水) 13:55:11でも一つもアセンブリ齧ってないとそれも判らないんだよね
0940デフォルトの名無しさん
2007/02/14(水) 16:04:08たぶんそう思ったヤツが高級言語作ろうと思ったんだろうな
0941デフォルトの名無しさん
2007/02/14(水) 16:28:304つのせりふのうち3つは何だかわかった。
orz
0942デフォルトの名無しさん
2007/02/14(水) 17:22:050943デフォルトの名無しさん
2007/02/14(水) 23:04:01れが |ハ{{ }} )))ヽ、l l ハ
が |、{ ハリノノノノノノ)、 l l
い |ヽヽー、彡彡ノノノ} に
い |ヾヾヾヾヾヽ彡彡} や
!! /:.:.:.ヾヾヾヾヽ彡彡} l っ
\__/{ l ii | l|} ハ、ヾ} ミ彡ト
彡シ ,ェ、、、ヾ{{ヽ} l|l ィェ=リ、シ} |l
lミ{ ゙イシモ'テ、ミヽ}シィ=ラ'ァ、 }ミ}} l
ヾミ  ̄~'ィ''': |゙:ー. ̄ lノ/l | |
ヾヾ " : : !、 ` lイノ l| |
>l゙、 ー、,'ソ /.|}、 l| |
:.lヽ ヽ ー_ ‐-‐ァ' /::ノl ト、
:.:.:.:\ヽ 二" /::// /:.:.l:.:.
:.:.:.:.:.::ヽ:\ /::://:.:,':.:..:l:.:.
;.;.;.;.;;.:.:.:.\`ー-- '" //:.:.:;l:.:.:.:l:.:
難しい問題ほど、解けると達成感あるのよね。
0944デフォルトの名無しさん
2007/02/17(土) 21:49:42unsigned int updateCRC32( unsigned char *src, unsigned int size, unsigned int crc )
{
while ( size-- )
crc = ( crc << 8 ) ^ crcTable[ ( crc >> 24 ) ^ *src++ ];
return crc;
}
誰かこれを高速化して下され。
Cの範囲じゃやはりこれが限度っぽい。
後はアセンブラしかなさそうなのです。
0945・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2007/02/17(土) 22:05:55アルゴリズムの改良を試みずにアセンブラに頼るのは知性の敗北
http://www.intel.co.jp/jp/developer/technology/magazine/communications/slicing-by-8-0306.htm
コードはこちらからどーぞ
http://sourceforge.net/projects/slicing-by-8
0946デフォルトの名無しさん
2007/02/17(土) 22:26:40どちらかというとアセンブラで書くべきアルゴリズムだけどな
0947デフォルトの名無しさん
2007/02/17(土) 22:35:18CASLなんて通過した後は一切触らないから
毎年IPAが配ってる案内書に付属してる仕様書だけで十分。
命令が読めりゃ後は何も困ることないでしょ。
0948デフォルトの名無しさん
2007/02/18(日) 05:22:210949デフォルトの名無しさん
2007/02/18(日) 06:47:01mov ecx, size
mov esi, src
rep crc32
0950デフォルトの名無しさん
2007/02/18(日) 08:06:08処がだ、最近のコンパイラはforに特化した最適化をすることが多いから一概には言えない。
0951デフォルトの名無しさん
2007/02/18(日) 14:09:14ていうかCPUの内部が複雑杉
0952・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2007/02/18(日) 14:33:51Nehalemキター
0953デフォルトの名無しさん
2007/02/18(日) 14:50:040954デフォルトの名無しさん
2007/02/19(月) 07:54:370955デフォルトの名無しさん
2007/02/19(月) 18:22:15とか? Z80でいいなら・・・(・∀・)
0956デフォルトの名無しさん
2007/02/19(月) 20:26:410957・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2007/02/20(火) 00:44:35Wiiでもやるんかな、性能稼ぐために
0958デフォルトの名無しさん
2007/02/20(火) 02:09:120959・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2007/02/20(火) 02:54:02それはひょっとしてギャグで言ってるのか?
0960デフォルトの名無しさん
2007/02/20(火) 04:53:080961デフォルトの名無しさん
2007/02/20(火) 06:07:13あの変態なZ80に、更に変態なメモリ管理命令増やした奴だっけ?
#いや、割りと好きですがw
>>957
この前は漏れがそう書いたら社員乙とか書かれた気がするが……
0962デフォルトの名無しさん
2007/02/20(火) 06:52:22今時アセで組む必要があるなんて
余程余裕のない組み込みか
Cellみたいな変な石使う時だろうしそうかもね
0963デフォルトの名無しさん
2007/02/20(火) 08:31:10セグメントレジスタの値を表示したいのですが、次のようなコードで
おkですか?
int eaxv, ebxv, ecxv, edxv, esiv, ediv, ebpv, espv;
wchar_t csv, dsv, ssv, esv, fsv, gsv;
eaxv = ebxv = ecxv = edxv = esiv = ediv = ebpv = espv = 0;
csv = dsv = ssv = esv = fsv = gsv = 0;
__asm {
mov eaxv, eax;
mov ebxv, ebx;
mov ecxv, ecx;
mov edxv, edx;
mov esiv, esi;
mov ediv, edi;
mov ebpv, ebp;
mov espv, esp;
mov csv, cs;
mov dsv, ds;
mov ssv, ss;
mov esv, es;
mov fsv, fs;
mov gsv, gs;
}
printf( "EAX=%08X EBX=%08X ECX=%08X EDX=%08X\n", eaxv, ebxv, ecxv, edxv );
printf( "ESI=%08X EDI=%08X EBP=%08X ESP=%08X\n", esiv, ediv, ebpv, espv );
printf( "CS=%04X DS=%04X SS=%04X ES=%04X FS=%04X GS=%04X\n", csv, dsv, ssv, esv, fsv, gsv );
0964デフォルトの名無しさん
2007/02/20(火) 10:36:56全部纏めてでなく、一個ずつやらないとダメなんでない?
#つーか、デバッガで見ることはできないのか?
0965デフォルトの名無しさん
2007/02/20(火) 15:47:34速いかどうかは、解らないが、とりあえず国産CISCCPU(32bit?)の場合
#pragma PARAMETER update32(A0,R3R1,R2R0)
----
_updateCRC32:
$updateCRC32:
PUSHM A1
__loop:
MOV.W R2,A1
SHL.W #-8,A1
XOR.B [A0],A1
SHL.L #2,A1 ; Long Index
SHL.L #8,R2R0
XOR.L _crcTable[A1],R2R0
ADDX #1,A0
SUBX #1,R3R1
JNZ __loop
POPM A1
RTS
0966デフォルトの名無しさん
2007/02/20(火) 18:50:36スタックに突っ込めばいいんじゃないかな。
でもってespを適当な構造体のポインタに格納したりして。
0967デフォルトの名無しさん
2007/02/20(火) 19:54:37ml.exeのインラインアセンブラってなんだよ。 等の細かいツッコミは置いといて。
表示するだけならそれで良い。
アセンブリ出力(VC++なら/FAs)を出して確認すれ。
0968デフォルトの名無しさん
2007/02/20(火) 23:42:560969デフォルトの名無しさん
2007/02/21(水) 02:43:28みなさん、貴重なアドバイスをありがとうございます。
.asmファイルを見てみると、インラインアセンブラに対応するコードは
下のようになっていました。
余分な処理はないようなので、一応問題なくレジスタの内容を
ストア(?)できているようです。
mov DWORD PTR _eaxv$[ebp], eax
mov DWORD PTR _ebxv$[ebp], ebx
mov DWORD PTR _ecxv$[ebp], ecx
mov DWORD PTR _edxv$[ebp], edx
mov DWORD PTR _esiv$[ebp], esi
mov DWORD PTR _ediv$[ebp], edi
mov DWORD PTR _ebpv$[ebp], ebp
mov DWORD PTR _espv$[ebp], esp
mov WORD PTR _csv$[ebp], cs
mov WORD PTR _dsv$[ebp], ds
mov WORD PTR _ssv$[ebp], ss
mov WORD PTR _esv$[ebp], es
mov WORD PTR _fsv$[ebp], fs
mov WORD PTR _gsv$[ebp], gs
0970デフォルトの名無しさん
2007/02/21(水) 14:15:180971デフォルトの名無しさん
2007/02/21(水) 14:40:270972デフォルトの名無しさん
2007/02/23(金) 00:05:17メモリのアドレスを特定のルーチンだけで利用するんですが、
スタックに入れてpush,popするべきなのか、
メモリから読んでまた書き戻すべきなのか、
どっちがいいんでしょう?
値を更新するので所謂Cのポインタなのですが。
やはりスタックの方が若干速そうなのですがその内バグりそうです。
慣れるまではメモリを使うべきでしょうか?
0973デフォルトの名無しさん
2007/02/23(金) 00:10:01レジスタ
0974デフォルトの名無しさん
2007/02/23(金) 01:12:27例えば
AD E0 11 LDA
で11E0の値が260以上ならXにジャンプ
260以下ならYにジャンプという命令はどのようにしたらいいですか?
AD E0 11
CD 60 02
F0 04
5C XX XX XX
5c YY YY YY
とやりましたがゼロフラグを使っての分岐なので
260だったときでした。
「260以上はXにジャンプ、260以下はYにジャンプ」の分岐の方法を
何方かご教授下さい。
0975デフォルトの名無しさん
2007/02/23(金) 01:34:3465816は知らんが、ニモニック表をよく見てみ。
条件分岐命令にゼロフラグチェック以外にもキャリーフラグチェックのがあるはずだから。
0976デフォルトの名無しさん
2007/02/23(金) 03:01:21おまい、OKWaveでも同じこときいてたな。>>975の説明でも
理解できなさそうだ。
なあ、206以下と260以上で分けるていってるけどさ、「260」のときは
どっちに分岐させんだいw
0977デフォルトの名無しさん
2007/02/23(金) 08:47:1765816ではこうやって覚えとけばいい。
同じ(A = CMP xxxx):BEQ F0
以外(A ≠ CMP xxxx):BNE D0
未満(A < CMP xxxx):BCC(BLT) 90
以上(A ≧ CMP xxxx):BCS(BGE) B0
あと、CD 60 02だとCMP $260、つまり$260番地の内容との比較になる。
即値と比較がしたかったらC9 60 02とやるべき。
0978デフォルトの名無しさん
2007/02/23(金) 09:25:36フラグの意味がわかってませんでした。
>>976
260以下と260未満でした。
すみません。
>>977
ありがとうございます!
無事260以上の命令が出来ました。
皆様お忙しい中有難うございました。
0979デフォルトの名無しさん
2007/02/28(水) 00:03:340980デフォルトの名無しさん
2007/03/17(土) 23:56:270981デフォルトの名無しさん
2007/03/21(水) 00:07:460982デフォルトの名無しさん
2007/03/21(水) 17:34:480983デフォルトの名無しさん
2007/03/21(水) 17:52:270984デフォルトの名無しさん
2007/03/21(水) 20:25:57レス数が950を超えています。1000を超えると書き込みができなくなります。