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
你在哪裏處理' - '字符?你使用「二補」嗎? – Ripi2