0
私は、MASM x8086でバイトサイズのポリ派生アプリケーションを書いている途中で、負の係数を受け取ることができなければなりません。負の数値MASM入力と出力
私は、バイナリを符号付きおよび符号なしの形式で表現できることを理解しています。しかし、別の配列を避けるために、符号付き整数を受け取る方法を探しています。あるいは、変数を符号付き整数として定義する方法はありますか?
以下は私の整数入力手順です。
TEN db 10 ;;; constant
num db ? ;;; coefficient
;;; bh is the degree
get_int PROC
lea si, string ; replaces the ? in the string with the degree
add si, 13h
mov dl, bh
add dl, 30h
mov [si], dl
mov ah, 09h
lea dx, string ; prompt
int 21h
mov ah, 0Ah
lea dx, buffString ; user input
int 21h
lea si, buffString ; point to count byte
inc si
mov ch, 00h ; cx = count
mov cl, [si]
add si, cx ; si points to end of string
mov dl, 00h ; hold result(dl)
mov bl, 01h ; hold 10^x (bl)
loop1:
mov al, [si] ; prep for char ---> number conversion
cmp al, '-'
je negativeSign
sub al, 30h ; convert
mul bl ; ax = al*bl
add dl, al ; sum of results
mov al, bl ; preload for instruction
mul TEN ; TEN is variable predefined as 10
mov bl, al
jmp overNegative
negativeSign:
mov dh, 00h
mov [si], dh
overNegative:
dec si
loop loop1 ; loop instruction uses cx as index counter once zero breaks
mov num, dl
ret
get_int ENDP
; output is num
正確 'C++'これの部分はどのようなものです:あなたが何をする必要がありますどのような
は正しい署名した結果を得るために数を否定ですか? –
がタグを削除しました。 C++はありません。 – TheLiquor
' - ' charはどこで扱いますか?あなたは "2つの補数"を使用していますか? – Ripi2