1樓:陳mc樂園
cs: **段暫存器,是 code segment 的縮寫;
ds:資料段暫存器,是 data segment 的縮寫;
ss:堆疊段暫存器, 是 stack segment 的縮寫;
es:附加段暫存器,是 extra segment 的縮寫;
想知道他們怎麼用,就必須瞭解他們的用途。
他們和其他暫存器如何合作,暫存器定址和儲存器定址如何完成?單說這幾個段暫存器,不涉及其他暫存器,是不能真正瞭解掌握他們的。
暫存器是**處理器內的組成部份。
暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、資料和位址。在**處理器的控制部件中,包含的暫存器有指令暫存器(ir)和程式計數器(pc)。在**處理器的算術及邏輯部件中,包含的暫存器有累加器(acc)。
暫存器是記憶體階層中的最頂端,也是系統獲得操作資料的最快速途徑。暫存器通常都是以他們可以儲存的位元數量來估量,舉例來說,一個 「8 位元暫存器」或 「32 位元暫存器」。暫存器現在都以暫存器檔案的方式來實作,但是他們也可能使用單獨的正反器、高速的核心記憶體、薄膜記憶體以及在數種機器上的其他方式來實作出來。
暫存器通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為 「架構暫存器」。
例如,x86 指令及定義八個 32 位元暫存器的集合,但一個實作 x86 指令集的 cpu 可以包含比八個更多的暫存器。
暫存器是cpu內部的元件,暫存器擁有非常高的讀寫速度,所以在暫存器之間的資料傳送非常快。
2樓:
ds(data segment):資料段暫存器ss(stack segment):堆疊段暫存器es(extra segment):
附加段暫存器。cs(code segment):**段暫存器
3樓:
cs表示code segment;ds表示data segment;ss表示stack segment;es表示external segment
4樓:北京歡迎你迎你
cs **段地址,聯合ip作為cpu指向當前正在執行的那條指令所使用,你一般不能隨意修改它
ss 堆疊段地址 聯合sp定義一個堆疊,一旦你確定了堆疊地址,ss也不能隨便改變了
ds 資料段地址 定義一個資料段
如果你是新手的話,有需要的時候,你可以用ds和es,隨著更加深入的學習你會了解具體怎麼用的。
5樓:匿名使用者
遙無可奈何花落去 有枯
組合語言中 cs, ds,ss 的區別
6樓:肥仙女
一、暫存器位置不同:
1、cs:**段暫存器;
2、ds:資料段暫存器;
3、ss:堆疊段暫存器。
二、存放位置不同:
1、**段暫存器cs:存放當前正在執行的程式**所在段的段基值。
2、資料段暫存器ds:存放資料段的段基值。
3、堆疊段暫存器ss:存放堆疊段的段基值。
1、cs**段地址,聯合ip作為cpu指向當前正在執行的那條指令所使用,不能隨意修改它。
2、ss堆疊度段地址問聯合sp定義一個答堆疊,一旦你確定了堆疊地址,ss也不能隨便改變了。
3、ds資料段地址定義一個資料段。
7樓:匿名使用者
組合語言中cs,ds,ss還有一個es定義如下:
cs(code segment):**段暫存器;
ds(data segment):資料段暫存器;
ss(stack segment):堆疊段暫存器;
es(extra segment):附加段暫存器。
當一個程式要執行時,就要決定程式**、資料和堆疊各要用到記憶體的哪些位置,通過設定段暫存器 cs,ds,ss 來指向這些起始位置。通常是將ds固定,而根據需要修改cs。
8樓:匿名使用者
**段暫存器cs
資料段暫存器ds
堆疊段暫存器ss
主要在**段編寫**
9樓:戲雨南
1.**段暫存器cs:存放當前正在執行的程式**所在段的段基值,表示當前使用的指令**可以從該段暫存器指定的儲存器段中取得,相應的偏移值則由ip提供。
2, 資料段暫存器ds:指出當前程式使用的資料所存放段的最低地址,即存放資料段的段基值。
3, 堆疊段暫存器ss:指出當前堆疊的底部地址,即存放堆疊段的段基值。
10樓:好難搞的
cs **段地址,聯合ip作為cpu指向當前正在執行的那條指令所使用,你一般不能隨意修改它
ss 堆疊段地址 聯合sp定義一個堆疊,一旦你確定了堆疊地址,ss也不能隨便改變了
ds 資料段地址 定義一個資料段
如果你是新手的話,有需要的時候,你可以用ds和es,隨著更加深入的學習你會了解具體怎麼用的。
11樓:霹靂遊俠
code segment **段暫存器
data segment 資料段暫存器
堆疊暫存器
組合語言中 cs, ds,ss 的區別
12樓:匿名使用者
cs、ds、ss 分別是 **段暫存器、資料段暫存器、棧段暫存器。
簡單的8086彙編程式可以直接使用系統棧(或者預設的棧),所以 可以不用 ss 暫存器。
即簡單的程式通常包括一個**段和一個資料段。資料通常放在資料段中,一般只需在程式的開始對資料段暫存器ds賦值(mov ax, seg data/ mov ds,ax),以後ds就不再出現了。但要使用 di 暫存器又沒有定義 es(附加資料段暫存器)時,可以這樣用:
mov ax,ds:[di]。
也就是說: si 應和 ds 暫存器、di 應和 es 暫存器、bp 應和 ss 暫存器 配合使用,當直接使用[si]時即隱含指ds暫存器。否則就要在偏移地址前加字首,如 ds:
[di]。
...........
再多的知識請看相關組合語言的教程吧!
13樓:匿名使用者
組合語言中cs,ds,ss還有一個es定義如下:
cs(code segment):**段暫存器;
ds(data segment):資料段暫存器;
ss(stack segment):堆疊段暫存器;
es(extra segment):附加段暫存器。
當一個程式要執行時,就要決定程式**、資料和堆疊各要用到記憶體的哪些位置,通過設定段暫存器 cs,ds,ss 來指向這些起始位置。通常是將ds固定,而根據需要修改cs。
14樓:北京歡迎你迎你
cs **段地址,聯合ip作為cpu指向當前正在執行的那條指令所使用,你一般不能隨意修改它
ss 堆疊段地址 聯合sp定義一個堆疊,一旦你確定了堆疊地址,ss也不能隨便改變了
ds 資料段地址 定義一個資料段
如果你是新手的話,有需要的時候,你可以用ds和es,隨著更加深入的學習你會了解具體怎麼用的。
組合語言中 cs、ds、ss的區別是什麼?
15樓:丶看清就看輕丶
cs:**段暫存器
;ds:資料段暫存器;ss:堆疊段暫存器;當一個程式要執行時,就要決定回程式**、資料答和堆疊各要用到記憶體的哪些位置,通過設定段暫存器 cs,ds,ss 來指向這些起始位置。
通常是將ds固定,而根據需要修改cs。cs **段地址,聯合ip作為cpu指向當前正在執行的那條指令所使用,你一般不能隨意修改它ss 堆疊段地址 聯合sp定義一個堆疊,一旦你確定了堆疊地址,ss也不能隨便改變了ds 資料段地址,定義一個資料段如果你是新手的話,有需要的時候,你可以用ds和es,隨著更加深入的學習你會了解具體怎麼用的。
**段暫存器cs:存放當前正在執行的程式**所在段的段基值,表示當前用的指令**可以從該段暫存器指定的儲存器段中取得,相應的偏移值則由ip提供。
資料段暫存器ds:指出當前程式用的資料所存放段的最低地址,即存放資料段的段基值。
堆疊段暫存器ss:指出當前堆疊的底部地址,即存放堆疊段的段基值。
組合語言 中的 ds cs ss問題
16樓:寧心聽曲
這是不矛盾的,原因如下:
cs,在彙編程式中稱為**段,在整個儲存器中一般位於起始端的中端,以cs為中心,往前是資料段(ds),最前面是堆疊段(ss),這裡的ds=x-1,是因為dscs,ss在儲存器中都只佔有一個位元組的位置。
在某些情況下,ds=ss,。這是因為這些程式中可能不需要用到堆疊段。
17樓:北京歡迎你迎你
cs **段地址,聯合ip作為cpu指向當前正在執行的那條指令所使用,你一般不能隨意修改它
ss 堆疊段地址 聯合sp定義一個堆疊,一旦你確定了堆疊地址,ss也不能隨便改變了
ds 資料段地址 定義一個資料段
如果你是新手的話,有需要的時候,你可以用ds和es,隨著更加深入的學習你會了解具體怎麼用的。
組合語言assume cs:code,ds:datarea 中的:是什麼意思
18樓:匿名使用者
將code段與cs段暫存器關聯,讓cpu知道哪一段需要送到哪一個段暫存器,
19樓:做而論道
assume,意即「假定」。
它是偽指令,只是告訴編譯軟體:
假定,cs 和 code 相對應、ds 和 datarea 相對應。
其中的「:」就是對應的意思。
20樓:匿名使用者
就是定義code為**段,datarea為資料段
21樓:匿名使用者
在彙編時其實內部只有偏移地址定址,而沒有變數名定址。 所以彙編時彙編軟體會把你寫的變數換成偏移地址。而變數是在你假定的段裡查詢得到偏移地址。
一般指令程式放在**段中,段地址**於**段暫存器cs,涉及到一個堆疊操作時,段暫存器為ss,涉及到一個運算元時,段暫存器為ds或者es。assume cs:code,ds:
datarea就是說明相應的操作所在段暫存器。當ds(es)不指在assume的指明的段中也可以執行,只是會得到另一個段的相應偏移地址處的內容。例如:
assume ds:段名1 mov ds,段2 mov ax,段1中的第二個變數。最終結果ax儲存的是段2中的對應與段1中第二個變數相同地方的東西(注意是db,dw....
)過程:編譯器是在段1中查詢變數名,並把變數轉換為偏移地址,但訪問時使用ds:偏移地址 這時ds儲存的是段2的段地址,所以訪問到的是第二個段對應偏移地址的內容。
關於組合語言中的loop指令,關於組合語言中的LOOP指令
這個程式迴圈一次,是由cx存放的。cx中存放的是迴圈的次數 程式設計計算2 12 assume cs code code segment mov ax,2 mov cx,11 s add ax,ax loop s mov ax,4c00h int 21h code ends end執行loop s時...
組合語言XOR命令什麼意思,組合語言中,指令XOR CX,CX表示什麼意思
凡筱雲 組合語言xor命令是異或的意思,異或,英文為exclusive or,或縮寫成xor 異或 xor 是一個數 算符。它應用於邏輯運算。異或的數學符號為 計算機符號為 xor 異或可逆運算。1 xor 1 0,0 xor 0 0,1 xor 0 1,0 xor 1 1。a xor b的運算方法...
請問組合語言中符號代表什麼,在組合語言裡 符號代表什麼意思?
離 f最近的一個 標號 就是把最近的 標號所標出的地址值入棧 是間接定址用的,可以理解為取地址,一般後面為r0 r7 兆初晴謬美 看圖你就會明白。實際上標號x1的首地址為ascii碼c的字單元地址,x2的首地址開始於db16dup 語句,緊接著x1的終止地址,那麼它的首地址相對於x1偏移4 1個位元...