Daily Archives: 2012年7月11日

[gcc]if文と3項演算子では,出力されるコードが異なる

2012年7月11日 (カテゴリ: C:)

gccのアセンブラ出力を見ていて気になったのでメモ。 C言語ではif文を使わなくても、3項演算子を使用して条件分岐を “( a > b ) ? a : b”のような感じで書く事が出来ますが、両者の書き方で生成されるコードが異なるようでした。 3項演算子を使用した場合(test01.c) #include <stdio.h>   int sum( int a, int b );   int main() { int a = 10; int b = 10; int result; result = &…


続きを読む

ラッチとフリップフロップの違い

2012年7月11日 (カテゴリ: 論理回路基礎:)

論理回路では、入力信号の状態を保持したい場合がある。 このような場合の最もプリミティブな機構として、ラッチやフリップフロップがある。 RSラッチ 1ビットの状態保持を行う事ができる。 入力状態が直ぐに出力へ反映される。 RとSを同時にアサート状態にすることは出来ない。 Dラッチ RSラッチと基本的に同じで1ビットの状態保持を行う事ができるが、ゲートピンがEnableの時のみ出力が変更される。 Dフリップフロップ CK信号が立ち上がりのタイミングの入力を保持する。 同期式回路を組むときに使う。 現実は電子的な遅延があるので、実際はCK信号のちょっと前(セットアップ時間)から入力を安定させておき、…


続きを読む