質問 |
||
| 質問者: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 |
|
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |