日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

段寄存器和8种地址寻址方式

發(fā)布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 段寄存器和8种地址寻址方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

段寄存器是因為對內(nèi)存的分段管理而設(shè)置的。

16位CPU有四個段寄存器,其程序可同時訪問四個不同含義的段,引用方面有如下規(guī)定:
1. 取命令:段寄存器CS指向存放程序的內(nèi)存段,IP是用來存放下條待執(zhí)行的指令在該段的偏移量,把它們合在一起可在該內(nèi)存段內(nèi)取到下次要執(zhí)行的指令。
2. 取堆棧:段寄存器SS指向用于堆棧的內(nèi)存段,SP是用來指向該堆棧的棧頂,把它們合在一起可訪問棧頂單元。另外,當(dāng)偏移量用到了指針寄存器BP,則其缺省的段寄存器也是SS,并且用BP可訪問整個堆棧,不僅僅是只訪問棧頂。
3. 取數(shù)據(jù):段寄存器DS指向數(shù)據(jù)段,ES指向附加段,在存取操作數(shù)時,二者之一和一個偏移量合并就可得到存儲單元的物理地址。該偏移量可以是具體數(shù)值、符號地址和指針寄存器的值等之一,具體情況將由指令的尋址方式來決定。通常,缺省的數(shù)據(jù)段寄存器是DS,只有一個例外,即:在進(jìn)行串操作時,其目的地址的段寄存器規(guī)定為ES。
4. 其它情況,段寄存器除了其默認(rèn)引用的寄存器外,還可以強(qiáng)行改變?yōu)槠渌渭拇嫫鳌?br />
32位CPU內(nèi)有6個段寄存器,程序在某一時刻可訪問6個不同的段。其段寄存器的值在不同的方式下具有不同的含義:
1. 代碼段寄存器:32位微機(jī)在取指令時,系統(tǒng)自動引用CS和EIP來取出下條指令。
2. 堆棧段寄存器:32位微機(jī)在訪問堆棧段時,總是引用堆棧段寄存器SS。堆棧指針可用32位的ESP和16位的SP。
3. 數(shù)據(jù)段寄存器:DS是主要的數(shù)據(jù)段寄存器。通常情況下,它是除訪問堆棧以外數(shù)據(jù)時的默認(rèn)段寄存器。在某些串操作中,其目的操作數(shù)的段寄存器被指定為ES是另一個例外。
段寄存器CS、SS、ES、FS和GS也都可以作為訪問數(shù)據(jù)時的段寄存器(原來是DS),但它們必須用段超越前綴的方式在指令中直接寫出。用這種方式會增加指令的長度,指令的執(zhí)行時間也有所延長。
一般來說,程序頻繁訪問的數(shù)據(jù)段用DS來指向,不太經(jīng)常訪問的數(shù)據(jù)段可用ES、FS和GS等來指向。


--------------------------------------操作數(shù)的尋址方式------------------------------------------
1. 立即尋址方式(操作數(shù)作為指令的一部分而直接寫在指令中,這種操作數(shù)稱為立即數(shù))
MOV AH, 80H
ADD AX, 1234H

2. 寄存器尋址方式(指令所要的操作數(shù)已存儲在某寄存器中,或把目標(biāo)操作數(shù)存入寄存器)
ADD VARD, EAX (源操作數(shù)是寄存器尋址方式)
ADD BH, 78h (目的操作數(shù)是寄存器尋址方式)
MOV EAX, EBX (源和目的操作數(shù)都是寄存器尋址方式)

3. 直接尋址方式(指令所要的操作數(shù)存放在內(nèi)存中,在指令中直接給出該操作數(shù)的有效地址)
MOV BX, [1234H],在執(zhí)行時,(DS)=2000H,內(nèi)存單元21234H的值為5213H。
執(zhí)行該指令要分三部分:
1). 由于1234H是一個直接地址,它緊跟在指令的操作碼之后,隨取指令而被讀出;
2). 訪問數(shù)據(jù)段的段寄存器是DS,所以,用DS的值(左移4位)和偏移量1234H相加,得存儲單元的物理地址:21234H;
3). 取單元21234H的值5213H,并按“高高低低”的原則存入寄存器BX中。
所以,在執(zhí)行該指令后,BX的值就為5213H。
MOV ES:[1000H], AX (認(rèn)為DS,如果要指定訪問其它段內(nèi)的數(shù)據(jù),可在指令中用段前綴的方式顯式地書寫出來)

4. 寄存器間接尋址方式(用SI、DI和BX等之一來指定,則其缺省的段寄存器為DS;用BP來指定,則其缺省的段寄存器為SS)
MOV BX,[DI],在執(zhí)行時,(DS)=1000H,(DI)=2345H,存儲單元12345H的內(nèi)容是4354H。
執(zhí)行結(jié)果 PA=(DS)*16+DI=1000H*16+2345H=12345H。該指令的執(zhí)行效果是:把從物理地址為12345H開始的一個字的值傳送給BX。

5. 寄存器相對尋址方式(同上,但增加一個偏移量)
MOV BX, [SI+100H],在執(zhí)行它時,(DS)=1000H,(SI)=2345H,內(nèi)存單元12445H的內(nèi)容為2715H
EA=(SI)+100H=2345H+100H=2445H
PA=(DS)*16+EA=1000H*16+2445H=12445H
該指令的執(zhí)行效果是:把從物理地址為12445H開始的一個字的值傳送給BX。

6. 基址加變址尋址方式(效地址是一個基址寄存器(BX、BP)和一個變址寄存器(SI、DI)的內(nèi)容之和)
MOV BX, [BX+SI],在執(zhí)行時,(DS)=1000H,(BX)=2100H,(SI)=0011H,內(nèi)存單元12111H的內(nèi)容為1234H
EA=(BX)+(SI)=2100H+0011H=2111H
PA=(DS)*16+EA=1000H*16+2111H=12111H
該指令的執(zhí)行效果是:把從物理地址為12111H開始的一個字的值傳送給BX。

7. 相對基址加變址尋址方式(同上,但增加一個偏移量)
MOV AX, [BX+SI+200H],在執(zhí)行時,(DS)=1000H,(BX)=2100H,(SI)=0010H,內(nèi)存單元12310H的內(nèi)容為1234H
EA=(BX)+(SI)+200H=2100H+0010H+200H=2310H
PA=(DS)*16+EA=1000H*16+2310H=12310H
該指令的執(zhí)行效果是:把從物理地址為12310H開始的一個字的值傳送給AX。
下面四種書寫方式等價:
MOV AX, [BX+SI+1000H]
MOV AX, 1000H[BX+SI]
MOV AX, 1000H[BX][SI]
MOV AX, 1000H[SI][BX]

8. 32位地址的尋址方式
在用16位寄存器來訪問存儲單元時,只能使用基地址寄存器(BX和BP)和變址寄存器(SI和DI)來作為地址偏移量的一部分,但在用32位寄存器尋址時,不存在上述限制,所有32位寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP)都可以是地址偏移量的一個組成部分。
當(dāng)用32位地址偏移量進(jìn)行尋址時,內(nèi)存地址的偏移量可分為三部分:一個32位基址寄存器,一個可乘1、2、4或8的32位變址寄存器,一個8位/32位的偏移常量,并且這三部分還可進(jìn)行任意組合,省去其中之一或之二。

EA = 基址寄存器 + 變址寄存器*比例因子(1或2或4或8)+偏移常量(無/8位/32位)
疑問:這里沒有出現(xiàn)段寄存器。難道32位情況下,段寄存器的值是0,或者是什么值都不重要。

32位基址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP;
32位變址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI和EBP(除ESP之外)

由于32位尋址方式能使用所有的通用寄存器,所以,和該有效地址相組合的段寄存器也就有新的規(guī)定。具體規(guī)定如下:
1). 地址中寄存器的書寫順序決定該寄存器是基址寄存器,還是變址寄存器;
如:[EBX+EBP]中的EBX是基址寄存器,EBP是變址寄存器,而[EBP+EBX]中的EBP是基址寄存器,EBX是變址寄存器;
2). 默認(rèn)段寄存器的選用取決于基址寄存器;
3). 基址寄存器是EBP或ESP時,默認(rèn)的段寄存器是SS,否則,默認(rèn)的段寄存器是DS;
4). 在指令中,如果使用段前綴的方式,那么,顯式段寄存器優(yōu)先。

指令的舉例 訪問內(nèi)存單元所用的段寄存器
MOV AX, [123456H] ;默認(rèn)段寄存器DS
MOV EAX, [EBX+EBP] ;默認(rèn)段寄存器DS
MOV EBX, [EBP+EBX] ;默認(rèn)段寄存器SS
MOV EBX, [EAX+100H] ;默認(rèn)段寄存器DS
MOV EDX, ES:[EAX*4+200H] ;顯式段寄存器ES
MOV [ESP+EDX*2], AX ;默認(rèn)段寄存器SS
MOV EBX, GS:[EAX+EDX*2+300H] ;顯式段寄存器GS
MOV AX, [ESP] ;默認(rèn)段寄存器SS

總結(jié)

以上是生活随笔為你收集整理的段寄存器和8种地址寻址方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久久影院 | 在线观看网站污 | 日韩毛片av | 久久99免费 | 亚洲美女性生活视频 | 妹子干综合 | 欧美9999| 亚洲国产精品成人综合色在线婷婷 | 国精品一区 | 久久久www免费人成人片 | 骚虎av在线 | 久草福利资源 | 高清一区二区视频 | 91高清在线视频 | 国产无遮挡又黄又爽又色视频 | 成人在线直播 | 国产福利视频一区二区 | 欧美精品一区二区性色a+v | 欧美天天性 | 色老头在线一区二区三区 | 日本女v片 | 欧美熟妇精品黑人巨大一二三区 | 亚洲av综合色区无码二区爱av | 国产精品成人免费看片 | 亚洲国产精品视频在线 | 91麻豆影院| 国产初高中真实精品视频 | 毛片久久久久久 | 国产一区二区三区精品在线观看 | 精品黄色 | 欧美一级大片免费看 | 天天干夜夜 | 免费成人美女在线观看. | 日韩精品一区二区亚洲av观看 | 免费一区二区三区视频在线 | 国内久久久| 日韩人妻精品无码一区二区三区 | 中文字幕国内自拍 | 日本午夜视频在线观看 | 中文字幕天堂 | 理论片午午伦夜理片影院99 | 精品久久亚洲 | 亚洲无套 | 日本三级中文字幕在线观看 | 欧美色亚洲色 | 一区在线观看视频 | 中国丰满人妻videoshd | 久久激情综合网 | 91国偷自产一区二区三区老熟女 | 鲁一鲁一鲁一鲁一av | 日韩在线观看免费av | 熟女一区二区三区视频 | 视频在线一区二区三区 | 成人短视频在线 | 久久久久久久久久久久久av | 日韩欧美视频在线免费观看 | 亚洲超碰av | 中文字幕无码乱人伦 | 99综合视频| 欧美三级手机在线观看 | 动漫美女无遮挡免费 | 午夜老司机福利 | 浮妇高潮喷白浆视频 | 国产黑丝精品 | 黄色私人影院 | 亚洲激情成人 | 成人av在线网站 | 黄色网久久 | 久久久久亚洲av成人人电影 | 91国内| 涩涩视频在线看 | 亚洲成a人片在线www | 在线看片不卡 | 亚洲日本一区二区三区 | 香蕉视频免费网站 | 男女黄色录像 | 婷婷一区二区三区四区 | 日韩视频一区二区 | 高跟91白丝| a在线免费 | 韩国三级久久 | 亚洲女同av| 欧美精品一区二区免费 | 黄色美女免费网站 | 欧美三级影院 | 曰女同女同中文字幕 | 国产三级在线 | 涩涩视频在线 | 91精品美女 | 国产精品不卡在线 | 狠狠干导航 | 真实偷拍激情啪啪对白 | 精品在线观看视频 | 99亚洲天堂 | 亚洲精品1 | 成年人免费av | 国产欧美一区二区 | 午夜精品av | 国产激情av一区二区三区 |