第一章 組合語言基礎知識
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)儲存器容量
埠io埠是介面電路中暫存器的編號
採用十六進製制數來表達埠
intel 8086支援64k個8位埠
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
段暫存器
ds:資料段
es:附加段
計算機中資訊的單位
二進位制位bit:一位二進位制數0/1
位元組byte:8個二進位制位d7-d0
字word:16位,2個位元組,d15-d0
雙字dword:32位,4個位元組,d31-d0
乙個儲存單元除了具備唯一的實體地址外還有多個邏輯位址。
利用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間接定址
mov ax,[si]
ax相對定址
有效位址=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
組合語言程式設計 01 獲取cpuid
今天開始學習x86彙編 硬平台 intel,軟平台 linux 組合語言程式設計 原始碼 root ubuntu core home cpuid vim cpuid.s 1 cpuid.s sample program to extract the processor vendor id 2 3 s...
組合語言 學習筆記2 彙編程式設計環境
3.段暫存器 4.指令指標暫存器 二 實位址下的儲存器定址方式 三 堆疊儲存技術 四 程式彙編連線與除錯方法 在微機原理與接 術課程中,我學的是16位的彙編,現在總結一下32位的彙編。不過這兩者是一脈相承的,因此會有很多相同的地方。算術邏輯運算後的結果特徵 16位 附加段暫存器es fs和gs 存放...
組合語言程式設計
1.彙編語句的三種基本型別 2.標號相關 3.變數相關 4.運算元定址方式 buffer dw 500 x 17 rept 500 這是乙個重複巨集,以下重複彙編500遍 x x 979 mod 65535 這句話我也不懂 dw x endm 巨集在這裡結束transto10 proc near 函...