-PR-
解決
済み

アセンブラの問題です。(テーブル)

  • すぐに回答を!
  • 質問No.95113
  • 閲覧数140
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 85% (6/7)

    mov cx、4
    xor bx,bx
countb:mov di,mask
    and di,ax
    add bx,[nbit+bi]
    shr ax,4
    loop countb
    
mask: db 0x00,0x01,0x01,0x02,0x01,0x02,0x02,0x03・・・0x04

というプログラムがありました。これは1ワード内にonとなっているビット数を求める問題らしいのですが、テーブルという物を使っているようです。
このテーブルという物がよくわかりません。さらにこのプログラムではmov di maskで何をやっているのだか。さらにその後のandやaddも何をしているのかよくわかりません。さらに、この問題とは関係がないのですが、アドレスベクターテーブルという物もよくわかりません。これはswitch文の説明の後にあったのですけど。
どうか御教授ください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル12

ベストアンサー率 31% (161/506)

答えは、n=0なら0bit、n=1=1bit、
2=1bit, 3=2bit, 4=1bit, 5=2bit, 6=2bit, 7=3bitですから、
maskと名付けられたテーブルに答えを用意しておいて、
それを参照するというプログラムです。
それだけだと、テーブルサイズが65536バイトになるため、
4分割してテーブルサイズを16バイトにしたのかな。
プログラムは微妙に間違っているし、
テーブルを省略してあったりするので確信はないです。
お礼コメント
akirasuzu

お礼率 85% (6/7)

ありがとうございました。この先生は間違いの多い先生なので、また例によって、間違った物と思われます。この前アセンブラのテストがあって、テーブルを使う問題が出ましたが、なんとか乗り切りました。
投稿日時 - 2001-07-01 21:44:30
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 31% (161/506)

プログラムに間違いがあるような気がします。 目を皿のようにして、 確認してから質問していただけませんか。 課題か何かですか?
プログラムに間違いがあるような気がします。
目を皿のようにして、
確認してから質問していただけませんか。
課題か何かですか?


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ