[アセンブリ学習ノート][第14章ポート]

1932 ワード

第十四章ポート
CPUに接続されているチップは、各種のメモリのほかに、3種類のチップがあります.
  • 各種インタフェースカード(NIC、グラフィックスカード)上のインタフェースチップは、インタフェースカードを制御して動作する.
  • マザーボードのインタフェースチップで、CPUはそれらを通じて一部の周辺機器にアクセスします.
  • 他のチップは、関連するシステム情報を記憶したり、関連する入出力処理を行ったりするために使用される.

  • CPUは3箇所のデータを直接読み書きすることができます
  • CPU内部のレジスタ
  • メモリユニット
  • ポート
  • 14.1ポートの読み書き
  • CPUは最大64 KBの異なるポートを位置決めすることができる.
  • ポートの読み書きはinoutの2つのコマンド
  • しか使用できません.
  • アクセスポート
    in al,60h // 60h         
    
  • は、inおよびout命令において、alまたはaxのみでポートを読み取りまたは書き込み可能である.
  • 256~65535ポートを読み書きする場合、ポート番号はdx
    mov dx,3f8h
    in al,dx
    out dx,al
    
  • に置く.
    14.2 CMOS RAMチップ
    PC機には、一般にCMOSと略称されるCMOS RAMチップがあり、このチップには以下のような特徴がある.
  • は、リアルタイムクロックと、128個のメモリセルを有するRAMメモリ
  • とを含む.
  • このチップはバッテリーで電力を供給するので、電源を切った後も内部のリアルタイム時計は動作し、RAM情報は失われない.
  • ,128バイトのRAMの中で、内部のリアルタイム時計は0~0 dhユニットの保存時間情報を占有し、残りの大部分のユニットはシステム構成情報を保存するために使用され、システム起動時にBIOSプログラムが読み取るために、BIOSも関連するプログラムを提供し、起動時にCMOS RAMのシステム情報を配置させる.
  • チップは、2つのポート、ポートアドレス70h、および71hから構成される.CPUは、この2つのポートを介してCMOS RAM
  • を読み書きする.
  • 70hはアドレスポートであり、アクセスするCMOS RAMユニットのアドレスを格納する.71hはデータポートであり、特定のCMOS RAMユニットから読み出されたデータを格納したり、書き込むデータを格納したりする.このように、CPUは、CMOS RAMの読み書きを2段階に分けて行う、例えば、CMOS RAMの2号ユニット
    -  2      70h
    -    71h  2      
    
  • を読み取る.
    14.3 shlとshr指令
  • shl al,1
  • 移動ビット数が1より大きい場合は、cl
  • に移動ビット数を置く必要がある.
    14.4 CMOS ROMに記憶されている時間情報
    CMOS ROMには、現在の時間が格納されており、この6つの情報長はいずれも1バイトである.
    格納ユニットは
  • 秒:0
  • 点:2
  • 時:4
  • 日:7
  • 月:8
  • 年:9
  • これらのデータはBCDコードで格納されています
    問:月情報を画面に表示する方法
  • CMOS RAMの8番ユニットから現在月のBCDコード
    mov al,8
    out 70h,al
    in al 71h
    
  • を読み出す.
  • BCDコードが示す月は10進数で画面に表示されます
  • BCD符号値+30 h=10進数対応ASCLL符号低