彙編基礎概念

2022-05-07 10:33:12 字數 1049 閱讀 2913

一、組合語言中,為什麼si和di不能同時使用彙編 

其實你可以想一下,這兩個暫存器的意思,si源變址暫存器,di目地變址暫存器,既然是變址暫存器,那麼他們肯定是在某個位址的基礎上進行偏移變化,由此我們就得出了需要基址暫存器。 

你要是把這兩個暫存器同時使用,那你位址變化的基址都沒有,你該怎麼變化呢?你在誰的基礎上變化(也就是位址偏移)? 

對於這些彙編中的規定,其實有時並不需要書上詳細的介紹,我們都應該可以從中推導出這些規則,書上的那些介紹個人認為只是用來驗證我們的推測的。或是對我們所掌握的知識的進行檢測,用來說明我們所掌握的是對的! 

二、si,di使用的例子 

si di是8086cpu中和bx功能相近的暫存器,sidi不能夠分成兩個8位暫存器來使用. 

1、8086有20位位址匯流排,可傳送20位位址,定址能力為1m,但是8086內部為16位結構,它只能傳送16位的位址,表現出的定址能力卻只有64k,那麼8086cpu是如何用內部16位的資料轉換為20位的位址?

8086cpu採用一種在內部用兩個16位位址合成的方法來形成乙個20位的實體地址

實體地址=段位址*16+偏移位址

2、段位址*16 必然是16的倍數,所以乙個段的起始位址一定是16的倍數

偏移位址為16位,16位位址定址能力為64k,所以乙個段的長度最大為64k

3、實體地址=段位址*16+偏移位址

這個有很多種組合方式,cpu可以用不同的段位址和偏移位址來組成同乙個實體地址

cs(code segment):**段暫存器; 

ds(data segment):資料段暫存器; 

ss(stack segment):堆疊段暫存器; 

es(extra segment):附加段暫存器。 

5、暫存器和資料之間傳遞是佔3個位元組,暫存器之間傳遞是兩個位元組。

6、

彙編學習筆記001 基礎概念和知識

1.所有儲存器的每個儲存單元都從0開始 2.cpu對資料的讀寫,必須有三類資訊互動 器件的選擇,讀或寫的命令 控制資訊 讀或寫的資料 資料資訊 3.匯流排在邏輯上劃分為 位址匯流排,資料匯流排,控制匯流排 4.乙個字是兩個位元組 byty 乙個位元組是8bit,一bit乙個二進位制數 引言其實就是廢...

彙編基礎 cmp彙編指令

cmp是比較指令,cmp的功能相當於減法指令。它不儲存結果,只是影響相應的標誌位。其他的指令通過識別這些被影響的標誌位來得知比較結果。cmp指令格式 cmp 操作物件1,操作物件2 計算 操作物件1 操作物件2 但不儲存結果,只是根據結果修改相應的標誌位。舉例假如此時eax 0h 那麼cmp eax...

彙編基礎的基礎

一 cup和記憶體的訪問 1 位址線,位址匯流排的寬度決定了cup的定址能力 2 資料線,資料匯流排的寬度決定了cup與其他器件進行資料傳送時的一次資料傳送量 3 控制線,控制匯流排的寬度決定了cup對系統中其他器件的控制能力 二 以8086cup十六位為例暫存器 ax bx cx dx si di...