アセンブラを勉強しよう
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
300:デフォルトの名無しさん 08/02/06 14:24:59 あくまでも加算は4ビット単位にするんじゃないの? 301:デフォルトの名無しさん 08/02/06 14:32:36 9 + 1 = 10 C + 4 = 10 であって 40 ではない罠 302:デフォルトの名無しさん 08/02/06 14:33:13 40じゃない43だったorz 303:デフォルトの名無しさん 08/02/06 19:10:38 最近の CPU の BCD 命令って 十分な速さを与えてもらえてるのか? 304:デフォルトの名無しさん 08/02/06 20:00:05 DAA/DAS命令を持っているならね。 ただ、最近はC言語で書くのが当然のようになってるから、ハブられ易いね 305:デフォルトの名無しさん 08/02/06 20:15:20 IA-32 Intel (R) Architecture Optimization で DAA/DAS 検索したら出てこねえw 306:デフォルトの名無しさん 08/02/06 21:08:12 verilogベースで3-offset-BCDを書くと module alu8bit( a, b, bcd, x, co ) ; input [7:0] a ; input [7:0] b ; input bcd ; // 0:bin 1:bcd output [7:0] x ; output co ; wire [4:0] t_lsb= {1'b0,a[3:0]}+{1'b0,b[3:0]} ; wire [4:0] t_msb= {1'b0,a[7:4]}+{1'b0,b[7:4]}+{4'h0,t_lsb[4]} ; assign co= t_msb[4] ; wire [3:0] t_lsb0= ,a[3:0]+b[3:0]-4'h3 ; wire [3:0] t_msb0= a[7:4]+,b[7:4]+{3'h0,t_lsb[4]}-4'h3 ; assign x[3:0]= ({t_lsb[4],bcd}!=2'b01) ? t_lsb0[3:0] : t_lsb[3:0] ; assign x[7:4]= ({t_msb[4],bcd}!=2'b01) ? t_msb0[3:0] : t_msb[3:0] ; endmodule て雰囲気になる。 多bit-ALUの数とワーストディレイに関する考え方でそれなりに優位はあったが、 最近の力任せgate数には勝てないかな? asmベースでは、x86界ではDAAが基本になるので工夫がなかなか難しい。 (細かいテクを使えば色々ありそうだが) * ビール1Lぐらい摂取して、書いているので、バグについては容赦願います。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5201日前に更新/148 KB
担当:undef