九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
匯編的8種尋址方式,以及2個(gè)默認(rèn)段寄存器


16位CPU所含有的寄存器有(見圖2.1中16位寄存器部分):
4個(gè)數(shù)據(jù)寄存器(AX、BX、CX和DX)
2個(gè)變址和指針寄存器(SI和DI) 2個(gè)指針寄存器(SP和BP) ,32位CPU增加2個(gè)16位的段寄存器:FS和GS。
4個(gè)段寄存器(ES、CS、SS和DS)
1個(gè)指令指針寄存器(IP) 1個(gè)標(biāo)志寄存器(Flags) 
一共14個(gè)寄存器,或者16個(gè)

 

 

16位CPU內(nèi)部有20根地址線,其編碼區(qū)間為:0000H~FFFFFH,所以,它可直接訪問的物理空間為1M(220)字節(jié)。
如果用16位寄存器來訪問內(nèi)存的話,則只能訪問內(nèi)存的最低端的64K,其它的內(nèi)存將無法訪問。為了能用16位寄存器來有效地訪問1M的存儲(chǔ)空間,16位CPU采用了內(nèi)存分段的管理模式,并引用段寄存器的概念。
個(gè)人猜測:堆棧有1M的限制,是不是因?yàn)檫@個(gè)歷史原因?

 

物理地址PA=段地址×16 + 偏移量(Offset)
有效地址EA=Effective Address(段內(nèi)偏移)

 

CS:IP 段寄存器CS指向存放程序的內(nèi)存段,IP是用來存放下條待執(zhí)行的指令在該段的偏移量,把它們合在一起可在該內(nèi)存段內(nèi)取到下次要執(zhí)行的指令。
SS:SP 段寄存器SS指向用于堆棧的內(nèi)存段,SP是用來指向該堆棧的棧頂,把它們合在一起可訪問棧頂單元。另外,當(dāng)偏移量用到了指針寄存器BP,則其缺省的段寄存器也是SS,并且用BP可訪問整個(gè)堆棧,不僅僅是只訪問棧頂。
DS:ALL 段寄存器DS指向數(shù)據(jù)段,ES指向附加段,在存取操作數(shù)時(shí),二者之一和一個(gè)偏移量合并就可得到存儲(chǔ)單元的物理地址。該偏移量可以是具體數(shù)值、符號(hào)地址和指針寄存器的值等之一,具體情況將由指令的尋址方式來決定。
ES:DI 在進(jìn)行串操作時(shí),其目的地址的段寄存器規(guī)定為ES
總結(jié):程序頻繁訪問的數(shù)據(jù)段用DS來指向,不太經(jīng)常訪問的數(shù)據(jù)段可用ES、FS和GS等來指向。

 

1.立即尋址方式 MOV AH, 80H(直接給寄存器賦值)
2. 寄存器尋址方式(源或者目的有一個(gè)是寄存器)
2.1) 源操作數(shù)是寄存器尋址方式
如:ADD VARD, EAX  ADD VARW, AX   MOV VARB, BH等。
其中:VARD、VARW和VARB是雙字,字和字節(jié)類型的內(nèi)存變量。
2.2) 目的操作數(shù)是寄存器尋址方式
如:ADD BH, 78h    ADD AX, 1234h   MOV EBX, 12345678H等。
2.3) 源和目的操作數(shù)都是寄存器尋址方式
如:MOV EAX, EBX   MOV AX, BX     MOV DH, BL等。
3. 直接尋址方式(地址值在括號(hào)里)
MOV BX, [1234H] (默認(rèn)使用DS)
MOV ES:[1000H], AX
4. 寄存器間接尋址方式(寄存器在括號(hào)里)
MOV BX,[DI]
操作數(shù)的有效地址用SI、DI、BX和BP等四個(gè)寄存器之一來指定,稱這種尋址方式為寄存器間接尋址方式。
若有效地址用SI、DI和BX來指定,則其缺省的段寄存器為DS;
若有效地址用BP來指定,則其缺省的段寄存器為SS(即:堆棧段)。
5. 寄存器相對尋址方式(一個(gè)寄存器和一個(gè)立即數(shù)在括號(hào)里,并且還要計(jì)算)
MOV BX, [SI+100H]
6. 基址加變址尋址方式(兩個(gè)寄存器在括號(hào)里,并且還要計(jì)算)
MOV BX, [BX+SI]
7. 相對基址加變址尋址方式(兩個(gè)寄存器在括號(hào)里和一個(gè)立即數(shù)在括號(hào)里,并且還要計(jì)算)
MOV AX, [BX+SI+200H]

幾個(gè)例子:
例子1. MOV BX, [SI+100H]
尋址路線為:
PA=(DS)*16+(SI)+100H

例子2. MOV BX, [BX+SI]
尋址路線為:
PA=(DS)*16+=(BX)+(SI)

例子3. MOV AX, [BX+SI+200H]
尋址路線為:
PA=(DS)*16+(BX)+(SI)+200H

取數(shù)據(jù)的規(guī)則:高高低低
比如內(nèi)存單元12445H的Byte值為15H,12446的Byte內(nèi)容為27H,那么12445的Word值為2715H,而BX的值也是2715.
注:為了簡化理解,低地址在上面,高地址在下面(所謂向下生長)。與堆棧模型一致,參考:
http://www.cnblogs.com/findumars/archive/2012/10/28/2743121.html

8. 32位地址的尋址方式
在用16位寄存器來訪問存儲(chǔ)單元時(shí),只能使用基地址寄存器(BX和BP)和變址寄存器(SI和DI)來作為地址偏移量的一部分。
但在用32位寄存器尋址時(shí),不存在上述限制:
32位基址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP;
32位變址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI和EBP(除ESP之外)。
計(jì)算公式:基址寄存器+變址寄存器+比例因子+偏移常量。
段寄存器的判斷與使用:
1)地址中寄存器的書寫順序決定該寄存器是基址寄存器,還是變址寄存器,例如:
[EBX+EBP]中的EBX是基址寄存器,EBP是變址寄存器。
[EBP+EBX]中的EBP是基址寄存器,EBX是變址寄存器。
2)基址寄存器是EBP或ESP時(shí),默認(rèn)的段寄存器是SS,否則,默認(rèn)的段寄存器是DS,例如:
MOV AX, [123456H] ;默認(rèn)段寄存器DS 
MOV EAX, [EBX+EBP] ;默認(rèn)段寄存器DS 
MOV EBX, [EAX+100H] ;默認(rèn)段寄存器DS 
MOV EBX, [EBP+EBX] ;默認(rèn)段寄存器SS 
MOV [ESP+EDX*2], AX ;默認(rèn)段寄存器SS 
MOV AX, [ESP] ;默認(rèn)段寄存器SS 
3)在指令中,如果使用段前綴的方式,那么,顯式段寄存器優(yōu)先。
MOV EDX, ES:[EAX*4+200H] ;顯式段寄存器ES 
MOV EBX, GS:[EAX+EDX*2+300H] ;顯式段寄存器GS

為了明確指令中存儲(chǔ)單元的屬性,可把指令“MOV [BX], 1H”可改寫成:
MOV byte ptr [BX], 1H   或  MOV word ptr [BX], 1H

一個(gè)字節(jié)的內(nèi)容是該字節(jié)單元內(nèi)存放的二進(jìn)制信息;
一個(gè)字的內(nèi)容是該字地址所指向的單元及其后繼一個(gè)單元的內(nèi)容拼接而成;
一個(gè)雙字的內(nèi)容是該字地址所指向的單元及其后繼三個(gè)單元的內(nèi)容拼接而成。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
七種尋址方式(立即尋址、寄存器尋址)
80386ASM程序設(shè)計(jì)基礎(chǔ)(二)
計(jì)算機(jī)指令系統(tǒng)的指令格式、尋址方式、指令種類及與C代碼的對照
學(xué)習(xí)之道 【分享】匯編學(xué)習(xí)筆記 [論壇存檔] - 看雪軟件安全論壇
匯編語言(二)尋址方式_基址變址尋址
匯編指令與機(jī)器碼的相互轉(zhuǎn)換--中原教程網(wǎng)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服