私は大学のコースのプロジェクトに取り組んでいます。
まず、私はこれに対する完全な解決策を求めているのではありません。どこが間違っているのかを見つけるのに苦労しています。有効なISBN3201541974を入力すると、プログラムは「無効な」コードブロックを出力します。表示される可能性のある論理エラーに関するヒントをいただければ幸いです。また、すべてのコードを一度に見つめるよりも、デバッグするためのより良い方法があるかどうかを知りたいと思います。私は単純な印刷ステートメントとブレークポイントに依存することに慣れています。
編集:問題はここにありました
L1_top:
mov al, [esi] ; get a character
inc esi ; update source pointer
sub al, 0
add ah, al
cmp ah, 11
.......
alから0を引く理由は、alが最初はcharだからです。alから「0」を引くと、これはintまたはw/eに変換されます。'0'の代わりに誤って0を減算しました
正しい行は
sub al, '0'