投稿

ラベル(NAND回路)が付いた投稿を表示しています

NAND回路をラダー言語とアッセンブリ言語で書く

 以下に、**NAND回路**をラダー言語(ラダー図)とアセンブリ言語(x86)で記述した例を説明します。NANDはANDの否定であり、デジタル回路の基本ゲートの1つです。 --- ### 1. ラダー言語(ラダー図)でのNAND回路 #### 方法1: AND + NOTの組み合わせ ``` |-----| |-----|-------|/|-------( )--| |  A  | |  B  |  NOT  |     OUT     | ``` **動作**:   1. `A` AND `B` を計算   2. その結果をNOT(否定)して `OUT` に出力 #### 方法2: 接点の否定利用(PLC機種依存) ``` |/|---| |/|---( )--| | A |   | B |  OUT  | ``` **動作**:   - `A` と `B` が**両方ONでない場合**に `OUT` がON(NANDの定義通り) --- ### 2. x86アセンブリ言語でのNAND回路 #### 基本実装(メモリ変数使用) ```assembly section .data     A   db  1       ; 入力A (1=ON, 0=OFF)     B   db  1       ; 入力B (1=ON, 0=OFF)     OUT db  0       ; 出力OUT section .text     global _start _start:     ; NAND演算: NOT (A AND B)     mov  al, [A]     and  al, [B]...