だから私はこの宣言を.bssに持っています
answer resb 1
答えとして、-99 から +99 までの範囲の 2 桁の整数の合計の結果を保存します。+99と+99を足してみると、答えがマイナスになってしまいます。-128 から 127 の範囲内の任意の回答が正しく入力されます。このオーバーフロー/アンダーフローの問題を解決するにはどうすればよいですか?
私はアセンブリコーディングを始めたばかりなので、この問題を理解するのを手伝ってください。resb を resw として作成しようとしましたが、コードを実行すると「浮動小数点エラー」が発生したため、resb の使用に戻りました。
答えを印刷する方法
;ansh,anso,anst are all declared as resb 1 in .bss
print_answer: ;tens1 holds the answer always
;getting each digit of tens2 to be converted as char
mov al,[answer]
mov bl,100
div bl
mov [ansh],al ; holds tens digit of average
mov [anst],ah
mov ah,0
mov al,[anst]
mov bl,10
div bl
mov [anst],al
mov [anso],ah
add byte[ansh],30h
add byte[anst],30h
add byte[anso],30h
;printing routine follows here