彙編中,進位制轉換時,為什麼輸入的時候要減去30H或37h,而輸出的時候要加30H或37h?這些規律到底是什麼

2021-04-08 23:56:45 字數 1640 閱讀 7176

1樓:小熊維尼

輸入、輸出都是ascii值,而記憶體中存放和運算的數都是十六進位制數。

比如輸入7,記憶體中實際存放的是37h;如果ax中存放7,直接輸出的話就是7h對應的ascii值。

但如果是mov ax,7 此時ax中存放的是37h(系統直接把十進位制數轉換成十六進位制數了)

如果是mov ax,7h 此時ax中存放的是7h

2樓:匿名使用者

30h是十進位制0對應的ascii碼

3樓:匿名使用者

@sina.com;

求解,組合語言程式設計中進位制轉換時為什麼減去30h

4樓:來賓你好闖天涯

輸入、輸出都是ascii值,而記憶體中

存放和運算的數都是十六進位制數。

比如輸入7,記憶體中版實權際存放的是37h;如果ax中存放7,直接輸出的話就是7h對應的ascii值。

但如果是mov ax,7 此時ax中存放的是37h(系統直接把十進位制數轉換成十六進位制數了)

如果是mov ax,7h 此時ax中存放的是7h網上查詢的。

我記得anscii的48代表數字0,65代表大學字母a,97代表小寫字母a.

7對應的ascii碼值是55,對應的十六進位制是37,0對應的ascii碼是48,對應的十六進位制是30.

我就豁然開朗了,一比較就發現了規律。

5樓:匿名使用者

減30h,意思是將字元型轉換為數字比如1,字元型是31h,減去30h就為1.

彙編二進位制轉十六進位制為什麼要加07h

6樓:匿名使用者

這是十六進位制數轉成顯示時使用

的ascii碼時的處理中的一個問題。

十六進位制數使用0~f共16個字元表示。

我們知道,「0」這個字元的ascii碼值是30h,「1」這個字元的ascii碼值是31h,…… ,「9」這個字元的ascii碼值是39h。當某一位十六進位制的數的值在0~9範圍內的時候,將這個數的「值」轉成它顯示的「字」,即轉成ascii碼,只需要加30h即可。

比如,一個位元組儲存的數為05h,加上30h後變成35h,就是「5」這個字元了。

十六進位制數所用的字元中除了「0」 ~ 「9」這幾個數字字元外,還有「a」 ~「f」這幾個字母。字母轉換時的處理要求與數字不一樣。

當一個位元組儲存的數為0ah的時候,要轉成字母「a」,需要加上37h,才能得到「a」的ascii碼值 41h。

同樣的,0bh要轉成「b」(42h),也要加上37h。

也就是說,0-9的值轉成對應的數字字元,要加30h。a-f的值轉成對應的字母,加了30h還不夠,還需要再加上一個 7 ,結果才對。

所以,對一個00h ~0fh之間的數,要用十六進位制格式顯示,就這麼處理:

1. 不管它需要用數字表示還是字母表示,先加上30h再說。

2. 加過30h以後,檢查它是不是「0」 ~ 「9」之間,是的話就只需要用數字表示,可以直接送去顯示了。

3. 若加過30h以後的結果在「9」(39h)以上,說明是字母。它們的值是在3ah ~3fh範圍內。

對它們,再加上一個 7 ,就可以變成 41h("a") ~ 46h("f"),這樣送去顯示也就對了。

編輯中輸入數字編號時用到括弧,為什麼括弧的格式有時不一樣,怎麼辦

你是不是輸入括弧時有時是中文,有時候是英文,和 下次輸入的時候注意切換。word有三種方式輸入括弧數字 在中文輸入法中輸入括號 1 2 3 在英文輸入法中輸入括號 1 2 3 在特殊字元中輸入括號數字 雖然表達意思一樣,但格式不太相同,放在一起顯得混亂,所以儘量要統一。如果是出現1 2混用的情況,只...

為什麼我在EXCEL中輸入CAFE時,E上面會出現一撇。緊急緊急!!跪求正解

方法1 在其它程式中例如 在記事本中輸入cafe 然後複製貼上進excel就好 方法2 在 選項 中關掉 自動更正 鍵入時自動替換 這個是自動更正,因為這個詞不是英文字身的詞,正確的寫法e上面就是有一撇的。在單元格前輸一個小 就可以了 為什麼我在excel中輸入cafe時,e上面會出現一撇。緊急緊急...

為什麼用五筆輸入法輸入這幾個字時這樣輸入

五筆字型基本輸入法則 鍵名漢字 有25個,輸入方法是把鍵名所在的鍵連擊四下。要注意的是,由於每個漢字最多輸入四個編碼,輸入了四個相同字母后,就不要再按空格鍵或回車鍵了。成字字根漢字 除漢字以外本身又是字根的漢字,其輸入方法為擊字根所在鍵一下,再擊該字根的第 一 二,末筆單筆劃。即鍵名 報戶口 首筆 ...