組合語言筆記<Week 1> — 補數
新的學期要來上新東西了~這次決定要同步老師上課內容,把學習到的整理下來,再放到這邊,那就請各位跟著我一起學習組合語言吧!
一開始呢,我們要先把之前學過的東西複習一下。
本章目標:
・理解補數之間轉換的關係(負轉正、負的二進位轉回原本的十進位)
・什麼情況下會溢位(overflow)
首先從補數的轉換開始:
什麼是補數?
補數是為了讓電腦方便計算而發展出來的產物。所以我們用補數來代替負數,這樣比較方便我們做計算。
範例:17–5 我們換成補數的表示方法,會變成17 +(數字5的補數)
把中間原本的減號變成加號!
如何轉換?
十進制的負數轉換成二進制補數的方法:
二進制的補數系統分為1’s 補數、2's補數
首先先介紹1's補數,
步驟一:將數字轉換成二進制
步驟二:01互換
ex: -10的1's補數(用八位元二進制),先把10轉換成2進位,
是0000 1010,然後做01互換的動作。
變成1111 0101。最前面的1就是表示負數的方式。
再來換2's補數
步驟一:將數字轉換成二進制
步驟二:01互換
步驟三:加上1
ex:-10的2's補數(用八位元二進制)
步驟一:轉成二進制,0000 1010
步驟二:01互換,1111 0101
步驟三:加一,1111 0110(得到我們的二補數)
以下為減法的運算:
1's補數
2's補數
溢位的判斷:
定義:兩個有號數位元的二進位(負數以2補數表示)做運算時,若相加超出其所能表達的最大範圍時,稱為「溢位」。
判斷方式:
- 兩數以二進制相加,取其最高兩位元的進位做XOR,若運算結果為0表示無溢位,為1則產生溢位。
- 判斷兩數的運算符號關係
不會產生溢位:
正+負、負+正
正+正=正、負+負=負
同號數運算溢位:
正+正=負、負+負=正
以下為範例:
希望各位看到這邊都有了解我想要表達的意思,那我們就下週再見囉~