2014-04-13 94 views
0

我得到一個數字字符串的輸入,我想逐字符讀取它以便轉換整數中的每個數字。程序集x86按字符讀取一個字符串

例輸入:54321

我需要將其轉換爲數字值54321進行一些操作。

這是我用來讀取

STRING      DB  20,0 
          RESB 20 

    ;;;;;;;;; Code here ;;;;;;;;; 

    MOV      DX,STRING 
    MOV      AH,0Ah 
    INT          21h 

至少如果你能告訴我該邏輯或8086做有用的函數的功能。 謝謝

回答

1

一個字符串只是一個數組。因此,第一個字母是例如在「edx」中的第二個字母在「edx + 1」中的第三個字母在「edx + 2」等等。

您可以使用此計算將字符轉換回整數:

'chardigit' - 48 = integerdigit

因爲ASCII '0' 爲48下面是一個例子,這是可能的:

"123" 

'1' (or 49 in dec) - 48 = 1 
'2' (or 50 in dec) - 48 = 2 
'3' (or 51 in dec) - 48 = 3 

我希望這是可理解的。

+0

使用此dos調用(INT 21H,21H未在帖子中顯示),STRING + 1將包含輸入的字符數(不包括返回鍵),輸入的數據將從STRING + 2開始。 – rcgldr

+0

是的,我編輯了21h :)所以在這種情況下,我必須檢查我的號碼從'STRING + 2'直到'STRING + 22',因爲'STRING'大小是20?如果我的電話號碼是'STRING + 2'中的'1234',我會找到1或4? – r4id4

+0

這些十進制值正在使用基數十數字系統。 –