[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/24 11:23 / Filesize : 211 KB / Number-of Response : 985
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

アセンブラ… (゜□゜) ↑アッー!↓



1 名前:デフォルトの名無しさん [2006/05/24(水) 01:43:34 ]
アセンブラ全般に関するスレッドです。

【前スレ】
アセンブラ… ヽ(゚∀゚)ノフォーウ!
pc8.2ch.net/test/read.cgi/tech/1132761638/

過去ログは>>2辺り

182 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 20:01:57 ]
今、アセンブラの仕事って、有るのか?

183 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 20:45:31 ]
ある。安物チップの組み込みで性能を出そうとする場合はそうだな。
試作品なら使いもしない周辺回路がごっそり入ってても問題ないが、量産品の場合はコスト優先の場合が多い。
俺はこんど、WEBサイトをアセンブラで書こうかと考えている。今はアパッチ使ってるが、サーバー含めてALLアセンブラ。

184 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 22:00:34 ]
OSもアセンブラ使ってね

185 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 01:04:21 ]
>>183
ドンキホーテにでも成るつもり?

186 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 10:28:31 ]
>183
なんのメリットも見出せないんだが?
ボトルネックは回線、次いでHDDアクセスか?
アセンブラで記述しても1%も高速化出来まい。

「WEBサイト」とか言ってる時点でネタだろうが、それにしても酷い。

187 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 10:37:23 ]
>サーバー含めてALLアセンブラ
って言ってるから、ハード自作してファームウェアからアセンブラで書くんだよ
きっと。

188 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 12:53:22 ]
PICでWeb鯖なら実現してるのいっぱい居るけどな

189 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 13:01:59 ]

あれ中途半端だけどね

でもあそこまでやってれば立派だお



190 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 13:10:10 ]
>>186
回線は光の16IPに増強済み。メモリは2Gで極力メモリ上で動くようにはしてある。
ボトルネックはリクエストに対するアパッチの応答。
一秒当たり500とか1000のリクエストにはちょっと厳しいのでは?
まあ、アパッチの設定を弄って済む位のアクセスであれば「なんのメリットも見出せない」と言うのは真かもね。



191 名前:あや [2006/06/25(日) 13:18:40 ]
こんにちは!
今学校でMIPSのシミュレータを勉強してます★
それで、「N掛けるNの掛け算表表示プログラム」
を出力するプログラム(Nは入力して与える)を書けという課題を出されたのですが、
全くわかりません><
誰か助けてください!

先生がくれたメインルーチン部分は



192 名前:あや [2006/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 名前:あや [2006/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 mailto:sage [2006/06/25(日) 14:12:45 ]
>全くわかりません><
>誰か助けてください!

俺もよくわからないから
今度デートしようよ。

195 名前:あや [2006/06/25(日) 14:25:13 ]
わからないならやだーー笑。

196 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 14:25:54 ]
あやちゃんのフルネームは
綾小路源五郎

197 名前:あや [2006/06/25(日) 15:12:20 ]
みんな使えない!!
パソコンに関してはすごいのかと思ったらぜんぜんじゃんか!

198 名前:マイク ◆yrBrqfF1Ew mailto:sage [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 15:37:21 ]
お題はプログラムを出力するプログラムじゃないの?

200 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 16:16:58 ]
>>197
馬鹿だなあ
お前のようなネカマに使われたくないだけだよ(w



201 名前:あや [2006/06/25(日) 19:30:05 ]
>198
ありがとうございます♡→ܫ←♡
まだ動かないですけど、かなり助かりました!
mult $t0, $a0, $a1
      ^ のところでsyntax errorが出るんですよね〜↓
なんでだろう?

でもマイクさんすごいです!!



202 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 19:53:52 ]
♡→ܫ←♡

203 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 19:59:27 ]
 → ←
  ܫ

♡   ♡

  ܫ

  ♡

204 名前:あや [2006/06/25(日) 20:32:54 ]
(´^ิu^ิ`)

205 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 21:06:24 ]
「mult」ってアセンブラ命令なのか?

206 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 21:30:25 ]
>190
お前は俺の言っている意味が全然解ってない。
メモリアクセス>>(超えられない壁)>>HDDアクセス>>>回線
だと言っている。
リクエスト数が多いなら、IOアクセス量の問題だから
なおの事アセンブラ化での高速化では解決しない。

更に言うなら、そんなシステムをデバッグの困難なアセンブラで書き起す事自体がネタとしか思えない。

207 名前:マイク ◆yrBrqfF1Ew mailto:sage [2006/06/25(日) 21:43:13 ]
>>201
じゃmultをmulに変えてみてくれ。

>でもマイクさんすごいです!!

感謝の気持ちは電話番号でのみ受け取るよ。

208 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 23:53:31 ]
IA-32でのCMPとTESTの使い分け方を教えてください。
とりあえず今は全部CMPにしていますが…

209 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 00:07:20 ]
引き算とand演算の違い。

210 名前:デフォルトの名無しさん [2006/06/26(月) 02:49:00 ]
アセンブラ遅かったら使う意味無いじゃん!(><) 騙された!



211 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 10:32:54 ]
今のクピュはアッセンをエミュで実行してるからCの方が早いよ

212 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 14:23:35 ]
>>206
206は>>190に書かれている日本語を理解してない。
>ボトルネックはリクエストに対するアパッチの応答。
と書いてある。

なぜ
>リクエスト数が多いなら、IOアクセス量の問題だから
と言う話になるのだ?
206はそもそもWEBサーバーを動かした事が無いのか?

>デバッグの困難なアセンブラで書き起す事
デバッグが困難なのはつくりが悪いからであってアセンブラのせいじゃ無い。

213 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 15:04:22 ]
リクエスト数の多さって、結局データ転送量の問題になる気がするけど?
具体的に何処を高速化したいのかわからん。
マルチスレッドのリアルタイム性ならOS書き換えるかCPU変えるor増やすしかないし、
「アパッチの作りが悪い」と言いたいだけなら該当箇所修正しる。
今主流のシステムでアセンブラ化で高速化出来るのはメモリアクセスの効率と演算の最適化で、
ランダムアクセスと転送が主になるwebサーバは高速化できない。

それと、もう余りにもアホらしくて突っ込む気も失せ気味だが、
高級言語と低級言語の開発効率とメンテナンス性の違いが理解出来てないなら
ホントにプログラマやめたほうがええよ。

214 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 15:21:59 ]
リクエスト数増えたらマシン増やして負荷分散だろ
それとも負荷分散装置でも作ってるのか?

215 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 15:53:57 ]
携帯用のサイトなので、データー量はしれてるのだけど、広告媒体が動いた瞬間にアクセスが急に増えたり
昼の休み時間や夕方にアクセスが集中する。平均的には大したリクエスト数ではないのだけど>>190
書いたようにピークがとにかくすごい。ピークに合わせてマシン増やすのは誰でも出来るが
専用の最適化されたWEBサーバーを立てれば、多分マシン1台で10サイトくらいは余裕で行ける見積もりなので
他社との差別化が出来る。中小企業にはブレードサーバーなんて置けない所もあるのだよ。
アパッチのつくりが悪い訳じゃ無い。高機能すぎて不要な機能の為に速度が犠牲になってるだけ。

216 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 15:56:47 ]
PMがGO出すわけねぇし、どうせ学生の遊びだろ。

217 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 16:00:50 ]
>>216
学生乙

218 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 16:48:54 ]
>ランダムアクセスと転送が主になるwebサーバは高速化できない。

知ったかぶり乙

219 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 17:22:22 ]
>具体的に何処を高速化したいのかわからん。
日本語勉強汁!

220 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 19:48:28 ]
趣味でやるなら、まあ好きにやれ。健闘を祈る。
仕事でやるならメンテする人間の冥福を祈る。



221 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 20:00:55 ]
>>219
「応答」が具体的だと思ってるならそれは間違い。

222 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 20:52:09 ]
>>215
そのためにホスティングサービスやASPって物があると思うんだが
ピークの合わないサイトを組み合わせて手の空いた時間は別のサイトに処理能力を廻す見たいな感じで
そこら辺はデータセンタ/ASP運用の肝って所だな

あとは中小企業でブレードサーバ置くなんて考えがそもそもおかしい

それをあえて自前でやろうって考えは別に止める気は無いが
まずはWebProg板へ行ってぼろ糞に叩かれて来い


223 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 23:32:03 ]
俺も206と殆ど同意見だな。

WEBアプリケーションをアセンブラで作ろうという奴の気がしれない。


224 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 02:13:49 ]
サーバをWEBサイトとほざいた>>183とWEBアプリケーションと抜かした>>223
さーて不思議な符合ですね。

225 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 04:36:34 ]
このスレには2人しか居ないから

226 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 05:15:32 ]
いや、3人いる。俺とお前と大五郎だ。

227 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 05:20:53 ]
昨日からアセンブリ弄り始めた私を含めて4人だな。

228 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 05:47:34 ]
アセンブラじゃなくて、マシン語でプログラム書いている酔狂もいるらしいな。

229 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 12:35:43 ]
明日からアセンブリ弄り始める私を含めて5人だな。

230 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 12:46:05 ]
明後日からアセンブリ弄り始める私を含めて6人だな。



231 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 12:46:07 ]
俺はもう卒業するから4人だな

232 名前:デフォルトの名無しさん mailto:sage [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人。

233 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 20:02:43 ]
今日は早上がりの漏れ様が経験の無い>>215にアドバイスしておく。

ドコモやボダのゲイトウェイはかなり低速(auのは知らん)。

なので、多くの携帯が1台のサーバにアクセスしてくると、プロトコルスタックや
サーバアプリ(←これは作りにもよるが、それなりに高速だとして)の性能限界に
達する前にTCPコネクション数(多くの場合3万弱くらいか)を使い切ってしまう
という事態が起きる。

ので、ZenでOSを分けるとかするのでなければ、十分高速であればそれ以上
カリカリにチューニングしてもあまり意味は無い。

・・・それは別として自分で作るくらいなら tux とか IIS の方が良いような気もする。

234 名前:デフォルトの名無しさん [2006/06/27(火) 22:40:24 ]
汗んブラで書くんだったらカーネルドライバとかプロトコル部だね

本気でパフォーマンス稼ぐつもりならFPGAで2層以上をオフロード




つーかL5ロードバランサ使えww



235 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 18:02:23 ]
FPGAなんぞ遅延でかいから速度あがらん
ASICでいいよ

236 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 21:25:05 ]
BASICでインジャネ

237 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 22:43:03 ]
LISPマスィーン

238 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 01:08:27 ]
>>233
アドバイスありがとうございます。
ページキャッシュが使えない事もあり、現状では300アクセス/秒程度しかさばけないのですが
この時のCPU負荷が100パーセント近いので、まずはIOやTCPコネクションよりもこちらを改善する予定です。
とりあえずCで簡単なサーバーを書いて動かせばCPU負荷が極端に減り、10サイト位はいけそうな雰囲気はあります。

ZenはTCPコネクションの問題回避では無く、複数のサイトを動かす為にメンテのしやすさから導入したかったのですが
zen1.1ではアパッチはまともに動かなかった気がします。最新版では大丈夫なのでしょうか?

>>234
TCPスタック迄はとりあえず弄るつもりは無いです。
HDLで実現できれば面白いですね。制限付きのNTPサーバーなんかは有るみたいで、触発はされたのですが実力がorz

239 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 08:36:55 ]
スレ違いのWEBサーバの話題終了ー。

以降通常運営でお送りいたします。

240 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 12:01:14 ]
nasmのEQUと%defineって何が違うの?



241 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 12:53:05 ]
>>241
一度2進数の掛け算を筆算で書いてみな

243 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん [2006/07/02(日) 11:15:33 ]
質問なのですが

C言語の
for(t=1;t<9;t++)
をアセンブラで書くとどうなるのでしょうか?

245 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 11:53:02 ]
>>244
mov eax,1
L1:
cmp eax,8
jg L2
inc eax
jmp L1
L2:


246 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 12:10:27 ]
xor ax,ax
mov cx,8
a:
inc ax
loop a


247 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん [2006/07/02(日) 12:49:08 ]
>>245さん
ありがとうございます

eaxというのは変数と解釈して良いのでしょうか?

あと各命令は

eaxを1とおく
<L1>
8と比較してeaxが以上ならば
<L2>へ飛ぶ
eaxが小さければ
<L1>を実行する
<L2>

というかんじでしょうか

249 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 13:08:25 ]
jgは「以上」じゃなくて「より大きい」だよ。

250 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 13:11:10 ]
> eaxというのは変数と解釈して良いのでしょうか?

おーい。

だいたい、「アセンブラで書け」というなら、プロセッサ書けよ。



251 名前:デフォルトの名無しさん [2006/07/02(日) 13:14:22 ]
H8/3664 です

252 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 13:15:59 ]
>>247
× XOR GR7,GR7
○ LAD GR7,1
だな。

253 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 13:54:03 ]
>>251
組み込みCPU関係は電気・電子板で聞いたほうがいいかも。

254 名前:デフォルトの名無しさん [2006/07/02(日) 14:15:00 ]
ありがとうございました

255 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 03:47:29 ]

>>244-249

なんでCPU指定されてないのに会話が続いてたんだろう


256 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 05:03:24 ]
なんでもいいからアセンブリ書きたい気分だったんだろ

257 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 06:11:59 ]
CPUの指定がない場合は回答側が好きなCPUを選べます。

258 名前:デフォルトの名無しさん [2006/07/03(月) 22:49:18 ]
NASM MASM TASM
どれを使ってますか

259 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:50:43 ]
GAS 一択。

260 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:55:03 ]
TASM。



261 名前:デフォルトの名無しさん [2006/07/03(月) 22:56:42 ]
GASでCOMを作成できますか


262 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:59:01 ]
NASM MASM LASM GAS

263 名前:デフォルトの名無しさん [2006/07/04(火) 00:19:44 ]
YASM

264 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 02:21:01 ]
>>263
休むな。

265 名前:デフォルトの名無しさん [2006/07/04(火) 03:16:08 ]
NASMを使っているけど、コンパイルするまでの手間がだるい。
中間ファイル作成→ALinkでコンパイル
この手間を無くしたい。
MASMって使用者が多いと思うけど、上記項目を一括して出来るの?
出来るなら乗り換えようかな。

266 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 03:48:31 ]
>>265
batファイルを作ればいいような。

267 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 07:18:52 ]
近頃の若いもんはmakeもしらんのか

268 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 08:39:59 ]
統合環境に組み入れられるだろ。

つーか make でいいよな?

269 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 09:39:11 ]
DOSの頃はMASMやTASMを愛用してたけど、
Win環境に移ってからこっちインラインアセンブラしか書かなくなったなぁ。

270 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:41:38 ]
makeはいちいちMakefileを書くのが面倒だろう
なのでbat

・・・フルアセンブリ・1ファイル完結の話だよな?
そうじゃないなら俺もMakefile書くが



271 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 17:40:39 ]
アセでそんなにでかいプロジェクトなんてやらないし
どうせ全ビルドでも一瞬で終わるんだ
数行書くごとに全ビルドでもまったく苦にならんw

272 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 19:57:12 ]
nasm.exe(-f win32)で作成したobjはld.exeでもリンクできるなぁ‥‥
めどいならgccでリンク。

それはそうと、nasmのセクション宣言で共有属性をつけることは出来ない?
とりあえずFMOで共有メモリを実現している。

gasなら
.section .sdata,"rws"
って書けば共有属性が付くけど。

273 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 01:32:32 ]
>>273
Displacementは、普通±を考慮すると思うのだが。
8bitのDisplacementだと、bit7が1だと「−」になるとか…。
SHは触ったことが無いので間違っていたらゴメン。

275 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 02:33:04 ]
@は即値じゃなくて、間接アドレッシングじゃないのか?


276 名前:デフォルトの名無しさん mailto:sage [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 ファミリ」>「ドキュメント」で
日本語のソフトウェアマニュアルにたどり着けるから、それ読むといいよ。

277 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 04:11:21 ]
誰もドキュンの意見は聞いてません
帰れ

278 名前:デフォルトの名無しさん [2006/07/06(木) 11:37:38 ]
add, sub, and, or, lw, sw, beq, bne, j,
addi, andi, ori, sll, srl, sra
これだけの命令で16or32ビット同士の数字の掛け算のプログラムを作れますか?

279 名前:278 [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:19:20 ]
ふと思ったが、何でもできる最小限の命令セットってどのくらいだろう。
メモリのリードライト、条件ジャンプ、あと加算?
そういやBrainFuckが何でもできるんだったな。



281 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:33:54 ]
チューリングマシンとか、RAM とかの話になると思うけど、
多分
定数
1 加算
0 判定
間接参照
程度で大丈夫じゃないかな?

282 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:45:22 ]
分岐はいるだろう






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<211KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef