1. 程式人生 > >彙編的一些基礎知識。

彙編的一些基礎知識。

剛學彙編的菜雞,總結一下。

底層中數字的儲存方式和運算
假設為8位cpu
1.無符號數
直接將正數轉化為二進位制數。
2.符號加絕對值數。(原碼)
先將整數轉化為二進位制數。不足7位在左邊補0,如果是正數在最左邊加0,是負數在最左邊加1,。
3.反碼。
將除符號位以外的數取反。
4.取補碼運算。
所有的數取反,再加上1(正常運算)。
5.以二進位制補碼形式儲存整數。
如果是正數,其原碼即是補碼。
如果是負數,除符號位以外的數取反,再加上一。
將二進位制補碼形式儲存的整數轉化為原碼。
如果最左位是0,即是本身。
如果最左位是1,除符號位以外的數取反,再加1.
6.二進位制補碼中的加減法。


1.如果是加法,兩個補碼直接相加(5中的以二進位制補碼形式儲存整數的補碼。) 加號兩邊是 負數 ,(也是用二進位制補碼形式儲存的整數)。
2.如果是減法,將減號右邊的 補碼 再進行取補碼運算。然後將減號改為加號,然後相加。

下面是讀王爽的《組合語言》總結的一些。
1.組合語言的組成:
彙編指令(機器碼助記符,有對應的機器碼),偽指令(沒有對應的機器碼),其他符號(沒有對應的機器碼)。
2.指令和資料:(在儲存器中存放)
兩者是應用上的概念。但是在記憶體或者磁碟上,指令和資料沒有任何區別,都是二進位制資訊。CPU在工作時把有的資訊看作指令,有的看作資料。同樣的二進位制資訊,可以有不同的意義。
運算元有三種:暫存器運算元,儲存器運算元,立即數
暫存器運算元即是暫存器裡的數,儲存器運算元是記憶體中的數,立即數就是類似常數 例如 mov ax,1 這個1 就是立即數。
3.儲存單元:


一個儲存單元有8個位。8個位=1個位元組,即1個儲存單元是1個位元組。
1個字=2個位元組。 儲存單元從0 順序編號。 從上往下 依次增大。上面是低位,下面是高位。
4.CPU對儲存器的讀寫:
cpu想要進行資料的讀寫,必須和外部器件(晶片)進行下面的資料交換:1.儲存單元的地址(地址資訊)2.器件的選擇,都或者寫的命令.(控制資訊) 3.讀或者寫的資料(資料資訊)
cpu先通過地址線將地址資訊發出,再通過控制線發出記憶體讀寫命令,選中儲存器晶片,通過資料線傳輸資料.
5.地址匯流排,資料匯流排,控制匯流排。
地址匯流排:地址匯流排的個數為n,則表示可以傳送n位二進位制資料,則可以對2的n次方 個儲存單元定址。
資料匯流排:寬度n,則可以一次傳輸 n位二進位制資料
控制匯流排:決定對其他器件的控制能力。
一個多少位的cpu,是由地址匯流排的位數決定的。