0

私はAssemblyに非常に慣れていないので、最初は簡単だと思っていたことに行き詰まっています。一方が他方よりも小さい 2 つの値を入力し、その間のすべての数値を出力する必要があります。たとえば、1 と 4 の場合、出力: 1 2 3 4

これで、数字を入力でき、最初の 2 桁を出力できましたが、手動でしかできませんでした。ループの使い方と、どのような条件を見ればよいのかわかりません。2 つの値を比較し、最初の値を 2 番目の値と等しくなるまでインクリメントする必要があると確信していますが、それがどのように行われるかはわかりません。

これは私のコードです:

lequal:
# output first number
movl valore, %eax
addl $-48,%eax
call itoa 

inc %eax #increment value of valore?
loop lequal
jmp end

私はおそらく推測しています:

movl valore, %eax
addl $-48,%eax
movl valore2,%ebx
addl $-48,%ebx
cmp %eax, %ebx

最初の整数の値のインクリメントをいつ停止するかを知るために、両方の値を比較する必要がありますか?

ループを使用したため、最初の整数のみが無限に出力され、インクリメントは何らかの理由で単に見落とされます。

とにかく、提供された助けに感謝します。前もって感謝します。

4

0 に答える 0