1. 程式人生 > >【組合語言】——第二章課後總結

【組合語言】——第二章課後總結

第二章最主要的內容如下:
1、通用暫存器:AX,BX,CX,DX;
2、彙編指令:mov add等指令;
3、8086CPU給出實體地址的方法(用兩個16位地址合成的方法形成一個20位的實體地址);
4、CS(段暫存器) IP(指標暫存器 );
5、修改CS,IP的指令;

一.通用暫存器

1.  8086CPU所有的暫存器都是16位的,可以存放兩個位元組。

2.  AX、BX、CX、DX,4個暫存器通常用來存放一般性資料,被稱為通用暫存器。

3.  一個16位的暫存器可以儲存一個16位的資料。    思考:一個16位的暫存器所能儲存的資料最大值為多少?

4.  8086CPU的AX、BX、CX、DX(16位暫存器)每個都可以分為兩個可獨立使用的8位暫存器來用:

    AX可分為AH、AL;

    BX可分為BH、BL;

    CX可分為CH、CL;

    DX可分為DH、DL;

二.幾個常用的彙編指令

mov 和add

  mov a, b 指把a=b;a通常是暫存器,如:mov ax,18指將18送入暫存器ax

  add  a, b指a=a+b;   a通常是暫存器,如:add ax,18指將暫存器ax的數值加上18

注意:

  由於通用暫存器只能儲存16位的資料,所以如果將一個大於16位的資料放入暫存器就會損失最高位;

  使用add,mov指令時,只能對相同型別的暫存器操作,即只能ax,bx,cx,dx之間操作不能,ax,ah等之間操作。

三.實體地址的儲存方式

實體地址=段地址x16+偏移地址

實體地址=段地址*16+偏移地址的本質含義:CPU在訪問記憶體時,用一個基礎地址(段地址*16)和一個相對於基礎地址的偏移地址相加,給出記憶體單元的實體地址。

段地址的概念:段並不是指記憶體是分段的,段的劃分來自於CPU,是因為8086CPU用“實體地址=段地址*16+偏移地址”的方式給出記憶體單元的實體地址,使得我們可以用分段的方式來管理記憶體。以後,在程式設計是可以根據需要,將若干地址連續的記憶體單元看作一個段,用段地址*16定位段的起始地址(基礎地址),用偏移地址定位段中的記憶體單元。一個段的長度最大為64KB。

四.CS和IP

1.CS和IP是8086CPU中最關鍵的暫存器。

2.CS為程式碼段暫存器,用於存放程式碼段的段地址。

3.IP為指令指標暫存器,用於存放CPU將要讀取的指令在程式碼段中的偏移地址。

4.CS:IP對應的實體地址存放是CPU將要讀取的指令。

5.8086機中,CPU將CS:IP指向內容當作指令執。

五.修改CS,IP的指令

jmp 段地址:偏移地址