2

こんにちは誰かがこれで私を助けることができますか?アセンブリレベルのプログラミングは初めてです。

私のalpコードでは、次のコードでバイトを定義しました。

count db 0

プログラムの別の部分では、値をahレジスタにフェッチし、次のように1を追加しようとしています。

mov ah,count
add ah,1

さて、カウントによって認識されたメモリ位置をahレジスタの新しい増分値で更新して、ループやその他の目的のカウンタとして使用できるようにするにはどうすればよいですか?

4

1 に答える 1

5

mov ah, count動作しません。Nasm 構文では、 のアドレスをcountah... に移動しようとしますが、収まりません。「[コンテンツ]」が欲しい。

mov ah, [count]
inc ah
mov [count], ah

あなたもできる...

inc byte [count]
; and perhaps...
cmp byte [count], MAXCOUNT
jb looptop

(もちろん withMAXCOUNTおよびlooptopdefined) メモリよりもレジスタを使用する方が高速ですが、どちらも実行できます。マットが提案するように、ためらわずに「試してみてください」!

于 2012-10-29T07:12:29.003 に答える