2017-12-23 34 views
-2

私は、次のコードを持っていると私は59 mov dl,59ASSEMBLYの59は何を表していますか?

printSeparator macro 
mov ah,02h 
mov dl,59 
int 21h 
endm 

に何を表すのか分からない私は、配列の要素の合計を計算しなければならないが、キーボードから読み取ると、私は上記を必要とするソリューションを見ましたコードスニペット

+0

「dl」を登録するには、印刷する文字のASCIIをロードする必要があります。この場合はセミコロン ';'を表示します。 –

+2

アセンブリ内の「59」は値「59」を表します。そのまわりのコードはサービス "DLの表示文字"を要求するDOSサービス 'int 21h 'を呼び出しているので、' 59'はASCIIエンコード文字として使用されます。 ASCIIエンコーディングテーブルをチェックすると、グリフ '; ''をエンコードするために' 59'の値が使われます。 – Ped7g

+0

ありがとうございます! :) –

答えて

3

マクロは、文字;をSTDOUTに印刷します。

int 21hは、AHレジスタに基づいて特定の機能を持つDOS割り込みを呼び出します。この場合、DL〜STDOUTの印刷文字である2に設定されます。

あなたDLレジスタ;文字(http://www.asciitable.com/参照)ASCIIに対応する値59が取り込まれ(例えばhttp://spike.scu.edu.au/~barry/interrupts.html参照)。 ASCIIは数値(コンピュータが理解できる)から文字(人間が理解できる)までのマッピングです。これは文字エンコーディングとも呼ばれます。

+0

リンクありがとうございます:) –

関連する問題