私はこの行を変更すべきだと思う:ループを終了するために、そして私のプログラムは、512ループを終了するにはどうすればよいですか?
%include "io.inc"
section .data
nr: db 0x88, 0x1
section .text
global CMAIN
CMAIN:
for:
inc byte [nr]
jnc for
inc byte [nr + 1]
PRINT_UDEC 2, nr
xor eax, eax
ret
[INC](http://www.felixcloutier.com/x86/INC.html)命令の命令セットリファレンスを見ると、INCはキャリーフラグを変更してください。命令セット参照は_ ** CFフラグは影響を受けません**。結果に応じて、OF、SF、ZF、AF、PFフラグがセットされます。このため、_JNC_(ジャンプなし)を使用しているので、ループは終了しません。あなたは_JNC_の代わりに_JNZ_(ジャンプしないゼロ)をしたいでしょうか? –
キャリーフラグを1つ増やしたい場合は、 'add byte [nr]、1 'のような[_ADD_](http://www.felixcloutier.com/x86/ADD.html)命令を使用できます。 –
サイド注意。 _INC_を使用してこのコードの2つの可能な結果の1つがあります。ループが開始する前にキャリーフラグがクリアされていれば無限にループします(これはあなたが見ている可能性が高いです)。ループの前に設定された場合、649(0x200 + 0x89)を出力します –