ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:seven_star アセンブリ言語について
困り度:
  • 困っています
今の時代にアセンブリ言語について質問することをを許しください。
今大学生ですが、どうしてもアセンブリを理解して基礎を固めたいのです。

質問は下に示すページです。
http://wisdom.sakura.ne.jp/programming/asm/assembly22.html

ここの最初のdos画面について。
レジスタを使わずに、メモリ間転送を連続したストリング操作で行っていますが、この例だと最初に \"Kitty on your lap\" という文字をオフセット200から設定しています。 そして、この文字列をオフセット300にコピーするようプログラムを組んでいますが、レジスタCX(カウントレジスタ)に11を設定しています。

CXに設定された回数コピーを行うため、このプログラムでは11回のストリング操作によるコピーを行っていると理解していますが、ここで疑問なのは\"Kitty on your lap\"がどう考えても11文字ではありません。

そして、疑問が消えないまま実行してみると正確に動作しました。(コピーされました。)

なぜ11を設定し、正確に動作するのかを教えていただけると幸いです。よろしくお願いいたします。
質問投稿日時:08/04/10 01:53
質問番号:3936594
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:tamasen こんにちは。

このからくりは、MOV CX , 11の11が16進数であるということです。
これを10進数にすれば17であり、Kitty on your lap文字数分
となります。
種類:回答
どんな人:専門家
自信:自信あり
回答日時:08/04/10 05:02
回答番号:No.2
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答10pt

回答者:gungnir7 11は16進数で10進数に直すと17です。
種類:回答
どんな人:経験者
自信:参考意見
回答日時:08/04/10 02:05
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示良回答のみ表示