彙編語言程序設計學習筆記01

第一章 彙編語言基礎知識

1.1 寄存器

寄存器是CPU內部高速儲存單元,它們提供數據和地址。

16位Intel 8086/80826 CPU中的寄存器爲:

AX BX CX DX

SI DI BP SP

 

存儲器地址

存儲器地址是存儲器中存儲單元的編號

每個存儲單元存放一個字節量的數據 一個字節B(Byte)=8個二進制位b(bit)

採用十六進制數來表達地址 Intel 8086具有1兆字節(1MB)存儲器容量

存儲器地址表示爲:00000H ~ FFFFFH 其中大寫H(或小寫h)表示是十六進制數

 

端口

IO端口是接口電路中寄存器的編號

採用十六進制數來表達端口

Intel 8086支持64K個8位端口

I/O地址可以表示爲:0000H ~ FFFFH

 

1.2 數據表示

(進制轉換部分略)

BCD碼

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

 

真值:現實中真實的數值

機器數:計算機中用0和1數碼組合表達的數值

無符號數:只表達0和正整數的定點整數

有符號數:表達負整數、0和正整數的定點整數 符號位需要佔用一個位 常用機器數的最高位 0表示正數、1表示負數

定點數:固定小數點的位置表達數值的機器數

定點整數:將小數點固定在機器數的最右側表達的整數

定點小數:將小數點固定在機器數的最左側表達的小數

浮點數:小數點浮動表達的實數

 

補碼

有符號整數在計算機中默認採用補碼

最高位表示符號:正數用0,負數用1

正數補碼:直接表示數值大小(同無符號數)

負數補碼:將對應正數補碼取反加1     

[105]補碼=01101001B     

[-105]補碼=[01101001B]取反+1     =10010110B+1=10010111B

8位二進制補碼錶示的數值範圍:-128~+127

16位二進制補碼錶示的數值範圍:-2^15~+2^15-1

32位二進制補碼錶示的數值範圍:-2^31~+2^31-1

 

負數真值“取反加1”得機器數補碼

負數補碼“取反加1”得到負數真值

補碼:11100000B 真值:-([11100000]求反+1)=-(00011111+1)         =-00100000=-2^5=-32

 

 

1.3 主存空間的分配

 

總線接口單元BIU:負責讀取指令和操作數  

執行單元EU :負責指令譯碼和執行

 

 

8086寄存器

 

8086微處理器

總線接口單元BIU:負責讀取指令和操作數  

執行單元EU :負責指令譯碼和執行

數據寄存器

AX——累加器,算術邏輯運算。

BX——基址寄存器,存放儲存器地址。

CX——計數器,循環等。

DX——數據寄存器,常用來儲存雙字數據的高16位。

變址寄存器用於存儲器尋址提供地址

SI——源變址寄存器
DI——目的變址寄存器

指針寄存器用於尋址內存堆棧的數據

SP——堆棧指針寄存器,指示棧頂

BP——基址指針寄存器,指示棧底

 

標誌寄存器

 

指令指針IP

指示代碼段中指令的偏移地址,與代碼寄存器CS常用,通過CS:IP寄存器控制指令序列。

段寄存器

CS:代碼段起始地址

SS:堆棧段起始地址

DS:數據段

ES:附加段

 

計算機中信息的單位

二進制位bit:一位二進制數0/1

字節byte:8個二進制位D7-D0

字word:16位,2個字節,D15-D0

雙字Dword:32位,4個字節,D31-D0

 

一個存儲單元除了具備唯一的物理地址外還有多個邏輯地址。

物理地址:00000H~FFFFFH

 

處理器利用CS:IP取得下一條要執行的指令

利用SS:SP操作堆棧頂的數據

數據段:DS:EA

 

邏輯段的分配:

指令序列:代碼段

堆棧:堆棧段

數據默認在數據段,也有在附加段,串操作的目的區必須在附加段

沒有指明時,一般的數據訪問在DS段;使用BP訪問主存,則在SS段

CS:    ;代碼段超越,使用代碼段的數據

SS:     ;堆棧段超越,使用堆棧段的數據

DS:     ;數據段超越,使用數據段的數據

ES:     ;附加段超越,使用附加段的數據

 

立即數尋址(imm)

imm——8/16位 00~FF/0000~FFFF

寄存器尋址

MOV BX,AX

存儲器選址

直接尋址

MOV AX,[2000H]

AX<-DS:2000H

間接尋址

MOV AX,[SI]

AX<-DS:[SI]

相對尋址

有效地址=BX/BP/SI/DI+8/16位位移量

MOV AX,[DI+06H]       ;AX←DS:[DI+06H]

MOV AX,[BP+06H]     ;AX←SS:[BP+06H]

基址變址尋址

有效地址=BX/BP+SI/DI

BP默認是SS

相對基址變址尋址

有效地址=BX/BP+SI/DI+8/16

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章