私はアセンブリプログラムの作成の最後にいますが、問題の領域は比較命令です。動作していないようで、何も動作していないように見えるため、読み込まれたすべての入力が拒否に送信されています
コード:
loop_top:
input string,40 ; read ASCII characters
atod string ; convert to integer
mov number1, eax ; store in memory
jz done
cmp number1, 50 ; number1>50?
jg rejected
cmp number1, -50 ; number1<-50?
jl rejected
rejected:
dtoa number1ch,eax ; convert to ASCII characters
output number1ch ; print value and message to screen
output reject
jmp loop_top
mov eax, number1 ; store in register
cmp eax,0 ; eax > 0?
jnl isPositive
問題領域 ? :
cmp number1, 50 ; number1>50?
jg rejected
cmp number1, -50 ; number1<-50?
jl rejected
rejected:
dtoa number1ch,eax ; convert to ASCII characters
output number1ch ; print value and message to screen
output reject
jmp loop_top
したがって、任意の数値 ex: 4、50、51、-3、-50、-51 .. はすべて reject に送信されます。誰かが私に理由を説明できますか? ありがとう!