寄存器

一箱季、普通寄存器 AX实愚、BX档悠、CX、DX (8086CPU 16位)

一個寄存器? 16位 == 兩個字節(jié) == 一個字 == (0000H~FFFFH)

任何兩個地址連續(xù)的內(nèi)存單元腊敲,N號單元和 N+1號單元,可以將它們看成兩個內(nèi)存單元 葫录,也可以看成一個地址為N的字單元中的高位字節(jié)單元和低位字節(jié)單元。

拿AX舉例? ?AX 高位 AH(一個字節(jié))? 低位AL(一個字節(jié))? 可以這樣分開使用

二领猾、段得來源意義

CPU訪問內(nèi)存單元時米同,必須向內(nèi)存提供內(nèi)存單元的物理地址。

8086CPU在內(nèi)部用段地址和偏移地址移位相加的方法形成最終的物理地址摔竿。

CPU可以用不同的段地址和偏移地址形成同一個物理地址面粮。

8086CPU用“(段地址×16)+偏移地址=物理地址”的方式給出內(nèi)存單元的物理地址,使得我們可以用分段的方式來管理內(nèi)存继低。

三熬苍、段寄存器就是提供段地址的

8086CPU有4個段寄存器:CS、DS、SS柴底、ES

CS:IP

CS和IP是8086CPU中最關(guān)鍵的寄存器婿脸,它們指示了CPU當前要讀取指令的地址。

CS為代碼段寄存器柄驻;

IP為指令指針寄存器狐树。

對于代碼段,將它的段地址放在 CS中鸿脓,將段中第一條指令的偏移地址放在IP中抑钟,這樣CPU就將執(zhí)行我們定義的代碼段中的指令;

同時修改CS野哭、IP的內(nèi)容:

jmp 段地址:偏移地址

jmp 2AE3:3

jmp 3:0B16

功能:用指令中給出的段地址修改CS在塔,偏移地址修改IP。

僅修改IP的內(nèi)容:

jmp 某一合法寄存器

jmp ax? (類似于 mov IP,ax)

jmp bx

功能:用寄存器中的值修改IP拨黔。

DS和[address]

CPU要讀取一個內(nèi)存單元的時候蛔溃,必須先給出這個內(nèi)存單元的地址;

對于數(shù)據(jù)段篱蝇,將它的段地址放在 DS中城榛,用mov、add态兴、sub等訪問內(nèi)存單元的指令時,CPU就將我們定義的數(shù)據(jù)段中的內(nèi)容當作數(shù)據(jù)段來訪問疟位;

在8086PC中瞻润,內(nèi)存地址由段地址和偏移地址組成。

8086CPU中有一個 DS寄存器甜刻,通常用來存放要訪問的數(shù)據(jù)的段地址

mov bx 1000H

mov ds,bx

mov ax,[0]? ? 1000:0處的字型數(shù)據(jù)送入ax

mov [0],cx? ? ? ?//cx中的16位數(shù)據(jù)送到 1000:0處

SS:SP

push绍撞、pop 實質(zhì)上就是一種內(nèi)存?zhèn)魉椭噶睿梢栽诩拇嫫骱蛢?nèi)存之間傳送數(shù)據(jù)得院,與mov指令不同的是傻铣,push和pop指令訪問的內(nèi)存單元的地址不是在指令中給出的,而是由SS:SP指出的祥绞。

我們要十分清楚的是非洲,push和pop指令同mov指令不同,CPU執(zhí)行mov指令只需一步操作蜕径,就是傳送两踏,而執(zhí)行push、pop指令卻需要兩步操作兜喻。

執(zhí)行push時:

先改變SP梦染,后向SS:SP處傳送。

執(zhí)行pop時:

先讀取SS:SP處的數(shù)據(jù),后改變SP帕识。

(2)push指令的執(zhí)行步驟:

1)SP=SP-2泛粹;

2)向SS:SP指向的字單元中送入數(shù)據(jù)。

(3)pop指令的執(zhí)行步驟:

1)從SS:SP指向的字單元中讀取數(shù)據(jù)肮疗;

2)SP=SP+2晶姊。


我們將10000H~1FFFFH這段空間當作棧段 ,SS=1000H 族吻,椕苯瑁空間大小為64KB ,棧最底部的字單元地址為1000:FFFE超歌。

任意時刻砍艾,SS:SP指向棧頂,當棧中只有一個元素的時候巍举,SS=1000H脆荷,SP=FFFEH。

棧為空懊悯,就相當于棧中唯一的元素出棧蜓谋,出棧后,SP=SP+2炭分。

SP原來為FFFEH桃焕,加2后SP=0,所以捧毛,當棧為空的時候观堂,SS=1000H,SP=0呀忧。

任意時刻师痕,SS:SP指向棧頂元素,當棧為空的時候 而账,棧中沒有元素 胰坟,也就不存在棧頂元素,所以SS:SP只能指向棧的最底部單元下面的單元 泞辐,該單元的偏移地址為棧最底部的字單元的偏移地址+2 笔横,棧最底部字單元的地址為1000:FFFE,所以椄篮穑空時狠裹,SP=0000H。



任意時刻汽烦,SS:SP指向棧頂元素涛菠。

(5)8086CPU只記錄棧頂,棧空間的大小我們要自己管理俗冻。



對于棧段礁叔,將它的段地址放在SS中,將棧頂單元的偏移地置放在 SP 中迄薄,這樣CPU在需要進行棧操作的時候琅关,比如執(zhí)行 push、pop 指令等讥蔽,就將我們定義的棧段當作椈烈祝空間來用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冶伞,一起剝皮案震驚了整個濱河市新症,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌响禽,老刑警劉巖徒爹,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芋类,居然都是意外死亡隆嗅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門侯繁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胖喳,“玉大人,你說我怎么就攤上這事贮竟≠飨” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵坝锰,是天一觀的道長。 經(jīng)常有香客問我重付,道長顷级,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任确垫,我火速辦了婚禮弓颈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘删掀。我一直安慰自己翔冀,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布披泪。 她就那樣靜靜地躺著纤子,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上控硼,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天泽论,我揣著相機與錄音,去河邊找鬼卡乾。 笑死翼悴,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的幔妨。 我是一名探鬼主播鹦赎,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼误堡!你這毒婦竟也來了古话?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤埂伦,失蹤者是張志新(化名)和其女友劉穎煞额,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沾谜,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡膊毁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了基跑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婚温。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖媳否,靈堂內(nèi)的尸體忽然破棺而出栅螟,到底是詐尸還是另有隱情,我是刑警寧澤篱竭,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布力图,位于F島的核電站,受9級特大地震影響掺逼,放射性物質(zhì)發(fā)生泄漏吃媒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一吕喘、第九天 我趴在偏房一處隱蔽的房頂上張望赘那。 院中可真熱鬧,春花似錦氯质、人聲如沸募舟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拱礁。三九已至琢锋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間觅彰,已是汗流浹背吩蔑。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留填抬,地道東北人烛芬。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像飒责,于是被迫代替她去往敵國和親赘娄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.內(nèi)存中字的存儲字的低位字節(jié)存放在低地址單元中宏蛉,高位字節(jié)存放在高地址單元中遣臼。0、1兩個內(nèi)存單元用來存儲一個字拾并,這...
    mynameishl閱讀 756評論 0 0
  • 2.1 通用寄存器8086CPU的所有寄存器都是16位,可以存放兩個字節(jié)揍堰。AX、BX嗅义、CX屏歹、DX通常用來存放一般性...
    mecury閱讀 913評論 0 0
  • 內(nèi)存中的字存儲 字單元存放一個字型數(shù)據(jù)(16位)的內(nèi)存單元,由兩個地址梁旭的內(nèi)存單元組成之碗。高地址存高位字節(jié)蝙眶,低地址...
    Nonmfly閱讀 450評論 0 0
  • 看書時不寫廢話 內(nèi)存中字的存儲 16位寄存器可以儲存一個字,一個字為2個字節(jié)褪那,而內(nèi)存一個單元只能存儲一個字節(jié)(8b...
    NoviceQAQ閱讀 1,160評論 0 1
  • 1. CPU中用16位寄存器來存儲一個字幽纷,高8位存放高位字節(jié),低8位存放低位字節(jié)博敬。在內(nèi)存中存儲時友浸,由于內(nèi)存單元是字...
    八斗道人閱讀 535評論 0 1