06/05/24 01:44:05
【過去ログ】
アセンブラ… (0w0)ウェーイ (Part9)
スレリンク(tech板)
アセンブラ… (´・∀・`)ヘー (Part8)
スレリンク(tech板)
アセンブラ… (°Д°)ハァ? (Part7)
スレリンク(tech板)
アセンブラ… (;´Д`) ハァハァ (Part6)
スレリンク(tech板)
アセンブラ… (*´д`*)アハァ… (Part5)
スレリンク(tech板)
アセンブラ… (゚д゚)ウマー (Part4)
スレリンク(tech板)
アセンブラヽ(`Д´)ノモルァ (Part3)
URLリンク(pc2.2ch.net)
アセンブラヽ(`Д´)ノモルァ (Part2)
URLリンク(pc3.2ch.net)
アセンブラ… (・∀・)イイ! (Part1)
URLリンク(pc.2ch.net)
3:デフォルトの名無しさん
06/05/24 02:04:26
∧_∧ ∧_∧
( ´∀`) ( )
三 (, つ ノ ( >>1 ) TDNスレは・・
/ ) ) | | |
. 〈_)\_) (__(___)
∧_∧ .∧_∧
( ´∀) ( )
( つ ( >>1 .) 立てんなって
≡≡三 三ニ⌒).| | |
〈__)__) ̄(__(___)
∧_∧∧
( ´) ) ←>>1
/  ̄,ヽつ 言ったろうが
C /~/~
> > くっ
\__)し'
∧_∧ オラ、気持ちいいだろ
( ´∀`)
/ ヽ、 ∧∧
(( C( ヽ__( ´Д) アッー!!
/ ( 、__ Y、
〈__∠__,)) ヽ_'っっ
4:デフォルトの名無しさん
06/05/24 04:04:04
大塚さんに抜かれてンギモッチイイです。
穴が拡がりそうです。
でもここから一転攻勢に出ます。
Q:今シーズン最も活躍を期待する日本人大リーガーは!? ~投手編~
URLリンク(sports.nifty.com)
↓投票すれば一位の座を返していただけるんですね。
URLリンク(sports.nifty.com)
5:デフォルトの名無しさん
06/05/24 06:25:24
5
6:デフォルトの名無しさん
06/05/24 20:13:50
5
7:デフォルトの名無しさん
06/05/24 20:23:17
5
8:デフォルトの名無しさん
06/05/24 22:03:18
DEC B
9:デフォルトの名無しさん
06/05/24 23:11:11
jmp $-8
10:デフォルトの名無しさん
06/05/24 23:14:46
前スレ埋めてから使えアホども
11:デフォルトの名無しさん
06/05/25 06:51:26
「埋めは荒らし」と、はっきり言われているんだけど。
バカが埋めなくちゃいけないと言い出し、アホがそのデマを信じてる
それだけのこと。
12:デフォルトの名無しさん
06/05/25 16:58:54
ごく小規模のアセンブリなら分かるようになってきたけど
デバッグの混合モードで表示される
windowsアプリなんかのコードがイマイチ理解できません。
13:デフォルトの名無しさん
06/05/25 17:59:31
>>12
がんばれ!
↓次の方ドゾー
14:デフォルトの名無しさん
06/05/25 18:26:20
>>12
人間が書いたものとコンパイラが書いたものの違いだから気にするな
15:デフォルトの名無しさん
06/05/25 20:58:45
人間が書いたもの:多様性に富みトリッキーで読みづらい
コンパイラが書いたもの:定型句で構成されシンプルで読みやすい
>>12
人間向き不向きがあるんだから気にするな
16:デフォルトの名無しさん
06/05/26 01:58:32
最近、やっとこさ商用ソフト(ノートン先生)のキージェネレータを作って、キーを生成できるところまでに至りました。
僕はこれからクラッカーを名乗ろうと思う。
そしていろんな物をクラックすることに従事しようと思う。
誰も俺を止められはしないよ。
17:デフォルトの名無しさん
06/05/26 04:05:09
誰も止めてくれないよ?
18:デフォルトの名無しさん
06/05/26 06:34:57
次に止まるのは捕まったとき
19:デフォルトの名無しさん
06/05/26 06:40:05
>>16
通報しました
20:デフォルトの名無しさん
06/05/27 19:32:25
前スレに貼られたEICAR Test String、
debug.exeにロードして逆汗したけど、無意味な演算命令ばっかり並んでる。subとかincとか。
asciiコードだけで構成された機械語sugee
探したら他にもありそうだな。
21:デフォルトの名無しさん
06/05/27 21:07:35
ASCIIコードだけで構成された機械語では足し算が面倒。
ADDも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メ+モ;ツ[
とかやらなくちゃなんない。
この場合のキャリー演算ってどうやんだろ。
22:デフォルトの名無しさん
06/05/27 21:11:19
POP bxじゃねーや、POP dxだ。
で、その場合のコードが52 33 D2 2B D3 3B C2 5A
で
R3メ+モ;ツZ
だ。
23:デフォルトの名無しさん
06/05/27 21:14:05
だれかASCIIコードだけで構成された長大関数へリンク張ってくれ
24:デフォルトの名無しさん
06/05/27 21:55:00
>21
お前はまずASCIIコードの意味を勉強し直してこい。
25:21
06/05/28 00:05:52
American Standard Code for Information Interchange
26:デフォルトの名無しさん
06/05/28 01:09:51
ASCII != alnum
27:デフォルトの名無しさん
06/05/28 01:18:13
C++でインラインアセンブラ使ってたら
32ビットOSから64ビットOS対応に変えるのってめんどい?
28:デフォルトの名無しさん
06/05/28 05:07:47
>>27
FPU使うと面白いよ(・∀・)ニヤニヤ
29:デフォルトの名無しさん
06/05/28 08:57:59
よーしパパx86-64なLinuxでFPU使いまくっちゃうぞー
30:デフォルトの名無しさん
06/05/28 09:05:45
>25
「American Standard Code」に半角カナが混じっていいわけねぇだろw
31:デフォルトの名無しさん
06/05/28 09:27:57
相変わらずここのスレタイはこの板でちょっと異彩
32:デフォルトの名無しさん
06/05/28 12:23:12
21のやつASCIIにしてみたけど自信ない。
BX=0以外で結果のCF逆転?
;ADD AX,BX
PUSH SI ; V
PUSH BX ; S
PUSH AX ; P
DB
33:デフォルトの名無しさん
06/05/28 12:24:47
切れたorz
;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 ; ^
34:デフォルトの名無しさん
06/05/29 01:28:22
>>30
だめか。
>>33
流石。
35:デフォルトの名無しさん
06/05/29 08:09:49
日本語で読める、PowerPCアセンブラの書籍ってないものでしょうか?
x86なら沢山あるようですが、PPCはなかなか見つからない。
36:デフォルトの名無しさん
06/05/29 21:21:46
バブルソート誰か書いてくれ・・・
簡単なのでいいから
37:デフォルトの名無しさん
06/05/29 21:39:52
>>36
URLリンク(tfusvsun.tfu.ac.jp)
38:デフォルトの名無しさん
06/05/29 21:49:25
>>35
昔あったんだが、絶版になったらしい。
金があれば買いたかったんだが。
39:デフォルトの名無しさん
06/05/29 22:31:02
>>35
書籍じゃないが
URLリンク(www.nk.rim.or.jp)
40:デフォルトの名無しさん
06/05/29 22:53:08
>>37
ありがとう(´;ω;`)ウッ…
41:デフォルトの名無しさん
06/05/30 07:28:26
>>38
この間ヤフオクに出品されてたよ
42:デフォルトの名無しさん
06/05/30 07:43:38
>>35
近所のブコフで安売り
43:36
06/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見てとりあえずそのサイトで勉強したけど
メモリ上に用意ってのが理解できないんだ(;´Д`)
44:デフォルトの名無しさん
06/05/30 09:00:10
初めてここでまともな質問を見た気がする
45:デフォルトの名無しさん
06/05/30 09:03:54
まともか?
どのプロセッサ使ってるか書かずに
46:デフォルトの名無しさん
06/05/30 09:15:21
>>45
多分自作プロセッサ
47:デフォルトの名無しさん
06/05/30 11:10:34
>>43
それだけじゃ誰にも意味わからないぞ。
省略してるだろ。
>メモリ上に用意
ここだけは喪前以外の誰でも意味がわかるw
48:デフォルトの名無しさん
06/05/30 11:12:50
そういうことか
49:デフォルトの名無しさん
06/05/30 13:03:30
自作です
50:36
06/05/30 15:23:07
言葉足らずでスイマセン・・・
KITEプロセッサっていう実験用のプロセッサみたいです。
51:デフォルトの名無しさん
06/05/30 16:22:25
>>50
じゃあ、まずプロセッサの仕様書の一ページ目の一行目から四行目を写してみよう。
52:デフォルトの名無しさん
06/05/30 16:32:43
URLリンク(www.arch.cs.kumamoto-u.ac.jp)
担当の先生降臨したらオモシロイが
53:デフォルトの名無しさん
06/05/30 18:31:40
KITAAプロセッサのことなら分かるんだが
KITEはちょっと手に負えないな
スマン
54:デフォルトの名無しさん
06/05/31 13:07:16
A.
任意のデータ数に対応するにはメモリ空間が不足するため
仕様を満たすプログラムは作成不可能です
55:デフォルトの名無しさん
06/05/31 13:15:46
確かにポインタの桁数が決定できないな。
あと、長大なポインタでメモリをアクセスできることが保証されてなかったりして。
56:デフォルトの名無しさん
06/05/31 22:27:26
すみません、アセンブラの勉強をしようと本を探してるのですが
何かおすすめの本はないでしょうか
アセンブラに関しては全くの初心者です
C言語やJava等の経験はあります
今のところ独習アセンブラを買おうと考えてます…
57:デフォルトの名無しさん
06/05/31 22:46:38
アセンブラのことしか書いてない本は避けよう
58:デフォルトの名無しさん
06/06/01 00:11:59
>56
何を目的に勉強するかによるんじゃね?
インラインでSIMD使うのか、組み込み系にシフトするのか、OS書くのか。
59:デフォルトの名無しさん
06/06/01 00:42:36
>>56
現状の最善手(新書)では独習一択かもしれないが、取り敢ず立ち読みで判断すべし。
初心的な話なら素人ながらの意見、変なゲーム改造ネタだけの本よりかマシかと。
60:デフォルトの名無しさん
06/06/01 01:31:47
>>56
つ URLリンク(www5c.biglobe.ne.jp)
61:デフォルトの名無しさん
06/06/01 04:10:27
「いまどきの~」と名の付くシリーズは
買ってはいけない
62:デフォルトの名無しさん
06/06/01 04:34:16
いまどきの土器
確かに駄目そうだ
63:デフォルトの名無しさん
06/06/01 04:34:51
「時代遅れのアセンブラ」
「これから来るアセンブラ」
64:デフォルトの名無しさん
06/06/01 04:57:12
>>61
あんなの擁護するやついるのか
65:デフォルトの名無しさん
06/06/01 09:48:45
PIC のマイコン工作関連の本でも漁ってみたら?
タダで処理系はばっちり入手できるし、結構工作関連の人ってアセンブラ
苦手なようで、複雑なプログラムはあんまり載ってないし。
66:デフォルトの名無しさん
06/06/01 13:23:16
>>57 了解です
>>58 一応Windows上で動くのをやりたいです
>>59 田舎ですから置いてないんですよね…図書館にリクエストしてみます
>>60 そのページは全部読んだんですが、どうもリファレンス的で基本を分かってない自分にはさっぱりで…
>>61 悪書として聞いた事があります
>>65 PICも後々やってみたいと思っています
67:60
06/06/01 23:11:11
>>66
じゃぁ、アセンブラの教科書の前に
矢沢久雄「プログラムはなぜ動くのか」(2001年10月)日経BP社\2400
ってのもある
68:デフォルトの名無しさん
06/06/02 00:33:33
「CPUの創りかた」
この本マジおすすめ
69:デフォルトの名無しさん
06/06/02 00:34:16
「CPUの創りかた」
この本マジおすすめ
URLリンク(www.amazon.co.jp)
リンク貼るの忘れてた
70:デフォルトの名無しさん
06/06/02 00:56:29
なんか、表紙を見ただけで手に取るのが憚られるなw
71:デフォルトの名無しさん
06/06/02 01:20:22
時々出てくる萌え子ちゃんは、
実は筆者の愛を表現するために、編集者が勝手に登場させたのでしょう。
本書の最後にある「おわりに」に筆者自身が萌え子ちゃんの登場に衝撃を
受けた様子が暴露されています。
72:デフォルトの名無しさん
06/06/02 01:27:08
いや、文章も絵も同じ人間が書いてるんだが、それ。
73:デフォルトの名無しさん
06/06/02 17:44:38
なんか住む世界が違うと言うかなんと言うか…
出来損ないのCPU作るよりまず頭のry
74:デフォルトの名無しさん
06/06/02 21:32:27
頭の?
75:デフォルトの名無しさん
06/06/02 21:48:05
りぼんが表紙が白で裏表紙が赤なのが気になるとか?
76:デフォルトの名無しさん
06/06/02 22:48:35
あるサイトで見かけたんだけど、
ebxとecx*8を足して1000を引いてeaxに代入する最速コードは?
という問題で、
lea eax,[ebx+ecx*8-1000]
とlea命令一発でやっているんだけど、CPUはこういう計算は乗算・減算を
しないでさくっと 1clock で済ますことが出来るの?
なんでこんなことが出来るのかさっぱり仕組みが分かりません。
あと、MSVC++(うちで使ってるのは6.0)とかは実行速度で最適化をすれば
こういう処理の置き換えは自動でやってくれるんですか?
77:デフォルトの名無しさん
06/06/03 00:10:23
> 1clock で済ますことが出来るの?
プロセッサによって違うに決まってる。
少なくとも、i386では出来ない。
> なんでこんなことが出来るのか
そういうハードウェアを搭載してるから。
> 自動でやってくれるんですか?
コンパイラの出力くらい、自分で確かめろよ。
78:デフォルトの名無しさん
06/06/03 10:38:03
>76
減算はともかく乗算なんかしてないだろ。
79:デフォルトの名無しさん
06/06/03 10:48:32
lea eax,[ebp+ebx*8-1000]
ならi386でも可能?
80:デフォルトの名無しさん
06/06/03 12:12:03
>>79
「lea eax,[ebp+ebx*8-1000]なら386でも1clockで実行可能か?」
ということなら無理。
>>76
ターゲットCPUに対応した最新の最適化コンパイラを使えば
「条件さえ良ければ」かなりの所まで自動で最適化してくれる。
最近(でもないか)の例:
URLリンク(www.intel.co.jp)
81:デフォルトの名無しさん
06/06/03 12:19:04
leaはi386では2クロック。
82:デフォルトの名無しさん
06/06/04 00:31:44
DSP得意の積和演算だろ
83:デフォルトの名無しさん
06/06/04 01:05:16
すみません質問です。
スレタイの 「アッー!」 が発音できないのですが・・・どう読むんですか?
84:デフォルトの名無しさん
06/06/04 01:13:52
>82
lea は積ではなくビットシフト
>83
ガイドライン池
85:デフォルトの名無しさん
06/06/04 03:47:54
x86のRPLとはなんですか?説明見てもなんのことかよく分からないんですが・・・
86:デフォルトの名無しさん
06/06/04 05:27:32
はじめて読む486あたりの説明で理解できないなら、そういうものだと思っとくしか。
87:デフォルトの名無しさん
06/06/04 06:21:35
セグメントディスクリプタのDPLフィールドと
セグメントセレクタのRPLフィールドの
二つあるのが意味不明というか
88:デフォルトの名無しさん
06/06/04 09:15:37
データa,bをキーボードから入力するとa×bの計算結果が表示素子に表示する
ソースはどうなりますか?
89:デフォルトの名無しさん
06/06/04 09:26:57
>88
IOの情報も無いのに出力出来るかとか、
せめてCPUくらいは書けとか思ったが・・・
宿題くらいは自力でやれ、な?(AA略
90:デフォルトの名無しさん
06/06/04 11:23:14
>>88
よし、出来たぞ。
不明な部分は俺が勝手に脳内補完してやったから安心しろ。
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
91:デフォルトの名無しさん
06/06/04 12:03:44
>>88 どうもです。参考にさせていただきます。ちなみに8085プログラミングで
やったらどうなりますかね?
92:デフォルトの名無しさん
06/06/04 13:20:59
>>91
学生実験乙
93:デフォルトの名無しさん
06/06/04 15:27:22
>>91
Z80→8080(8085)変換くらい自分でやれ
94:デフォルトの名無しさん
06/06/04 19:43:05
>>93
先ずはZ80でアセンブルして8080で逆アセンブルしてみたら?
#取り敢えずJR ZはJP Zに置き換えるとして後はLD DEが問題かな?
##RRDってなんだっけ。
95:93
06/06/04 20:02:03
いや、俺に言われても…
96:デフォルトの名無しさん
06/06/04 21:51:34
>>94
RRDは4ビット単位のローテートだな
LD DEについてはCP/Mでなんでメッセージ出力にDEレジスタを使うと思ってるんだi8080でも問題なしだよ
97:デフォルトの名無しさん
06/06/04 22:47:57
8085で入力した数を表示素子に出力するとこうなるだろう?
.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
98:デフォルトの名無しさん
06/06/05 00:06:13
>>88 8085で作ってみたけど間違っているところない?
.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
99:デフォルトの名無しさん
06/06/05 00:21:11
>>36
>>50
去年は足し算引き算掛け算だけだったんだが
今年はバブルソートかよ。
100:デフォルトの名無しさん
06/06/05 04:34:21
アセンブラでゲーム作れますか?
101:デフォルトの名無しさん
06/06/05 05:40:51
ゲーム機はほとんどアセンブラですが
102:デフォルトの名無しさん
06/06/05 10:59:47
>>101
いつの時代ですか
103:デフォルトの名無しさん
06/06/05 11:31:54
>>101
対応コンパイラが無くて困ってるPS3開発さんですか?
104:デフォルトの名無しさん
06/06/05 17:11:13
マクロアセンブラに条件アセンブル、繰り返し、出力などがあれば
アセンブラでもライフゲームくらい作れるんじゃないの?
TeX でライフゲーム作ったと言う話は聞いたことがある。
105:デフォルトの名無しさん
06/06/05 17:17:54
>104
んなもん無くたって作れる。
106:デフォルトの名無しさん
06/06/05 17:28:30
あるCPU上で実行可能な全てのプログラムはアセンブラで記述することが可能。
現実的かどうかはともかくとして。
107:デフォルトの名無しさん
06/06/05 17:44:17
みんな。アセンブラとアセンブリ言語をまちがえてないか?
108:デフォルトの名無しさん
06/06/05 17:50:39
>>107
URLリンク(e-words.jp)
こういう事が言いたいなら、お帰り下さい。
この程度の意味が通じないなら日本語を使って生きていくのは難しい。
109:デフォルトの名無しさん
06/06/05 18:12:55
そういうばやいはアセンブリ言語を使って会話してください
110:デフォルトの名無しさん
06/06/05 18:22:33
フルアセンブラでOS創ったよ
111:デフォルトの名無しさん
06/06/05 20:06:50
mov trash,107
fire trash
112:デフォルトの名無しさん
06/06/05 20:11:28
>>106
そのCPUに対応したアセンブリ言語があると仮定した場合にその命題は常に正しい。
だがCPUに対応したアセンブリ言語がそもそも存在しない場合、記述は不可能。
なかなか無い反例だが?
113:デフォルトの名無しさん
06/06/05 20:13:25
>>112
>なかなか無い反例だが?
普通にあるような・・・ENIAC とか
114:デフォルトの名無しさん
06/06/05 20:30:12
クロスアセンブラ作ればいいんじゃない。
115:デフォルトの名無しさん
06/06/05 20:58:38
いや、そもそもENIACのプログラムは電気的な配線(コード)として表現されるから。
強いていうと、アセンブラの出力が配線図として出力されるとか?
116:デフォルトの名無しさん
06/06/05 21:02:40
ここ数年の話だって、intel/AMDが新しいSIMD命令追加した直後、
アセンブラ未対応で直接バイナリ埋め込んだりとかあったなぁ。
117:112
06/06/05 21:07:12
>>113
「現在は」なかなか無い反例 と言いなおそうか。
たしかにENIACについちゃ反例になるだろうが。そもそも機械語なんて概念が無いから。
118:デフォルトの名無しさん
06/06/05 21:07:24
>>115
手作業でプログラムを入力しないといけないんだっけ?
そうなると、エニアックはCPU載せてるとは言えない説を提示したい。
119:デフォルトの名無しさん
06/06/05 21:08:22
xor (107),(107)
120:デフォルトの名無しさん
06/06/05 21:09:17
>>115
ENIACは10進数で計算する事を忘れてはいけない。そのアセンブラがあったとしてもそれだけで膨大な「配線組み合わせ」(プログラム)になってしまう。
121:デフォルトの名無しさん
06/06/05 21:11:38
>>120
アセンブルは最新PCでやればいいじゃん。
122:デフォルトの名無しさん
06/06/05 21:18:45
>>121
URLリンク(www.4gamer.net)
いくら最新PCでもこれは”アッセンブル”できんだろ
まずはマニュピレータry
123:デフォルトの名無しさん
06/06/05 21:20:46
まさに組み立て!
124:デフォルトの名無しさん
06/06/05 21:23:18
アセンブル結果を自動的に配線してくれるメカを作ればいいんだ。
ただ、メカの製作はハードウエアであり、ソフトウエアではないが。
125:デフォルトの名無しさん
06/06/05 21:25:52
DNA計算の場合も普通の意味でのアセンブリ言語はないような気がする。
126:デフォルトの名無しさん
06/06/05 21:28:53
>>124
今だと PLD とか FPGA がそれにあたるのかな。
127:デフォルトの名無しさん
06/06/05 21:38:45
エニアックって、数式記憶機能付き関数電卓みたいなもので、
プログラミングができる「PC」とは違うものなのかな。
あ、でも分岐命令はサポートしてる?
128:デフォルトの名無しさん
06/06/05 22:59:11
>>127
電卓とは違う。どう考えても卓上には乗らない。(大きさと重さの面で)
そもそも、現在使われているCPUとは根っから構造が違う。
129:デフォルトの名無しさん
06/06/05 23:05:04
誰も卓上に乗るかどうかなんて聞いてないよ!
構造がどう違うのか教えてくれ。
130:デフォルトの名無しさん
06/06/05 23:05:27
分岐は知らんがループというか繰り返し演算は出来る。
それしか出来ないというか・・・
131:デフォルトの名無しさん
06/06/05 23:08:19
弾道の計算が30秒でできたそうだが、
今のC言語とかで書くとどんな処理だったんだろう。
132:デフォルトの名無しさん
06/06/05 23:11:19
まずは回路図が欲しいな。ぐぐっても見つからないorz
133:デフォルトの名無しさん
06/06/05 23:14:30
エミュレータ欲しいな~。
134:デフォルトの名無しさん
06/06/05 23:16:45
はい。タケコプター!
135:デフォルトの名無しさん
06/06/05 23:17:36
アンアンアン
136:デフォルトの名無しさん
06/06/06 01:26:24
8085アセンブラでデジタル時計ってどんなプログラムリストになるの?
137:128
06/06/06 01:43:11
>>129
現在のCPUを始めとする演算システムのほとんどは2進法を用いて計算する。
ENIACは10進数で演算するため、2進数に比べてとても難しい回路になる。
あとは、メモリの保存方式の違いとか。
138:デフォルトの名無しさん
06/06/06 01:54:13
>>136
CALL TIME
DI
HLT
139:デフォルトの名無しさん
06/06/06 02:04:31
最近世間じゃ8085が流行ってるのか?
学校の課題にしても今時せめてZ80互換くらいにしろよと言いたいが。
140:デフォルトの名無しさん
06/06/06 02:18:33
この際だから4004とか、6ビットのキャラクターマシンなんかでも…
141:デフォルトの名無しさん
06/06/06 07:37:15
>>124
FPGA
142:デフォルトの名無しさん
06/06/06 08:21:26
>>141
>>126
143:デフォルトの名無しさん
06/06/06 10:11:20
しかしFPGAでループ書くっつってもなー
ちょっと違うんじゃないか?
144:デフォルトの名無しさん
06/06/06 10:12:27
ちょっと血が膿んで内科医?
145:デフォルトの名無しさん
06/06/06 10:21:58
>>139
学習用マイコンボードは何故か8085な奴が多いのですよ。
TK-85もどきとか。
146:デフォルトの名無しさん
06/06/07 00:14:18
確かに85の方がI/O周りが80よりは楽だが……
147:デフォルトの名無しさん
06/06/11 08:48:29
Microsoft Macro Assembler 8.0 (MASM) Package (x86)
URLリンク(www.microsoft.com)
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
148:デフォルトの名無しさん
06/06/11 11:39:38
System Requirements
Supported 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)
149:デフォルトの名無しさん
06/06/11 14:18:19
>>124
PLDとVHDLで妥協しないか
150:デフォルトの名無しさん
06/06/11 14:32:43
激しく外出
151:デフォルトの名無しさん
06/06/16 03:21:28
test
152:デフォルトの名無しさん
06/06/16 18:03:41
jz
153:デフォルトの名無しさん
06/06/21 01:50:38
cygwinと本物のLinux環境の双方でコンパイル可能な、ポータブルな
アセンブラコードを書くことは可能でしょうか?
試しにGentooLinuxとcygwinで、同じ内容のCのソースコードを
アセンブラに落としてみました。
(gcc -S xxx.c -o xxx.s)
ちなみにどちらも同じPC(CPUはアスロンXP)です。
出力されたファイルを見ると、同じgccでも内容が結構違うみたいです。
お互いのxxx.sファイルをコンパイルすることもできません。
cygwinとはいえ、アセンブラレベルまでソース互換とすることは
対象外ってことでしょうか。
154:デフォルトの名無しさん
06/06/21 02:44:22
ものによる
155:デフォルトの名無しさん
06/06/21 02:59:45
つーかそもそもCygwinはLinux互換環境じゃねーよ
156:デフォルトの名無しさん
06/06/21 03:19:39
発想がまるで駄目だな
もうちょっと勉強してこい
157:デフォルトの名無しさん
06/06/21 04:33:50
最新のPentiumでアセンブラを組むと、VC++より遅かったりする。
ロード処理と命令処理とストア処理が並列に並ぶようにスケジュールしないと速くならないんだよね。
しかも演算ユニットが増えて、分岐予測しながらキャッシュしているなか、マルチスレッドのこともあるし、
その情報を元に、マイクロソフトは最適化してVCコンパイラ作ってるものだから、全然速度が追いつかないッス。
158:デフォルトの名無しさん
06/06/21 11:16:08
>>157
× アセンブラを組むと
○ 8086~386のイメージで命令を並べると
パイプライン構造を持つCPUに関してただ命令を順に並べると
パイプラインストールなど発生する可能性があるのが当たり前
159:デフォルトの名無しさん
06/06/21 16:48:43
アセンブラで書いても速くならないのね
160:デフォルトの名無しさん
06/06/21 17:22:03
どんなバカがアセンブラコード書いてもCより速くなる時代はとっくに終わったんだよ。
その程度の事も解らないバカだから、最適化すべき箇所と手法を間違えて
時間を無駄にした挙句、機械的な最適化のコンパイラなんぞに負けるわけだ。
161:デフォルトの名無しさん
06/06/21 17:31:13
バカっていうなよ・・・
162:デフォルトの名無しさん
06/06/21 21:08:29
機械的な最適化を行うためのプログラムは・・・
163:デフォルトの名無しさん
06/06/21 21:25:24
アセンブラ遅いのー?
164:デフォルトの名無しさん
06/06/21 21:37:03
Javaが一番速い
165:デフォルトの名無しさん
06/06/21 23:23:52
オレコードが一番早いに決まってるだろ。
コンパイラに負けるやつは単に勉強不足。
166:デフォルトの名無しさん
06/06/22 02:38:21
>164
x86環境ではJavaScriptにすら劣る低速言語だけどな。
167:デフォルトの名無しさん
06/06/22 10:38:58
JavaScript ってやっぱ遅いのか。
168:デフォルトの名無しさん
06/06/22 13:15:30
そりゃJavaベースだしな
169:デフォルトの名無しさん
06/06/23 01:07:42
いま>>168がいいこと言った!!
( ´∀`)
170:デフォルトの名無しさん
06/06/24 00:21:05
>>160
ばかだなオマエは
171:デフォルトの名無しさん
06/06/24 00:25:50
>>170
しかし、自分がアセンブラを書いてもコンパイラに負けることを
自覚している点で、本当のばかではないと言える。
172:デフォルトの名無しさん
06/06/24 01:14:12
CPUにもいろいろあるが、Z80くらいだったら、アセンブラで作った方が
Cで最適化したよりも格段に速いと思う。
最適化したCのプログラムにBUGが有ったときには、最悪な結果に
なりそうな気がする。
173:デフォルトの名無しさん
06/06/24 01:38:59
Cでプログラム組む奴って、ハードの事が判ってない奴が多い。
故に、信頼性の低いプログラムになりやすい。はっきり言って仕様BUG
174:デフォルトの名無しさん
06/06/24 02:39:42
というかハードにあまり深く踏み込まなくても良いように高級言語があるんだが
175:デフォルトの名無しさん
06/06/24 03:44:41
踏み込まないと踏み込めないの違いだな
176:デフォルトの名無しさん
06/06/24 08:23:52
アセンブラの知識はあるけど極力Cで済ませる漏れが勝ち組。
177:デフォルトの名無しさん
06/06/24 11:45:48
アセンブラの知識もCの知識もあるけど極力Rubyで済ませる漏れが本当の勝ち組。
178:デフォルトの名無しさん
06/06/24 12:32:36
「ぬるぽ」と恐れずに言える漏れが真実の勝ち組。
179:デフォルトの名無しさん
06/06/24 13:17:28
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>178
(_フ彡 /
180:デフォルトの名無しさん
06/06/24 14:08:20
Cは使えるけどバグは怖いしめんどくさいからアセンブラで済ます俺は負け組。
181:デフォルトの名無しさん
06/06/24 15:44:58
言語も人も適材適所と思ってる俺が勝ち組
下らんこと話してないでおまいら働け
182:デフォルトの名無しさん
06/06/24 20:01:57
今、アセンブラの仕事って、有るのか?
183:デフォルトの名無しさん
06/06/24 20:45:31
ある。安物チップの組み込みで性能を出そうとする場合はそうだな。
試作品なら使いもしない周辺回路がごっそり入ってても問題ないが、量産品の場合はコスト優先の場合が多い。
俺はこんど、WEBサイトをアセンブラで書こうかと考えている。今はアパッチ使ってるが、サーバー含めてALLアセンブラ。
184:デフォルトの名無しさん
06/06/24 22:00:34
OSもアセンブラ使ってね
185:デフォルトの名無しさん
06/06/25 01:04:21
>>183
ドンキホーテにでも成るつもり?
186:デフォルトの名無しさん
06/06/25 10:28:31
>183
なんのメリットも見出せないんだが?
ボトルネックは回線、次いでHDDアクセスか?
アセンブラで記述しても1%も高速化出来まい。
「WEBサイト」とか言ってる時点でネタだろうが、それにしても酷い。
187:デフォルトの名無しさん
06/06/25 10:37:23
>サーバー含めてALLアセンブラ
って言ってるから、ハード自作してファームウェアからアセンブラで書くんだよ
きっと。
188:デフォルトの名無しさん
06/06/25 12:53:22
PICでWeb鯖なら実現してるのいっぱい居るけどな
189:デフォルトの名無しさん
06/06/25 13:01:59
あれ中途半端だけどね
でもあそこまでやってれば立派だお
190:デフォルトの名無しさん
06/06/25 13:10:10
>>186
回線は光の16IPに増強済み。メモリは2Gで極力メモリ上で動くようにはしてある。
ボトルネックはリクエストに対するアパッチの応答。
一秒当たり500とか1000のリクエストにはちょっと厳しいのでは?
まあ、アパッチの設定を弄って済む位のアクセスであれば「なんのメリットも見出せない」と言うのは真かもね。
191:あや
06/06/25 13:18:40
こんにちは!
今学校でMIPSのシミュレータを勉強してます★
それで、「N掛けるNの掛け算表表示プログラム」
を出力するプログラム(Nは入力して与える)を書けという課題を出されたのですが、
全くわかりません><
誰か助けてください!
先生がくれたメインルーチン部分は
192:あや
06/06/25 13:19:28
#timesTable.asm-- N掛けるNの掛け算表表示プログラム、Nは入力して与える。
#使用レジスタ $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までをテンポラリレジスタとして利用
193:あや
06/06/25 13:20:44
.text
main: 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 #プログラム終了
です。誰かわかる人いませんか?
194:マイク ◆yrBrqfF1Ew
06/06/25 14:12:45
>全くわかりません><
>誰か助けてください!
俺もよくわからないから
今度デートしようよ。
195:あや
06/06/25 14:25:13
わからないならやだーー笑。
196:デフォルトの名無しさん
06/06/25 14:25:54
あやちゃんのフルネームは
綾小路源五郎
197:あや
06/06/25 15:12:20
みんな使えない!!
パソコンに関してはすごいのかと思ったらぜんぜんじゃんか!
198:マイク ◆yrBrqfF1Ew
06/06/25 15:16:01
#printValueの中身は引数かけて表示
#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
199:デフォルトの名無しさん
06/06/25 15:37:21
お題はプログラムを出力するプログラムじゃないの?
200:デフォルトの名無しさん
06/06/25 16:16:58
>>197
馬鹿だなあ
お前のようなネカマに使われたくないだけだよ(w
201:あや
06/06/25 19:30:05
>198
ありがとうございます♡→ܫ←♡
まだ動かないですけど、かなり助かりました!
mult $t0, $a0, $a1
^ のところでsyntax errorが出るんですよね~↓
なんでだろう?
でもマイクさんすごいです!!
202:デフォルトの名無しさん
06/06/25 19:53:52
♡→ܫ←♡
203:デフォルトの名無しさん
06/06/25 19:59:27
→ ←
ܫ
♡ ♡
ܫ
♡
204:あや
06/06/25 20:32:54
(´^ิ益^ิ`)
205:デフォルトの名無しさん
06/06/25 21:06:24
「mult」ってアセンブラ命令なのか?
206:デフォルトの名無しさん
06/06/25 21:30:25
>190
お前は俺の言っている意味が全然解ってない。
メモリアクセス>>(超えられない壁)>>HDDアクセス>>>回線
だと言っている。
リクエスト数が多いなら、IOアクセス量の問題だから
なおの事アセンブラ化での高速化では解決しない。
更に言うなら、そんなシステムをデバッグの困難なアセンブラで書き起す事自体がネタとしか思えない。
207:マイク ◆yrBrqfF1Ew
06/06/25 21:43:13
>>201
じゃmultをmulに変えてみてくれ。
>でもマイクさんすごいです!!
感謝の気持ちは電話番号でのみ受け取るよ。
208:デフォルトの名無しさん
06/06/25 23:53:31
IA-32でのCMPとTESTの使い分け方を教えてください。
とりあえず今は全部CMPにしていますが…
209:デフォルトの名無しさん
06/06/26 00:07:20
引き算とand演算の違い。
210:デフォルトの名無しさん
06/06/26 02:49:00
アセンブラ遅かったら使う意味無いじゃん!(><) 騙された!
211:デフォルトの名無しさん
06/06/26 10:32:54
今のクピュはアッセンをエミュで実行してるからCの方が早いよ
212:デフォルトの名無しさん
06/06/26 14:23:35
>>206
206は>>190に書かれている日本語を理解してない。
>ボトルネックはリクエストに対するアパッチの応答。
と書いてある。
なぜ
>リクエスト数が多いなら、IOアクセス量の問題だから
と言う話になるのだ?
206はそもそもWEBサーバーを動かした事が無いのか?
>デバッグの困難なアセンブラで書き起す事
デバッグが困難なのはつくりが悪いからであってアセンブラのせいじゃ無い。
213:デフォルトの名無しさん
06/06/26 15:04:22
リクエスト数の多さって、結局データ転送量の問題になる気がするけど?
具体的に何処を高速化したいのかわからん。
マルチスレッドのリアルタイム性ならOS書き換えるかCPU変えるor増やすしかないし、
「アパッチの作りが悪い」と言いたいだけなら該当箇所修正しる。
今主流のシステムでアセンブラ化で高速化出来るのはメモリアクセスの効率と演算の最適化で、
ランダムアクセスと転送が主になるwebサーバは高速化できない。
それと、もう余りにもアホらしくて突っ込む気も失せ気味だが、
高級言語と低級言語の開発効率とメンテナンス性の違いが理解出来てないなら
ホントにプログラマやめたほうがええよ。
214:デフォルトの名無しさん
06/06/26 15:21:59
リクエスト数増えたらマシン増やして負荷分散だろ
それとも負荷分散装置でも作ってるのか?
215:デフォルトの名無しさん
06/06/26 15:53:57
携帯用のサイトなので、データー量はしれてるのだけど、広告媒体が動いた瞬間にアクセスが急に増えたり
昼の休み時間や夕方にアクセスが集中する。平均的には大したリクエスト数ではないのだけど>>190に
書いたようにピークがとにかくすごい。ピークに合わせてマシン増やすのは誰でも出来るが
専用の最適化されたWEBサーバーを立てれば、多分マシン1台で10サイトくらいは余裕で行ける見積もりなので
他社との差別化が出来る。中小企業にはブレードサーバーなんて置けない所もあるのだよ。
アパッチのつくりが悪い訳じゃ無い。高機能すぎて不要な機能の為に速度が犠牲になってるだけ。
216:デフォルトの名無しさん
06/06/26 15:56:47
PMがGO出すわけねぇし、どうせ学生の遊びだろ。
217:デフォルトの名無しさん
06/06/26 16:00:50
>>216
学生乙
218:デフォルトの名無しさん
06/06/26 16:48:54
>ランダムアクセスと転送が主になるwebサーバは高速化できない。
知ったかぶり乙
219:デフォルトの名無しさん
06/06/26 17:22:22
>具体的に何処を高速化したいのかわからん。
日本語勉強汁!
220:デフォルトの名無しさん
06/06/26 19:48:28
趣味でやるなら、まあ好きにやれ。健闘を祈る。
仕事でやるならメンテする人間の冥福を祈る。
221:デフォルトの名無しさん
06/06/26 20:00:55
>>219
「応答」が具体的だと思ってるならそれは間違い。
222:デフォルトの名無しさん
06/06/26 20:52:09
>>215
そのためにホスティングサービスやASPって物があると思うんだが
ピークの合わないサイトを組み合わせて手の空いた時間は別のサイトに処理能力を廻す見たいな感じで
そこら辺はデータセンタ/ASP運用の肝って所だな
あとは中小企業でブレードサーバ置くなんて考えがそもそもおかしい
それをあえて自前でやろうって考えは別に止める気は無いが
まずはWebProg板へ行ってぼろ糞に叩かれて来い
223:デフォルトの名無しさん
06/06/26 23:32:03
俺も206と殆ど同意見だな。
WEBアプリケーションをアセンブラで作ろうという奴の気がしれない。
224:デフォルトの名無しさん
06/06/27 02:13:49
サーバをWEBサイトとほざいた>>183とWEBアプリケーションと抜かした>>223
さーて不思議な符合ですね。
225:デフォルトの名無しさん
06/06/27 04:36:34
このスレには2人しか居ないから
226:デフォルトの名無しさん
06/06/27 05:15:32
いや、3人いる。俺とお前と大五郎だ。
227:デフォルトの名無しさん
06/06/27 05:20:53
昨日からアセンブリ弄り始めた私を含めて4人だな。
228:デフォルトの名無しさん
06/06/27 05:47:34
アセンブラじゃなくて、マシン語でプログラム書いている酔狂もいるらしいな。
229:デフォルトの名無しさん
06/06/27 12:35:43
明日からアセンブリ弄り始める私を含めて5人だな。
230:デフォルトの名無しさん
06/06/27 12:46:05
明後日からアセンブリ弄り始める私を含めて6人だな。
231:デフォルトの名無しさん
06/06/27 12:46:07
俺はもう卒業するから4人だな
232:デフォルトの名無しさん
06/06/27 13:24:23
メールが届いた。
>1.流出したお客様情報の内容
> 2003年12月18日までにインターネット接続サービス「DION」にご契約
> されたお客様に関する同年同日時点の以下の情報
> (1)お名前、ご住所、ご連絡先電話番号 : 3,996,789名様分
> (2)上記(1)のうち、性別、生年月日、ご連絡先メールアドレスも含ま
> れていたもの
> ・性別 : 26,493名様分
> ・生年月日 : 98,150名様分
> ・ご連絡先メールアドレス : 447,175名様分
>
> ■ご契約のDIONメールアドレス(※)、パスワード、口座番号等の信用
> 情報、通信記録は流出していません。
自鯖で済む物を、貧弱でセキュリティ大甘の連鯖使うなんて俺には出来ん。
7人。
233:デフォルトの名無しさん
06/06/27 20:02:43
今日は早上がりの漏れ様が経験の無い>>215にアドバイスしておく。
ドコモやボダのゲイトウェイはかなり低速(auのは知らん)。
なので、多くの携帯が1台のサーバにアクセスしてくると、プロトコルスタックや
サーバアプリ(←これは作りにもよるが、それなりに高速だとして)の性能限界に
達する前にTCPコネクション数(多くの場合3万弱くらいか)を使い切ってしまう
という事態が起きる。
ので、ZenでOSを分けるとかするのでなければ、十分高速であればそれ以上
カリカリにチューニングしてもあまり意味は無い。
・・・それは別として自分で作るくらいなら tux とか IIS の方が良いような気もする。
234:デフォルトの名無しさん
06/06/27 22:40:24
汗んブラで書くんだったらカーネルドライバとかプロトコル部だね
本気でパフォーマンス稼ぐつもりならFPGAで2層以上をオフロード
つーかL5ロードバランサ使えww
235:デフォルトの名無しさん
06/06/28 18:02:23
FPGAなんぞ遅延でかいから速度あがらん
ASICでいいよ
236:デフォルトの名無しさん
06/06/28 21:25:05
BASICでインジャネ
237:デフォルトの名無しさん
06/06/28 22:43:03
LISPマスィーン
238:デフォルトの名無しさん
06/06/29 01:08:27
>>233
アドバイスありがとうございます。
ページキャッシュが使えない事もあり、現状では300アクセス/秒程度しかさばけないのですが
この時のCPU負荷が100パーセント近いので、まずはIOやTCPコネクションよりもこちらを改善する予定です。
とりあえずCで簡単なサーバーを書いて動かせばCPU負荷が極端に減り、10サイト位はいけそうな雰囲気はあります。
ZenはTCPコネクションの問題回避では無く、複数のサイトを動かす為にメンテのしやすさから導入したかったのですが
zen1.1ではアパッチはまともに動かなかった気がします。最新版では大丈夫なのでしょうか?
>>234
TCPスタック迄はとりあえず弄るつもりは無いです。
HDLで実現できれば面白いですね。制限付きのNTPサーバーなんかは有るみたいで、触発はされたのですが実力がorz
239:デフォルトの名無しさん
06/06/29 08:36:55
スレ違いのWEBサーバの話題終了ー。
以降通常運営でお送りいたします。
240:デフォルトの名無しさん
06/06/29 12:01:14
nasmのEQUと%defineって何が違うの?
241:デフォルトの名無しさん
06/06/29 12:37:06
下のように乗算のプログラムを完成させたいのですがさっぱりわかりませんorz
誰かボスケテ
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
242:デフォルトの名無しさん
06/06/29 12:53:05
>>241
一度2進数の掛け算を筆算で書いてみな
243:デフォルトの名無しさん
06/06/29 18:16:49
13(10) x 10(10) = 130(10)
1101(2) = 13(10)
x 1010(2) = 10(10)
----------------
11010(2)
1101000(2)
----------------
10000010(2) = 130(10)
244:デフォルトの名無しさん
06/07/02 11:15:33
質問なのですが
C言語の
for(t=1;t<9;t++)
をアセンブラで書くとどうなるのでしょうか?
245:デフォルトの名無しさん
06/07/02 11:53:02
>>244
mov eax,1
L1:
cmp eax,8
jg L2
inc eax
jmp L1
L2:
246:デフォルトの名無しさん
06/07/02 12:10:27
xor ax,ax
mov cx,8
a:
inc ax
loop a
247:デフォルトの名無しさん
06/07/02 12:45:17
>>244
XOR 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
・・・
248:デフォルトの名無しさん
06/07/02 12:49:08
>>245さん
ありがとうございます
eaxというのは変数と解釈して良いのでしょうか?
あと各命令は
eaxを1とおく
<L1>
8と比較してeaxが以上ならば
<L2>へ飛ぶ
eaxが小さければ
<L1>を実行する
<L2>
というかんじでしょうか
249:デフォルトの名無しさん
06/07/02 13:08:25
jgは「以上」じゃなくて「より大きい」だよ。
250:デフォルトの名無しさん
06/07/02 13:11:10
> eaxというのは変数と解釈して良いのでしょうか?
おーい。
だいたい、「アセンブラで書け」というなら、プロセッサ書けよ。
251:デフォルトの名無しさん
06/07/02 13:14:22
H8/3664 です
252:デフォルトの名無しさん
06/07/02 13:15:59
>>247
× XOR GR7,GR7
○ LAD GR7,1
だな。
253:デフォルトの名無しさん
06/07/02 13:54:03
>>251
組み込みCPU関係は電気・電子板で聞いたほうがいいかも。
254:デフォルトの名無しさん
06/07/02 14:15:00
ありがとうございました
255:デフォルトの名無しさん
06/07/03 03:47:29
>>244-249
なんでCPU指定されてないのに会話が続いてたんだろう
256:デフォルトの名無しさん
06/07/03 05:03:24
なんでもいいからアセンブリ書きたい気分だったんだろ
257:デフォルトの名無しさん
06/07/03 06:11:59
CPUの指定がない場合は回答側が好きなCPUを選べます。
258:デフォルトの名無しさん
06/07/03 22:49:18
NASM MASM TASM
どれを使ってますか
259:デフォルトの名無しさん
06/07/03 22:50:43
GAS 一択。
260:デフォルトの名無しさん
06/07/03 22:55:03
TASM。
261:デフォルトの名無しさん
06/07/03 22:56:42
GASでCOMを作成できますか
262:デフォルトの名無しさん
06/07/03 22:59:01
NASM MASM LASM GAS
263:デフォルトの名無しさん
06/07/04 00:19:44
YASM
264:デフォルトの名無しさん
06/07/04 02:21:01
>>263
休むな。
265:デフォルトの名無しさん
06/07/04 03:16:08
NASMを使っているけど、コンパイルするまでの手間がだるい。
中間ファイル作成→ALinkでコンパイル
この手間を無くしたい。
MASMって使用者が多いと思うけど、上記項目を一括して出来るの?
出来るなら乗り換えようかな。
266:デフォルトの名無しさん
06/07/04 03:48:31
>>265
batファイルを作ればいいような。
267:デフォルトの名無しさん
06/07/04 07:18:52
近頃の若いもんはmakeもしらんのか
268:デフォルトの名無しさん
06/07/04 08:39:59
統合環境に組み入れられるだろ。
つーか make でいいよな?
269:デフォルトの名無しさん
06/07/04 09:39:11
DOSの頃はMASMやTASMを愛用してたけど、
Win環境に移ってからこっちインラインアセンブラしか書かなくなったなぁ。
270:デフォルトの名無しさん
06/07/04 11:41:38
makeはいちいちMakefileを書くのが面倒だろう
なのでbat
・・・フルアセンブリ・1ファイル完結の話だよな?
そうじゃないなら俺もMakefile書くが
271:デフォルトの名無しさん
06/07/04 17:40:39
アセでそんなにでかいプロジェクトなんてやらないし
どうせ全ビルドでも一瞬で終わるんだ
数行書くごとに全ビルドでもまったく苦にならんw
272:デフォルトの名無しさん
06/07/04 19:57:12
nasm.exe(-f win32)で作成したobjはld.exeでもリンクできるなぁ‥‥
めどいならgccでリンク。
それはそうと、nasmのセクション宣言で共有属性をつけることは出来ない?
とりあえずFMOで共有メモリを実現している。
gasなら
.section .sdata,"rws"
って書けば共有属性が付くけど。
273:デフォルトの名無しさん
06/07/06 00:06:20
SHのプロジェクト預かったのだがコンパイラ先生が生成したアセンがまったくわからんのです。シミュレータぶんまわしてもそこがわからんorz
タヂケ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)
274:デフォルトの名無しさん
06/07/06 01:32:32
>>273
Displacementは、普通±を考慮すると思うのだが。
8bitのDisplacementだと、bit7が1だと「-」になるとか…。
SHは触ったことが無いので間違っていたらゴメン。
275:デフォルトの名無しさん
06/07/06 02:33:04
@は即値じゃなくて、間接アドレッシングじゃないのか?
276:デフォルトの名無しさん
06/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に入る。
URLリンク(japan.renesas.com) から「SuperH RISC engine ファミリ」>「ドキュメント」で
日本語のソフトウェアマニュアルにたどり着けるから、それ読むといいよ。
277:デフォルトの名無しさん
06/07/06 04:11:21
誰もドキュンの意見は聞いてません
帰れ
278:デフォルトの名無しさん
06/07/06 11:37:38
add, sub, and, or, lw, sw, beq, bne, j,
addi, andi, ori, sll, srl, sra
これだけの命令で16or32ビット同士の数字の掛け算のプログラムを作れますか?
279:278
06/07/06 11:59:57
/*
multiplication.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言語で書くとこうなるらしいです
280:デフォルトの名無しさん
06/07/06 12:19:20
ふと思ったが、何でもできる最小限の命令セットってどのくらいだろう。
メモリのリードライト、条件ジャンプ、あと加算?
そういやBrainFuckが何でもできるんだったな。
281:デフォルトの名無しさん
06/07/06 12:33:54
チューリングマシンとか、RAM とかの話になると思うけど、
多分
定数
1 加算
0 判定
間接参照
程度で大丈夫じゃないかな?
282:デフォルトの名無しさん
06/07/06 12:45:22
分岐はいるだろう
283:デフォルトの名無しさん
06/07/06 13:17:01
PCに加算できれば分岐は要らない
284:デフォルトの名無しさん
06/07/06 13:20:26
レジスタから指定したアドレスの内容を減算し、
結果をレジスタとアドレスにストアする。
これでどんなプログラムでも書けるらしい。
実用的にはPCやレジスタにもアドレスを付け、
1番地と2番地に書くと3番地に加算結果、4番地に減算結果、etc
というハードにすると、MOVE命令だけでOK
1命令CPUのすごいところは、命令デコーダが不要なことだ!
285:デフォルトの名無しさん
06/07/06 14:33:41
>>284
その分コーディングで効率を上げないと無駄が増える
286:デフォルトの名無しさん
06/07/06 15:47:42
>>278
シフト命令の他に回転命令が無いと面倒臭くなるな。
287:デフォルトの名無しさん
06/07/06 17:53:21
出来る出来ないは別にして最低限無いと人間が記述する時に不便or不都合が生じる、
という最低限な命令セットの話で。
288:デフォルトの名無しさん
06/07/06 18:00:35
RISC系CPUの初期モデルの命令セットでも見れば?
まあ、x86とかでもアセンブラレベルでの命令の種類はそう多くはないんだが。
289:デフォルトの名無しさん
06/07/06 19:28:36
俺なら真っ先にHALTとNOPとブレークポイント例外を入れるね。
290:デフォルトの名無しさん
06/07/06 19:52:24
>>289「最低限」必要か?
291:デフォルトの名無しさん
06/07/06 19:59:05
>>290
HALTが無いとチューリングマシンとして成り立たないのでは?
292:デフォルトの名無しさん
06/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"として関数を呼び出している。シミュレータでの動作は問題ないので手計算が間違っている!間違いはどこなんですかね?
293:デフォルトの名無しさん
06/07/06 22:19:23
>>291
それが世の中HALTが無いCPUもあったりするんですよ。
294:デフォルトの名無しさん
06/07/06 22:23:11
>>292
ちゃんとマニュアル読んでるのか?
H'8234番地の中身確認してみれ。
295:291
06/07/06 23:54:15
>>291
ええと、少し調べたところ、チューリングマシンはHALTが無くてもいいそうな。
無限ループに陥ったと確定した時点で「停止」扱いでOKらしい。
すまん。
296:デフォルトの名無しさん
06/07/07 00:44:09
>>294
0x8234に目的の値が確保されてるってこと?アドレスから値を持ち込むにはMOV.L @R2,Rnが必要じゃないの?
マニュアル(RJJJ09B0228-0700,Rev7.00 P6-59)には計算通りに導けるが、MOV.L @(H'00F4:8,PC),R2 PC:0x00007E66のシミュレーション結果がR2 = 0x00003774となるのかがどうにも
297:デフォルトの名無しさん
06/07/07 01:39:00
そーゆーもまいらにBrainF*ck
298:デフォルトの名無しさん
06/07/07 11:46:21
6502の命令セットはシンプルで若干不足気味に
まとまった命令セットだったと思う。
299:デフォルトの名無しさん
06/07/07 23:13:39
アセンブラ全般といいつつx86系ばかりだね
UNIXベンダのプロセッサのアセンブリプログラムは無いポ?
300:デフォルトの名無しさん
06/07/09 01:01:24
300ゲットしておきますか。
301:デフォルトの名無しさん
06/07/09 09:41:58
すごくPPCをやりたいんですけど…
わかりません。
302:デフォルトの名無しさん
06/07/09 10:23:20
>>301
黒箱かiMac買えば?
303:デフォルトの名無しさん
06/07/09 10:33:43
>>302
Macならある。
304:デフォルトの名無しさん
06/07/09 11:26:31
>>303
ヒマだから反応しておく。何がわからないんだ。
命令そのものか、又は命令の使い方か?
305:デフォルトの名無しさん
06/07/09 12:12:57
>>304
どっちも。
306:デフォルトの名無しさん
06/07/09 13:09:30
>>305
「玄箱」と「PowerPC」でぐぐればPowerPCの解説HPが見つかるかもしれない。
Macでぐぐってもアセンブラを解説したHPは出て来ない気がする。
しかし、PowerPCのアセンブラも知らないで、何を作るつもりなのか?
その辺を明確にしておかないと、上達は有り得ないと思う。
307:デフォルトの名無しさん
06/07/10 23:28:11
>>306
激励したつもりだったんだけど…orz
308:デフォルトの名無しさん
06/07/10 23:30:47
>>307の訂正
>>306では無くて>>305です。
連続書込み、スマソ
309:デフォルトの名無しさん
06/07/13 19:48:19
アセンブラで逝く!逝く!逝っちゃうの!
310:デフォルトの名無しさん
06/07/15 12:18:13
みさくら語でおk
311:デフォルトの名無しさん
06/07/15 14:10:51
i386にバイト反転付き整数ロード/ストア命令ってある?
312:デフォルトの名無しさん
06/07/15 14:34:18
ない
313:デフォルトの名無しさん
06/07/16 02:03:02
26時間観ながら保守。
314:デフォルトの名無しさん
06/07/16 02:04:17
う~、誤爆した。
315:デフォルトの名無しさん
06/07/16 08:21:59
スリムでドボンとか言う奴はどこいったんだ
316:デフォルトの名無しさん
06/07/16 09:17:49
糞コテは呼ばんでええよ
317:デフォルトの名無しさん
06/07/17 12:35:35
インラインアセンブラはスレ違いかもしれないけど質問。
Xeonで動かそうと思って
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の各種最適化に頼りたいから残しておきたいんだが。
318:デフォルトの名無しさん
06/07/17 20:40:02
>>317
素直に2要素ずつやったらいいんでないの。
> ループ部はiccの各種最適化に頼りたいから
とはどういうこと?
この処理なら関数全部をインラインアセンブラで
書くのが、速度も出るし手っ取り早いと思うが。
319:デフォルトの名無しさん
06/07/17 20:41:32
>>318みたいな原始人まだいたんだ(^o^)
320:デフォルトの名無しさん
06/07/17 20:53:01
だいたい、Cなんて中身の何も無いループ回すだけでちんたら遅すぎ。
ポインタなんか使ったら余計な演算入りまくりで遅いし。まあ、最近のCPUは掛け算が早くなったから大分良くなったが。
321:デフォルトの名無しさん
06/07/17 20:57:07
>>317
コンパイラがサポートしてるならintrinsics関数で書く。
322:デフォルトの名無しさん
06/07/17 21:21:13
C言語レベルで最適化する余地があると思うが
ヒント
for(int iy = 0; iy < ye; iy++){
sumA+=cx1*(cy1+sy1);
sumB+=sx1*(cy1-sy1);
}
sum+=sumA+sumB;
323:デフォルトの名無しさん
06/07/17 22:12:57
>>322
まだ最適化できる。
ヒント
for(int iy = 0; iy < ye; iy++){
sumA += cy1;
sumB += sy1;
}
sum += cx1 * (sumA+sumB);
sum += sx1 * (sumA-sumB);
324:323
06/07/17 22:19:41
>>323
あ、自分で書いといて今気づいた。
この書き方だとループも外に括りだせるからO(n)で計算できる。
もとのコードだとO(n^2)だから圧倒的に性能が向上する。
というかアセンブラに手を出す前に論理レベルで最適化しろという典型例ですな。
まぁ、このスレで言うのは無粋だけどw
325:デフォルトの名無しさん
06/07/17 22:30:29
うーん惜しいな。yだけじゃなくてxも最適化できる。
for(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);
ま、こっちはオーダーレベルの最適化にならないがな。
326:317
06/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命令って組み合わせるとどうなるのかなぁ。こればっかりはニモニック表にらめっこしてもわからん……
327:デフォルトの名無しさん
06/07/18 07:13:29
>恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。
インラインアセンブラの内部はコンパイラの最適化は効かない。
movsdやmovhlpsで1要素ずつ移動してるのが無駄だ。
>えーと、最終的なコードはもそっと複雑になるので
それがどんなコードか書いてくれないとレスのしようがない。
>>324のような最適化が最も重要なのに、それを検討する前から
アセンブラの書き方を考えるのはちょっとおかしい。
>FPU命令とSSE命令って組み合わせるとどうなるのかなぁ。
それは面白いのでレスをしたいところだが、
どんな処理かわからんことには・・・。
328:デフォルトの名無しさん
06/07/18 07:27:13
>>327
>恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。
単純に、自前で書いてもコンパイラに任せても同じ程度のコードだと言っているだけだな。
アンロールしないと速度でないのは承知しているみたいだし。
>えーと、最終的なコードはもそっと複雑になるので
多少複雑になっても本筋は変わらんだろ。要はダメ出ししたいだけみたいだから。
>326はとっとと諦めてダメレポート書けばいいんでね。
329:デフォルトの名無しさん
06/07/18 07:39:41
>>326
>iccに勝てるコードを書けるとは思いません。
結果は出てるんじゃんw
アセンブラで速度を問題にする場合はある程度センスが要求されますので、あきらめた方が良いかとおもわれ
330:デフォルトの名無しさん
06/07/22 18:26:54
Technical Assemblerの掲示板、もはや機能してないねぇ‥‥
大量のスパムURLでログが流されまくり。
331:デフォルトの名無しさん
06/07/29 20:09:22
一週間ぶりにあげ
332:デフォルトの名無しさん
06/07/29 21:02:14
差を割った数をサマリーするのにサマリーの差を割ってる馬鹿ども
333:デフォルトの名無しさん
06/07/29 23:47:36
だれか助けてくれ!!
MIPSでクイックソートを作らないといかんのだが分からん・・・
言語はMIPSベースの16ビットマイクロプロセッサ用
で、基本MIPSと同じです。
違う点、MULT DIV命令が無い
即値ロードはlhi $a,label で上位1バイト lliで下位1バイト読み出すものとする。
詳しくは、
URLリンク(72.14.207.104)
ソートされる要素の数は0x4000番地に
要素は0x4000から以下2バイト刻みで入っているものとする。
334:デフォルトの名無しさん
06/07/29 23:58:44
クイックソートの仕方は知ってるの?
335:デフォルトの名無しさん
06/07/30 00:09:36
>334
それは、Cでは書けるんですが、
アセンブラになるとちょっとお手上げ状態です。
あとレジスタが8個しか使えない制限つきだったりします・・・。
336:デフォルトの名無しさん
06/07/30 00:30:28
レジスタが使えないのなら、メモリを使えば良いじゃない!
文句があるならベルサイユへいらっしゃい!
337:デフォルトの名無しさん
06/07/30 00:45:21
あとメモリなんですが、0xFFFFまで使用可能なんですが、
データが1026個はソートできる仕様との事なので
あんまり深いスタックは惚れません・・・
338:デフォルトの名無しさん
06/07/30 00:52:59
最適化OFFにしてCで書いたのを逆アセンブラしたのを参考にするとかは?
339:デフォルトの名無しさん
06/07/30 00:58:05
Cでソース書いて
スタックの使い方決めて
レジスタを割り付けて
手動で1行ずつ変換
340:デフォルトの名無しさん
06/07/30 09:58:32
NASMで絶対間接far callを書きたいんだけどどう書いたらいいの?
341:デフォルトの名無しさん
06/07/30 15:43:04
masmで32bitだと
call qword ptr mem
だったかな?
よく覚えてないけど。
342:デフォルトの名無しさん
06/07/30 20:36:46
>>340
call far [edx]
call far [0xdeadbeaf]
>>341
call fword ptr MEM
343:デフォルトの名無しさん
06/07/30 23:43:52
>>342のプログラムをコンパイルして実行したら不正な処理をしたとOSに怒られました!
みなさんも気をつけてください!
344:デフォルトの名無しさん
06/07/31 00:27:27
>>343
君もう来なくていいから
345:デフォルトの名無しさん
06/07/31 12:43:27
0xdeadbeef なら怒られないかも?
346:デフォルトの名無しさん
06/08/03 18:42:07
C言語の x[n]=c1*delx という式をアセンブラに書き換えたらどうなるか必死に考えて
mov eax,c1
mov ebx,delx
mul ebx
mov x[n],eax
となるのではなかろうかと思うのですが、正しいですか。
これをVC++6.0でインラインアセンブラにしようとしたら、同じサイズのオペランドのが
必要とかでエラーでした。早くアセンブラを理解できるようになりたい。
347:デフォルトの名無しさん
06/08/03 18:50:36
ebxをそんな用途に使う奴を始めてみた
348:デフォルトの名無しさん
06/08/04 00:52:54
>346
非常に基本的なことなんだが、まず x, n, c1, delx 全ての変数の型が不明。
仮に全てunsigned longだったとして、
mov eax,c1
mul delx
で十分。
最後に x[n] という表記はナイ。
349:デフォルトの名無しさん
06/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ってのはそーいうこと?
一方が符号付きで他方が符号無しと判断されるのはなぜ?
350:デフォルトの名無しさん
06/08/04 01:21:57
CYの下線~~ずれた…
351:デフォルトの名無しさん
06/08/04 01:35:55
>>350
一般的に減算のあとのキャリーフラグは、ボローフラグの意味となる。
つまり、繰り上がりが生じたのではなく繰り下がりが生じたと言う意味。
352:デフォルトの名無しさん
06/08/04 01:47:10
>>351
あっ、なるほど。そのほうが意味的に納得です。
mov al,7F
inc al
が符号付きとして処理され
mov bl,0
sub bl,80
が符号なしと処理された
扱いの違いの理由は何故でしょう?
もしかしてalを使うと符号付きの演算扱いになるとか、でしょうか?
353:デフォルトの名無しさん
06/08/04 09:26:36
レジスタalとbを変えて試しても符号付、符号なしの結果の違いはないから
これはincとsubの違いと見当をつけて先へ進むことにします。
354:デフォルトの名無しさん
06/08/04 10:43:51
あー、フォローするの忘れてた。
フラグリファレンスによると、x86系CPUではinc/decではCFは操作されない。
これは、8bitCPU時代からの伝統でキャリーをレジスタ(orメモリ)間で伝播させる用途で便利。
#最下位バイト同士をaddして、インデックスに使用するレジスタをインクリメントして2番目をadcして……
尚、例えば68000の場合は対象がデータレジスタならフラグが影響を受けてアドレスレジスタでは影響を受けない。
この様に、フラグの振る舞いはCPUによって違うので、
実験から推測するのではなくリファレンスで調べておくことをお勧めする。
355:デフォルトの名無しさん
06/08/04 11:41:10
>リファレンスで調べておくことをお勧めする。
了解です。ありがとう御座いました。
356:デフォルトの名無しさん
06/08/14 23:13:45
Ollydbgってなんで公式サイトのファイルぶっこわれてるの?
357:デフォルトの名無しさん
06/08/14 23:50:21
>>356
今試したら問題なくDLできたよ
再DLでいけるかと
URLリンク(www.ollydbg.de)
358:デフォルトの名無しさん
06/08/14 23:58:37
>>356
OllyDbg日本語化パッチとOllyDbgQ&A
URLリンク(hp.vector.co.jp)
359:デフォルトの名無しさん
06/08/17 11:08:26
URLリンク(acapulco.dyndns.org)
360:デフォルトの名無しさん
06/08/17 12:41:45
初歩的な質問なんですが
mov WORD [100] 1
ってかくと
----------
00000001 100番地
----------
00000000 101番地
----------
ってメモリに書かれると思うのですが
mov DWORD [100] 1
ってかくと
----------
00000001 100番地
----------
00000000 101番地
----------
00000000 102番地
----------
00000000 103番地
----------
の認識でいいでしょうか?
361:デフォルトの名無しさん
06/08/17 14:10:12
CPUによって違う。
リトルエンディアンのCPU(インテルx86等)ならその認識でいいと思う。
あとアセンブラによって記法が異なるので、今度質問するときはCPUと
使用アセンブラを書いた方がいいかも。(その記法は初めて見た。)
362:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/18 01:21:50
mov DWORD PTR [100],. 1
か
363:デフォルトの名無しさん
06/08/18 03:07:16
つーかレジスタ経由しないで転送できるん?
364:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/18 03:21:09
たしかにx86じゃ無理だな。。。
365:デフォルトの名無しさん
06/08/18 03:29:53
何このレベルの低いコテ
366:デフォルトの名無しさん
06/08/18 04:25:49
あれ、x86でmov mem,immて出来なかったっけ?
367:デフォルトの名無しさん
06/08/18 06:57:08
メモリ同士は不可だが、即値はできるだろ…
368:デフォルトの名無しさん
06/08/18 09:59:58
どのみちレジスタファイル上に展開してからストアするので団子もある意味正解。
369:デフォルトの名無しさん
06/08/18 10:15:48
純CISC時代しか知らないのでそんな話されても理解できません。
370:デフォルトの名無しさん
06/08/18 18:53:57
ハードワイヤードロジック・・・ (;´Д`)ハァハァ
371:デフォルトの名無しさん
06/08/18 23:59:19
エロいな。。。
372:デフォルトの名無しさん
06/08/19 09:30:16
LINUXでMS-DOSのdebugみたいに
凡用レジスタ(ax,bx,cx...等)が表示するような
ソフトってありますか?
373:デフォルトの名無しさん
06/08/19 09:34:23
>>372
「ぼんよう」って何?
レジスタが何を表示するの?
デバッグツールならgdbがあるけど。
#勿論汎用(はんよう)レジスタの値を表示することもできる。
374:デフォルトの名無しさん
06/08/19 10:35:57
凡用レジスタ … 浮動小数点やSIMD演算など特別な機能はないが特に使い勝手が悪い訳でもない凡庸なレジスタ
375:デフォルトの名無しさん
06/08/19 11:24:52
忘れられがちなreg15はeax/ax/alと姿を変える汎用レジスタより確かに凡庸かも知れん。
376:デフォルトの名無しさん
06/08/19 12:49:54
>>373
おまえは誤字に反応しすぎだ。この変態や労が
377:デフォルトの名無しさん
06/08/19 13:25:57
(←なぜか変換できない)系の遊びにもいちいち突っ込んで回ってるんだろうな
378:373
06/08/19 13:33:39
>>377
いや、それらは99%放置。
いいじゃん、ちゃんと回答もしているんだから。
379:デフォルトの名無しさん
06/08/19 14:24:16
リトルエンディアン
しばしばビッグエンディアンより優れているとされる
ビッグエンディアン
しばしばリトルエンディアンより優れているとされる
380:デフォルトの名無しさん
06/08/19 14:27:54
小手先でなく真の実力が身につく本を紹介したまえ。
今時じゃない奴な。
381:デフォルトの名無しさん
06/08/19 14:39:16
つ『創るJava』
382:デフォルトの名無しさん
06/08/19 15:15:33
>>380
つ「IA-32 Intel(R) Architecture Optimization Reference Manual」
383:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/19 15:32:49
画像処理屋的には「アセンブラ画像処理プログラミング」あたりですかい
あとは、先輩にとられて未だに返ってこないCQ出版社の2000円くらいの奴とか。
アレはイイ本だと思った。
384:デフォルトの名無しさん
06/08/19 15:43:03
アレ(x86アセンブラ入門)はいいよな。内容的には広く浅くだけど
自分でそれなりに調べたことのある人ならベストチョイス。安いし。
385:デフォルトの名無しさん
06/08/19 16:32:42
>>376
>>373じゃないが,「凡用」は「はんよう」を変換しても絶対に出てこないので,
誤字以前の問題だと思うが.
386:デフォルトの名無しさん
06/08/19 18:03:22
>373
gdb使いにくいんですが
他に無いですか?
OllyDbgきぼんぬ
387:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/19 18:09:10
OllyDbgで汎用レジスタからマルチメディアレジスタまで見れるんじゃなかったっけ?
ただ、SSE2以降の対応がされてなかったような。
Visual Studioのデバッガは結構強力だよ。
388:デフォルトの名無しさん
06/08/19 18:13:36
使ったことはないが、idbだっけ? インテルのデバッガはどうなんだろう。
389:デフォルトの名無しさん
06/08/20 11:44:44
団子ってアセンブリ言語はどれくらいできるの?
390:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/20 12:56:24
基本的にMM/XMMレジスタ周り。
SSE4がマイブームなのだがまだCore2Duoマシンが手元にないから困る。
391:デフォルトの名無しさん
06/08/20 13:20:14
>>390
Intel XeonのWoodcrestはどうよ?
30万円台からマシンが手に入るぜ
392:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/20 13:25:18
今の預金じゃ確実にローン計画だな
393:デフォルトの名無しさん
06/08/20 13:28:19
詳しくはこちらへ
URLリンク(www.apple.com)
394:デフォルトの名無しさん
06/08/20 14:25:03
IntelのチューニングコンテストでWoodcrestを使わせてくれるよ。
#って、今言っても無意味か。
395:デフォルトの名無しさん
06/08/20 14:51:32
>>392
仕事は何をしてるの?
396:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/20 14:57:10
画像系
397:デフォルトの名無しさん
06/08/20 15:40:09
>>396
PGなの?
398:デフォルトの名無しさん
06/08/20 15:58:03
コテと遊ぶのはマ板でやってくれよ
うざい
399:デフォルトの名無しさん
06/08/20 16:30:07
>>396
仕事で使ってる言語は何?
400:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/20 17:10:56
主にBrainF*ck
401:デフォルトの名無しさん
06/08/20 17:36:11
woodcrestで簡単な速度調査くらいできるけどなんかリクある?
402:デフォルトの名無しさん
06/08/20 17:36:51
90 eb fd の速度調査求む
403:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/20 18:06:49
整数演算でpand/pandn/por/pxorをandps/andnps/orps/xorpsに置き換えた場合のペナルティ
って具体的に何クロックくらいなのか、とか。
404:デフォルトの名無しさん
06/08/20 18:09:08
速度調査用Cソース求む。つーか、90 eb fdだけインラインアセンブラで並べて動かすの?
#一体何のニモニックなんだろう。
405:デフォルトの名無しさん
06/08/20 19:43:02
たぶん
LABEL:
nop
jmp LABEL
406:デフォルトの名無しさん
06/08/24 07:04:12
MessageBoxA出すもので1500バイトより小さいEXE作る方法あるかい?
407:デフォルトの名無しさん
06/08/24 07:38:00
あるお( ^ω^)
408:デフォルトの名無しさん
06/08/24 07:45:56
MASMでできるかな( ^ω^)
409:デフォルトの名無しさん
06/08/24 08:05:05
>>406
セクション一個にすれば1024バイトにできると思うよ。
.textや.data兼ねるインポートセクション作ればいい。
それより小さいのは無理ぽ。
410:デフォルトの名無しさん
06/08/24 08:12:09
1024とかならバイナリエディタでないと無理かな?
PEが分かれば簡単かな?
MZの次のバイトは何なんですか?
411:デフォルトの名無しさん
06/08/24 08:53:48
で、答えたら、次のバイトは何ですかとなるわけだな!
412:デフォルトの名無しさん
06/08/24 09:00:33
00400000 4D 5A 50 00 02 00 00 00 04 00 0F 00 FF FF 00 00 MZP........
00400010 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ヘ!.$
超適当
413:デフォルトの名無しさん
06/08/24 09:28:55
とりあえずVC++でもリンカオプションいじれば1024バイトまでは達成できることを確認。
414:デフォルトの名無しさん
06/08/24 10:59:44
/NODEFAULTLIBと/ENTRYと/MERGEと/OPT:WIN98で512バイトは可能
415:デフォルトの名無しさん
06/08/24 11:33:14
ファイルのアラインメントサイズって512以下にできるんだっけ?
416:デフォルトの名無しさん
06/08/24 13:56:04
_____
_ / \
| |/ _ノ ヽ、_ \ ・・・もしもしお母さん、僕だお、僕・・・そう、ヨシオだお・・・
| | o゚⌒ ⌒゚o \ ・・・事故起こしちゃって・・・相手を怪我させちゃったお・・・
| | (__人__) |
| |/ _ノ ヽ、_ \ ・・・お金がいっぱい必要だけどお金持ってないお・・・
| | o゚⌒ ⌒゚o \ ・・・うん・・・うん・・・今から言う口座にすぐ振り込んで欲しいお・・・
| | (__人__) |
| |/ _ノ ヽ、_ \ ・・・お母さん・・・迷惑かけてばかりでごめんなさい・・・
| | o゚⌒ ⌒゚o \ ・・・うん・・・ありがとう・・・がんばるお・・・じゃあね・・・
| | (__人__) |
プチッ… _ / \
ツーツー…| |/ _ノ ヽ、_ \ ・・・
| | o゚⌒ ⌒゚o \
| | (__人__) |
|_| ` ⌒´ /
§
∂
__
_ /⌒ ⌒\
| |/( ●) (●)\
| |::::::⌒(__人__)⌒::::: \
| | |r┬-| |
|_| `ー'´ /
§
∂
∽
417:デフォルトの名無しさん
06/08/24 14:14:01
バイナリエディタで作れる最小のPEは256バイトより若干小さくできるけど
不正なexeで認識する環境もある
418:デフォルトの名無しさん
06/08/24 17:00:20
256バイトより若干小さいそのEXEはPEフォーマットに従ったものですか?
普通のWindowsのEXE(Notepad.exeなど)はOEではなくOMFですか?
>>412
00400000 4D 5A 50 ←これ何ですか( ^ω^)
419:デフォルトの名無しさん
06/08/24 17:22:18
ちなみに、4096byteより小さくしても、通常は意味がない。
というのは、ページサイズが4Kな上、
FAT32もNTFSも、普通はクラスタサイズが4K以上だから。
FAT16(FDDとか)を使うとか、ネット上での転送量を気にするとかなら
わずかに意味があるかもしれないが
それ以外は、ただの自己満足。
420:デフォルトの名無しさん
06/08/24 17:30:02
>>418
PEヘッダへのオフセットの最下位バイト。
421:デフォルトの名無しさん
06/08/24 17:46:25
>419
>ネット上での転送量
普通圧縮かけるから結局無意味。
てか、サイズを小さくする目的でアセンブラ使ってる人はもう居ないでしょ。
組み込み系ですら見かけない。
422:デフォルトの名無しさん
06/08/24 18:00:30
FDDはFAT12だった。
と、突っ込みが入る前に訂正しておこう。
423:デフォルトの名無しさん
06/08/24 18:18:28
288バイトでアッー!
TVpQuzAAQABTU1BLU+sDAAAA/yUcAEAAHAAAAPAAAAAAAAAA4AAAABwAAAAAAADDg0GDYoFbgUkA
AAAAQAAAAFBFAABMAQEAAAAAAAAAAAAAAAAA4AAPAQsBBQyAAAAAAAAAAAAAAAACAAAAAAAAAOAB
AAAAAEAAEAAAABAAAAAEAAAAAAAAAAQAAAAAAAAA4AEAAGABAAAAAAAAAgAAAAAAEAAAEAAAAAAQ
AAAQAAAAAAAAEAAAAAAAAAAAAAAAGAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c2Vy
MzIuZGxsAAAAAAAAnQFNZXNzYWdlQm94QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAE
AAAA
424:デフォルトの名無しさん
06/08/25 09:17:03
>>420
その素敵な日本語は飽きるほど見ました。
もーそこは分かりました( ^ω^)
>>412
それは実行可能ですか?
425:デフォルトの名無しさん
06/08/25 09:30:59
DOS STUBとPEヘッダの間にリンカが埋めるデータの意味が未だにわからん
クリアしても動作に支障はないし
426:デフォルトの名無しさん
06/08/25 10:16:29
必ずRichって書いてあるよな
>>423
アッー!
427:デフォルトの名無しさん
06/08/25 10:38:27
前に1000バイトのテトリス(Win32アプリ)を見たな‥‥
428:デフォルトの名無しさん
06/08/25 16:20:52
>>427
これか?
昔は動いたけど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
429:デフォルトの名無しさん
06/08/25 17:07:20
>>409
セクションとはassumeのことですか?
csとdsを同じにしたらEXEではなくなるんじゃないですか( ^ω^)
430:デフォルトの名無しさん
06/08/25 19:15:35
やっとできたー
たぶんPEの最小サイズ?
TVoAAFBFAABMAQEATWVzc2FnZUJveEEAqAAPAQsBdXNlcjMyLmRsbAAxwLkpAAAAUGjEAEAA6yYA
AEAABAAAAAQAAAAKAAAAAAAAAAQAAAAAAAAA6QAAAMQAAADMzOtcAgAAAAAAEAAAAAEAAAAQAAAA
AQAAAAAAAgAAAAAAAAAAAAAAqAAAABQAAACBQIFpgUCDqV+DqQqBvIHcgsLfgVvfKYLCgfQARAAA
AAAAAAAAAAAAHgAAAEQAAABojABAAFDrHDIzM2J5dGUA6QAAAAAAAADpAAAAAAAAAAAAAAD/FUQA
QADDzCA=
431:デフォルトの名無しさん
06/08/25 20:02:15
233が最小だと思ってたけどもう少し小さくできそうだ・・・
432:デフォルトの名無しさん
06/08/26 01:29:13
>>406
433:デフォルトの名無しさん
06/08/28 01:32:20
>>428はXPSP2と2003SP1だと動かないねぇ‥‥
>>430のは動くけど。
434:デフォルトの名無しさん
06/08/29 00:28:35
>>429
Win32のEXEはCS=DSが普通だし、
DOSのEXEもスモールモデルはCS=DS。
COMでもCS≠DSにすることは不可能ではないけどちと話がずれるな。
435:デフォルトの名無しさん
06/08/29 03:25:13
スモールモデルはCS≠DSだったと記憶してるが・・・
436:デフォルトの名無しさん
06/08/29 03:46:13
CS=DSはCOMだろ。
437:デフォルトの名無しさん
06/08/29 04:06:28
CS=DSはタイニーだな。
438:デフォルトの名無しさん
06/08/29 07:32:27
MASMでスタックサイズを指定するにはどうしたらよいですか?
_MessageBoxA@16だけだからスタックは16バイトでよいですか?
439:デフォルトの名無しさん
06/08/29 13:31:19
nasmとmasm32 があるけど使い方がわかりません。
hello worldと表示させる.asmはあるのですが
このあとnasmやmasm32 を使って helloworld
を表示する方法をおしえていただけませんか?
440:デフォルトの名無しさん
06/08/30 01:54:52
>>434
Win32だとCS=0x1b、DS=0x23だったような。ollydbgで確認。
441:デフォルトの名無しさん
06/08/30 10:08:45
>>440
わかっているくせに
442:デフォルトの名無しさん
06/08/30 19:27:08
>>441
キョン君のこと好きなんでしょ
443:デフォルトの名無しさん
06/08/30 20:12:51
でも象さんの方がもっと好きです
444:デフォルトの名無しさん
06/08/30 23:55:52
にら
445:デフォルトの名無しさん
06/08/30 23:58:34
れば
446:デフォルトの名無しさん
06/08/31 00:01:32
かゆ…
447:デフォルトの名無しさん
06/08/31 00:06:38
うまい、うますぎる。
448:デフォルトの名無しさん
06/08/31 01:43:30
風が語りかけます。
449:デフォルトの名無しさん
06/08/31 06:09:19
アッー!
450:デフォルトの名無しさん
06/08/31 11:47:38
十万行アセンブラ
451:デフォルトの名無しさん
06/08/31 14:04:48
おえーおえー
452:デフォルトの名無しさん
06/08/31 19:25:35
eax:edx の内容を mm0 に転送するにはどう書いたらいいんでしょうか?
453:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/31 23:18:23
movd mm0, eax
movd mm1, edx
punpckldq mm0, mm1
454:デフォルトの名無しさん
06/09/01 08:32:02
VC6 で アセンブラの pmovmskb 命令を使用するにはどうしたらいいんでしょうか?
455:デフォルトの名無しさん
06/09/01 08:47:59
つ[VC2005 Express]
456:デフォルトの名無しさん
06/09/01 08:57:19
2500バイト未満のMessageBoxのMZってどうやって作るんですか?
457:デフォルトの名無しさん
06/09/01 09:44:06
>>456
アセンブラでMessageBox呼び出しだけでどうやったら2499バイトを超える事ができるのかが逆に疑問だ
458:デフォルトの名無しさん
06/09/01 09:56:15
表示するメッセージが2500バイト以上なんだろw
459:デフォルトの名無しさん
06/09/01 10:38:37
それだ!
460:デフォルトの名無しさん
06/09/08 11:39:40
gas/i386で
pushl %ds
こういう命令が書かれてたとき、
スタックポインタに加算される値は2?それとも4?
461:デフォルトの名無しさん
06/09/08 12:14:16
4に決まってるだあ
462:デフォルトの名無しさん
06/09/08 12:29:38
さんくすこ
463:デフォルトの名無しさん
06/09/20 19:19:17
『独習アセンブラ』で、今日からやりだした超初心者なんですけど、
x86系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