組合語言筆記<Week 1> — 補數

Sharon Peng
3 min readSep 17, 2019

--

新的學期要來上新東西了~這次決定要同步老師上課內容,把學習到的整理下來,再放到這邊,那就請各位跟著我一起學習組合語言吧!

一開始呢,我們要先把之前學過的東西複習一下。

本章目標:

・理解補數之間轉換的關係(負轉正、負的二進位轉回原本的十進位)

・什麼情況下會溢位(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補數表示)做運算時,若相加超出其所能表達的最大範圍時,稱為「溢位」。

判斷方式:

  1. 兩數以二進制相加,取其最高兩位元的進位做XOR,若運算結果為0表示無溢位為1則產生溢位
  2. 判斷兩數的運算符號關係

不會產生溢位:

正+負、負+正

正+正=正、負+負=負

同號數運算溢位:

正+正=負、負+負=正

以下為範例:

希望各位看到這邊都有了解我想要表達的意思,那我們就下週再見囉~

--

--

Sharon Peng
Sharon Peng

Written by Sharon Peng

一起精進程式能力吧!!

Responses (1)