![匯編語(yǔ)言基礎(chǔ)課件_第1頁(yè)](http://file4.renrendoc.com/view10/M02/3B/0B/wKhkGWWdPEOAMwDTAADEBR0L7d4120.jpg)
![匯編語(yǔ)言基礎(chǔ)課件_第2頁(yè)](http://file4.renrendoc.com/view10/M02/3B/0B/wKhkGWWdPEOAMwDTAADEBR0L7d41202.jpg)
![匯編語(yǔ)言基礎(chǔ)課件_第3頁(yè)](http://file4.renrendoc.com/view10/M02/3B/0B/wKhkGWWdPEOAMwDTAADEBR0L7d41203.jpg)
![匯編語(yǔ)言基礎(chǔ)課件_第4頁(yè)](http://file4.renrendoc.com/view10/M02/3B/0B/wKhkGWWdPEOAMwDTAADEBR0L7d41204.jpg)
![匯編語(yǔ)言基礎(chǔ)課件_第5頁(yè)](http://file4.renrendoc.com/view10/M02/3B/0B/wKhkGWWdPEOAMwDTAADEBR0L7d41205.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1
基礎(chǔ)知識(shí)
數(shù)制
數(shù)制之間的轉(zhuǎn)換
運(yùn)算
原碼反碼補(bǔ)碼
ASCII碼
BCD碼
數(shù)碼之間的處理關(guān)系
從不同的角度看待一個(gè)二進(jìn)制數(shù)2預(yù)備知識(shí)22=424=1628=256210=1024220=10485761K=210=1024(Kilo)1M=1024K=220
(Mega)1G=1024M=230(Giga)1個(gè)二進(jìn)制位:bit(比特)8個(gè)二進(jìn)制位:Byte(字節(jié))1Byte=8bit2個(gè)字節(jié):Word(字)1Word=2Byte=16bit31.數(shù)制
十進(jìn)制:基數(shù)為10,逢十進(jìn)一543.12=5×102+4×101+3×100+1×10-1+2×10-2
二進(jìn)制:基數(shù)為2,逢二進(jìn)一1101112=
1×25
+1×24
+1×22+1×21+1×20
=5510
十六進(jìn)制:基數(shù)為16,逢十六進(jìn)一1001,0001,1000,01119187=9×163+1×162+8×161+7×160
八進(jìn)制:基數(shù)為8,逢八進(jìn)一4數(shù)制基數(shù)數(shù)碼二進(jìn)制Binary20,1八進(jìn)制Octal80,1,2,3,4,5,6,7十進(jìn)制Decimal100,1,2,3,4,5,6,7,8,9十六進(jìn)制Hexadecimal160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F5
二進(jìn)制十進(jìn)制
110111.11B=1×25+1×24+1×22+1×21+1×20+1×2-1+1×2-2=55.75D
整數(shù)部分:除基取余法
例:N=55D
55/2=27余數(shù)=1(a0)27/2=13余數(shù)=1(a1)13/2=6余數(shù)=1(a2)6/2=3余數(shù)=0(a3)3/2=1余數(shù)=1(a4) 1/2=0余數(shù)=1(a5)
N=55D=110111B
2.數(shù)制之間的轉(zhuǎn)換6小數(shù)部分:乘基取整法
例:N=55D
0.425×2=0.85整數(shù)=0 0.85×2=1.70整數(shù)=1 0.70×2=1.40 整數(shù)=1 0.40×2=0.80 整數(shù)=0 0.80×2=1.60整數(shù)=1
N=0.425D=0.01101B7
二進(jìn)制十六進(jìn)制
0011010110111111
35BF∴
0011,0101,1011,1111B=35BFH
A19C
1010000110011100∴A19CH=1010,0001,1001,1100B8
十六進(jìn)制十進(jìn)制
BF3CH=11163+15162+3161+12160
降冪法除法
例:399D=?H39914315---256161
18F
∴399D=18FH9
算術(shù)運(yùn)算二進(jìn)制
加法規(guī)則乘法規(guī)則
0+0=000=00+1=101=01+0=110=01+1=0(進(jìn)位1)11=1十六進(jìn)制05C3H3D25H+3D25H-05C3H42E8H3762H3.運(yùn)算(算術(shù)運(yùn)算和邏輯運(yùn)算)10
邏輯運(yùn)算(按位bit操作)“非”運(yùn)算(NOT)A
A0110“與”運(yùn)算(AND)ABA
B000010100111“異或”運(yùn)算(XOR)ABA
B000011101110“或”運(yùn)算(OR)ABA
B00001110111111例:X=00FFHY=5555H,求Z=X
Y=?X=0000000011111111B
Y=0101010101010101B
Z=0101010110101010B
Z=55AAH124.原碼反碼補(bǔ)碼
數(shù)(機(jī)器數(shù))的表示:計(jì)算機(jī)中的數(shù)用二進(jìn)制表示,數(shù)的符號(hào)也用二進(jìn)制表示。機(jī)器字長(zhǎng):指參與運(yùn)算的數(shù)的基本位數(shù),標(biāo)志著計(jì)算精度,一般是字節(jié)的整數(shù)倍(8位、16位、32位等)。假設(shè)機(jī)器字長(zhǎng)n為8位76543210符號(hào)位數(shù)值位假設(shè)機(jī)器字長(zhǎng)n為16位符號(hào)位數(shù)值位1514131211109876543210符號(hào)位=0表示正數(shù)符號(hào)位=1表示負(fù)數(shù)13常用表示法
——原碼反碼補(bǔ)碼原碼表示法:符號(hào)+絕對(duì)值例:n=8bit[+3]原碼=0000,0011=03H[-3]原碼=1000,0011=83H[+0]原碼=0000,0000=00H[-0]原碼=1000,0000=80H
0的表示不唯一14反碼表示法:正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相反例:n=8bit[+5]反碼=0000,0101=05H[-5]反碼=1111,1010=FAH[+0]反碼=0000,0000=00H[-0]反碼=1111,1111=FFH
0的表示不唯一15補(bǔ)碼表示法:IBM-PC采用補(bǔ)碼表示法正數(shù)的補(bǔ)碼:同原碼
[+1]補(bǔ)碼=00000001=01H[+127]補(bǔ)碼=01111111=7FH[+0]補(bǔ)碼=00000000=00H負(fù)數(shù)的補(bǔ)碼:(1)寫出與該負(fù)數(shù)相對(duì)應(yīng)的正數(shù)的補(bǔ)碼(2)按位求反(3)末位加一例:機(jī)器字長(zhǎng)8位,[-46]補(bǔ)碼=?[46]補(bǔ)碼=001011101101000111010010=D2H
機(jī)器字長(zhǎng)16位,[-46]補(bǔ)碼=FFD2H
按位求反末位加一16[-1]補(bǔ)碼=11111111=FFH[-127]補(bǔ)碼=10000001=81H[-0]補(bǔ)碼=00000000=00Hn位補(bǔ)碼的表數(shù)范圍:-2n-1
N
2n-1-1n=8-128
N
127n=16-32768
N
3276717n位二進(jìn)制補(bǔ)碼的表數(shù)范圍十進(jìn)制二進(jìn)制十六進(jìn)制十進(jìn)制十六進(jìn)制
n=8n=16+127011111117F+327677FFF+126011111107E+327667FFE......……...+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE......……...-1261000001082-327668002-1271000000181-327678001-1281000000080-32768800018補(bǔ)碼的加法和減法求補(bǔ)運(yùn)算
:對(duì)一個(gè)二進(jìn)制數(shù)按位求反、末位加一[X]補(bǔ)碼
[-X]補(bǔ)碼
[X]補(bǔ)碼加法規(guī)則:[X+Y]補(bǔ)碼=[X]補(bǔ)碼+[Y]補(bǔ)碼減法規(guī)則:[X-Y]補(bǔ)碼=[X]補(bǔ)碼+[-Y]補(bǔ)碼補(bǔ)碼減法可轉(zhuǎn)換為補(bǔ)碼加法符號(hào)位參加運(yùn)算,能自動(dòng)得到正確結(jié)果。無符號(hào)整數(shù):表數(shù)范圍0
N
2n-1n=80
N
255n=160
N
6553519ASCII碼:用一個(gè)字節(jié)來表示一個(gè)字符,低7位為字符的ASCII值,最高位一般用作校驗(yàn)位。例:‘A’41H‘a(chǎn)’61H‘1’31H
換行0AH
回車0DH
空格20H5.字符的ASCII碼20
BCD碼的表示:一位十進(jìn)制的數(shù)用四位二進(jìn)制數(shù)碼來表示6.BCD碼例如:DBCD000001000120010:8100091001特點(diǎn):每4位表示是二進(jìn)制的數(shù),4位與4位之間是十進(jìn)制的數(shù)即用二進(jìn)制的數(shù)碼表示十進(jìn)制的數(shù)。例如:16=00010110BCD=00010000B98=10011000BCD21BCD碼在機(jī)內(nèi)存放形式:非壓縮形式
壓縮形式0000100000001001低高10011000BCD碼的運(yùn)算:壓縮的BCD碼的加法校正22例:37+47=8437的BCD碼為00110111B、47的BCD為01000111B第一步,先進(jìn)行二進(jìn)制加法 00110111 + 0100011101111110第二步,對(duì)二進(jìn)制數(shù)的相加結(jié)果進(jìn)行校正由于運(yùn)算結(jié)果01111110中的低4位大于9,故應(yīng)在低四位加6 01111110+0000011010000100最終結(jié)果為84H,既是84D的BCD碼,結(jié)果正確。23壓縮的BCD碼的減法校正例:84-47=3784的BCD碼(壓縮)為10000100B、47的BCD(壓縮)為01000111B第一步,先進(jìn)行二進(jìn)制減法 10000100 - 0100011100111101第二步,對(duì)二進(jìn)制數(shù)的相減結(jié)果進(jìn)行校正由于在運(yùn)算中低4位向高4位借了1,故應(yīng)在低四位減6 00111101-0000011000110111最終結(jié)果為37H,既是37D的BCD碼,結(jié)果正確。24非壓縮的BCD碼的加法校正例1.3.337+47=84第一步,先進(jìn)行二進(jìn)制加法 0000001100000111 + 00000100000001110000011100001110第二步,對(duì)二進(jìn)制數(shù)的相加結(jié)果進(jìn)行校正由于運(yùn)算結(jié)果中的低字節(jié)的低4位大于9,故應(yīng)加6,而有輔助進(jìn)位位,直接將這一進(jìn)位位加到高字節(jié)。 0000011100001110+1110000010000000010025最終結(jié)果為84H,既是84D的BCD碼,結(jié)果正確。非壓縮的BCD碼的減法校正例1.3.484-47=37第一步,先進(jìn)行二進(jìn)制減法 0000100000000100 - 00000100000001110000001111111101第二步,對(duì)二進(jìn)制數(shù)的相減結(jié)果進(jìn)行校正由于在運(yùn)算后,低字節(jié)的低4位大于9,所以應(yīng)減6。 0000001111111101-110000000111111011126然后將結(jié)果的低字節(jié)的高四位清0,結(jié)果為0307H,是37D的非壓縮的BCD碼,結(jié)果正確。BCD碼的乘法校正例:6×7=42第一步,先進(jìn)行二進(jìn)制乘法 00000110 ×0000011111011001100000101010第二步,對(duì)二進(jìn)制數(shù)的相成結(jié)果進(jìn)行校正00101010÷1010=00000100余0000001027校正的實(shí)質(zhì)是對(duì)二進(jìn)制數(shù)的乘積除以10D,商為乘積的高位,余數(shù)為乘積的低位,故最終結(jié)果為42D。BCD碼的除法校正例:45÷7=6余3
BCD碼的除法與加、減、乘不同,是先校正,再做二進(jìn)制除。校正的實(shí)質(zhì)是將被除數(shù)(十進(jìn)制數(shù))轉(zhuǎn)換為二進(jìn)制數(shù)。如上例,將45的高位乘以10D再加上低位轉(zhuǎn)換為二進(jìn)制數(shù)。第一步,先校正00000100×1010+00000101=0000000000101101第二步,作除法0000000000101101÷00000111=00000110余0000001128結(jié)果為6余3。在Intel8088/8086中,有專門的BCD碼校正指令來完成校正操作。
29數(shù)的輸入:每位二進(jìn)制數(shù)用ASCII碼輸入BCD碼存放二進(jìn)制數(shù)值存放減30H十轉(zhuǎn)二處理用十進(jìn)制調(diào)整指令數(shù)的輸出:二進(jìn)制數(shù)BCDASCII碼按位輸出二轉(zhuǎn)十(除10取余直至商為0)各位加30H非壓縮7.數(shù)碼之間的處理關(guān)系軟件:系統(tǒng)軟件(核心是操作系統(tǒng)OS)
MASM.EXE
TASM.EXE
LINK.EXE
TLINK.EXE
DEBUG.EXE
用戶軟件
1981年推出CPU采用芯片8088,機(jī)器字長(zhǎng)16位,
數(shù)據(jù)線8根,地址線20根,1MRAM,40KROMIBMPC
2.2微處理器的結(jié)構(gòu)IBMPC機(jī)的CPU組成:
8086/8088的寄存器組(14個(gè)寄存器):
數(shù)據(jù)寄存器(4個(gè)通用寄存器)
指針及變址寄存器
段寄存器
控制寄存器算術(shù)邏輯部件ALU控制邏輯工作寄存器圖2.2:8086處理器功能框圖功能:存放操作數(shù)或運(yùn)算結(jié)果等信息組成:AX:AH+AL--累加器
BX:BH+BL--基址寄存器
CX:CH+CL--計(jì)數(shù)器
DX:DH+DL--數(shù)據(jù)寄存器ABCDABCDX:字操作寄存器(16位)H或ABCDL為字節(jié)操作寄存器(8位)該寄存器組既可作16位寄存器(AX,BX,CX,DX),又可作按高8位和低8位作8位寄存器使用。即如:AH
ALAX1570字寄存器低字節(jié)(8位)高字節(jié)(8位)字節(jié)寄存器數(shù)據(jù)寄存器功能:存放操作數(shù)的偏移地址組成:5個(gè)16位寄存器組成:
SI:源變址寄存器
DI:目的變址寄存器
SP:棧頂?shù)刂芳拇嫫鳎ㄏ鄬?duì)于SS是偏移地址):SP是棧頂指針
BP:對(duì)堆棧操作的基址寄存器
BX:變址器由于操作數(shù)的偏移地址只能用16位二進(jìn)制數(shù)表示,因此:SI,DI,SP,BP都是16位寄存器,而不能作8位寄存器使用。說明:(1)僅SI,DI,BX,BP能作基址或變址寄存器,SI,DI作變址器,BX,BP
作變址器又作基址器(2)SI,DI,BP作數(shù)據(jù)寄存器使用時(shí),用來保存操作數(shù)和運(yùn)算結(jié)果,只能作16位字寄存器而不是8位寄存器。指針及變址寄存器
IBMPC中有4個(gè)專門存放段地址的段寄存器(16位)代碼段寄存器CS數(shù)據(jù)段寄存器DS堆棧段寄存器SS附加段寄存器ES例:(DS)=3000H,EA=1234H,
物理地址=16d
(DS)+EA=31234H存儲(chǔ)器8K代碼2K數(shù)據(jù)256堆棧02000H04800H04000H0200H0400H0480H段寄存器
IP指令指針寄存器(存放代碼段中的偏移地址,始終指向下一條指令的首地址)標(biāo)志寄存器FLAGS:包含了9個(gè)標(biāo)志位,由6個(gè)狀態(tài)標(biāo)志位和3個(gè)控制標(biāo)志位構(gòu)成,主要用于反映處理器的狀態(tài)和運(yùn)算結(jié)果的某些特征。各標(biāo)志位在標(biāo)志寄存器中的位置如下所示:
控制寄存器1.進(jìn)位位CF(CF)=1:當(dāng)結(jié)果最高位(字節(jié)第七位,字第15位)產(chǎn)生一個(gè)進(jìn)位和錯(cuò)位0:不產(chǎn)生進(jìn)位或借位2.溢出位OF(OF)=1:有溢出,運(yùn)算結(jié)果超過了范圍如:帶符號(hào)數(shù):字節(jié):-128-127D
字:-32768-327670:無溢出注意:溢出與進(jìn)位兩個(gè)概念是不同的。例如:01100100+0110010011001000=[+100]補(bǔ)=64H=[+100]補(bǔ)=64H+為+200D超出+127兩個(gè)正數(shù)相加變成了負(fù)數(shù)故溢出則(OF)=1,(CF)=0,稱為無進(jìn)位的溢出又例如:10101011+1111111110101010CF10ABH=[-55H]補(bǔ)=-850FFH=[-1]補(bǔ)=-10AAH=[-56H]補(bǔ)=-86+后為-86則:無溢出但有進(jìn)位位:(OF)=0,(CF)=13.符號(hào)標(biāo)志位SF(SF)=1:最高位為1:負(fù)數(shù)0:最高位為0:正數(shù)4.零標(biāo)志位ZF(ZF)=1:運(yùn)算結(jié)果為00:運(yùn)算結(jié)果不為05.輔助進(jìn)位標(biāo)志位AF(AF)=1:字節(jié)
字0……7430有進(jìn)位或借位158706.奇偶標(biāo)志位PF(PF)=1:當(dāng)運(yùn)算結(jié)果(指低8位)中的‘1’的個(gè)數(shù)為偶數(shù)0:運(yùn)算結(jié)果(指低8位)中的‘1’的個(gè)數(shù)為奇數(shù)控制位:由指令設(shè)置,使系統(tǒng)設(shè)置情況操作7.方向控制位DF(DF)置1:從高地址單元到低地址單元處理串置0:從低地址單元到高地址單元處理串8.中斷允許控制位IF(IF)置1開中斷:允許CPU接受外部中斷請(qǐng)求置0關(guān)中斷:禁止CPU接受外部中斷請(qǐng)求9.追蹤控制位TF(TF)置1:CPU處于單步執(zhí)行程序狀態(tài),即CPU每執(zhí)行一條指令產(chǎn)生1號(hào)中斷。用于調(diào)試程序置0:CPU連續(xù)執(zhí)行程序32位寄存器2.3存儲(chǔ)器存儲(chǔ)器是用來存放程序、數(shù)據(jù)、中間結(jié)果和最終結(jié)果的記憶裝置。
存儲(chǔ)單元的地址和內(nèi)容
存儲(chǔ)器以字節(jié)(8bit)為單位存儲(chǔ)信息
每個(gè)字節(jié)單元有一個(gè)地址,從0編號(hào),順序加1
地址也用二進(jìn)制數(shù)表示(無符號(hào)整數(shù),寫成十六進(jìn)制)
16位二進(jìn)制數(shù)可表示216=65536=64K個(gè)地址0000H~FFFFH
字長(zhǎng)16位,一個(gè)字要占用相繼的兩個(gè)字節(jié)
低位字節(jié)存入低地址,高位字節(jié)存入高地址
機(jī)器以偶地址訪問(讀/寫)存儲(chǔ)器
字單元地址用它的低地址來表示76543210100111110000H(0000H)=9FH001001100001H(0001H)=26H000111100002H110101110003H存儲(chǔ)器1514131211109876543210字高位字節(jié)低位字節(jié)1001111100100110(0000H)=269FH
存儲(chǔ)器地址的分段
20根地址線220=1024K=1M=1048576地址范圍00000H~FFFFFH
小段:每16個(gè)字節(jié)為一小段,共有64K個(gè)小段
00000H~0000FH00010H~0001FH00020H~0002FH…FFFF0H~FFFFFH
存儲(chǔ)器分段:段起始地址必須是某一小段的首地址,段的大小可以是64K范圍內(nèi)的任意字節(jié)。物理地址:每個(gè)存儲(chǔ)單元的唯一的20位地址
段基值:段起始地址的高16位
偏移量:段內(nèi)相對(duì)于段起始地址的位移量(16位)(有效地址EA)
物理地址=16d
段基值+偏移量16位段基值16位偏移量0000+20位物理地址
IBMPC中有4個(gè)專門存放段地址的段寄存器(16位)代碼段寄存器CS數(shù)據(jù)段寄存器DS堆棧段寄存器SS附加段寄存器ES例:(DS)=3000H,EA=1234H,
物理地址=16d
(DS)+EA=31234H存儲(chǔ)器8K代碼2K數(shù)據(jù)256堆棧02000H04800H04000H0200H0400H0480H保護(hù)模式下的存儲(chǔ)管理堆棧在內(nèi)存中開辟的一片連續(xù)的存儲(chǔ)區(qū)作用:存放數(shù)據(jù)特點(diǎn):(1)一端固定,另一端活動(dòng)(2)存取數(shù)據(jù)的原則:“先進(jìn)后出”(3)進(jìn)或出棧只能是字?jǐn)?shù)據(jù),不能是字節(jié)數(shù)據(jù)(4)棧的最大容量64KB(5)SP總是指向棧頂,它的內(nèi)容是相對(duì)SS的地址偏移量(6)數(shù)據(jù)入棧時(shí),棧頂均由高地址向低地址變化數(shù)據(jù)出棧時(shí),棧頂均由低地址向高地址變化2.4堆棧2.出棧指令
格式:POPDST;DST表示的目的操作數(shù)地址功能:將當(dāng)前棧頂一個(gè)字?jǐn)?shù)據(jù)彈出到16位寄存器(除CS外)或內(nèi)存單元中操作:([SP])DST低8位
(SP)+1SP([SP])DST高8位
(SP)+1SP例:POPBXPOPDL×棧頂操作指令1.進(jìn)棧指令
格式:PUSHSRC;SRC表示源操作數(shù)地址功能:將SRC表示的寄存器或內(nèi)存單元中的字?jǐn)?shù)據(jù)壓入棧頂操作:(SP)-1SP;修改棧頂指針的內(nèi)容(SRC)高8位↓(SP);送高8位字節(jié)數(shù)據(jù)(SP)-1SP;又修改棧頂指針的內(nèi)容(SRC)低8位↓(SP);送低8位字節(jié)數(shù)據(jù)例:PUSHAXPUSHAL×
50一.立即尋址方式格式:n
;n為一常數(shù)(立即數(shù))特點(diǎn):n
本身是需要尋找的操作對(duì)象。它緊跟指令存于內(nèi)存代碼段中。例:MOVBX,10
MOVAH,‘A’
MOVAX,3064H3.1尋址方式51內(nèi)存::MOV64H30H:低高代碼段CPU:
AX
AHAL注:?
立即數(shù)只能作雙操作數(shù)指令的源操作數(shù),不能作目的操作數(shù)。
?
立即數(shù)不能作單操作數(shù)指令的操作數(shù)。如:MOV100H,AX×INC50
×
?
立即數(shù)送入目的操作數(shù)中,注意溢出如:MOVAL,-90H×
52二.直接尋址方式?
格式:段寄存器:[EA](其中:段寄存器為DS,ES,SS之一)或含有變量的地址表達(dá)式。?
特點(diǎn):
?
操作數(shù)的地址偏移量EA,或變量地址表達(dá)式的EA直接包含在指令中,與操作碼一起放在代碼段中。
?
操作數(shù)對(duì)象一般不作特別說明,存放在當(dāng)前數(shù)據(jù)段中,其物理地址求法為:(DS)0000+EA
4例:MOVAX,DS:[2000H];((DS)+2000H)AX
設(shè)執(zhí)行前(DS)=3000H4(32000H)=2415H
則執(zhí)行后(32000H)字
AX即(AX)=2415H
若
MOVAL,DS:[2000H]
則(32000H)字節(jié)
AL即(AL)=15H53
:
MOV0000
00H
4
20H+::
15H
32000H
24H
32001H:代碼段數(shù)據(jù)段3000H內(nèi)存這說明:?段寄存器:[EA]這種直接尋址方式?jīng)]有類型;?含有變量地址表達(dá)式的形式有類型,其類型由變量類型決定。例:MOVAX,ES:[2000H];((ES)+2000H)AX
段跨越符4
MOVSS:[1000H],BX;(BX)
(SS)+1000H
4
MOVBUF,AXMOV[BUF],AXDS54寄存器尋址方式*—操作數(shù)在指定的寄存器中
MOVAX,BXMOVAL,BH*字節(jié)寄存器只有AHALBHBLCHCLDHDL*SRC和DST的字長(zhǎng)一致
MOVAH,BX*CS不能用MOV指令改變
MOVCS,AX三、寄存器尋址方式55格式:[R];其中R為BX,BP,SI,DI之一,不允許是其它寄存器。特點(diǎn):操作對(duì)象在內(nèi)存中,操作對(duì)象的EA在BX,BP,SI,DI之一中。(不在內(nèi)存)即:EA=(BX)(BP)(SI)(DI)
注:(1)若選擇[BX],[SI],[DI]之一,且缺省段跨越符,則對(duì)象在當(dāng)前的數(shù)據(jù)段中;四、寄存器間接尋址方式56例:MOVAX,[BX];((DS)+(BX))AX
4
若執(zhí)行前(DS)=2000H,(BX)=1000H:MOVAX,[BX]DSBX::40A0H21000H+50H21001H:
數(shù)據(jù)段2000H1000H50H0A0H內(nèi)存AX(2)若缺省段跨越符,且BP作間址寄存器,則對(duì)象存放在當(dāng)前堆棧段中。如:MOVBX,[BP];((SS)+(BP))BX
457(3)若指定段跨越符,則不管BP,BX,SI,DI之一作變址器,都取相應(yīng)段中數(shù)據(jù)。如:MOVES:[BP],AX;(AX)(ES)+(BP)MOVAX,ES:[BX];((ES)+(BX))AX
4注:?
間址器一定要是BP,BX,SI,DI之一如:MOVCX,[AX]×
?
間接尋址方式表示對(duì)象的地址,并不能表示對(duì)象的類型。58格式:X[R];其中R為BX,BP,SI,DI之一。
X為一整常數(shù)或變量地址表達(dá)式。特點(diǎn):?
操作對(duì)象在內(nèi)存中
?
EA為R的內(nèi)容和X之和(即:X在代碼段中,EA另一部分在R中)。EA=X+(SI)X+(DI)X+(BX)X+(BP)缺省段跨越符的物理地址(DS)+(SI)+X
4(DI)+X(BX)+X(SS)+(BP)+X
4五.相對(duì)尋址方式59例:MOVCX,-6[BX];((DS)+(BX)-6)CX
設(shè)執(zhí)行前:(BX)=16H,(DS)=2000H,(20010H)=3789H
執(zhí)行:執(zhí)行后(CX)=3789H,其他寄存器內(nèi)容不變。:DSBX
MOVCX
OFFH
OFAH+:89H20010H37H20011H:代碼段數(shù)據(jù)段2000H16H-6例:MOV[BX+7],BXMOVDL,4[AX]×MOVBX,ES:ABC[SI];其中ABC為變量名,它表示變量到所在段段首址的EA60格式:[BR+IR]
其中:BR為基址寄存器,僅為BX和BP之一;
IR為變址寄存器,僅為SI和DI之一。特點(diǎn):?
操作對(duì)象在內(nèi)存中。
?
操作數(shù)的EA=(BX)+(SI)或(DI)(BP)+(SI)或(DI)
?缺省段跨越符,其物理地址:
(DS)+(BX)+(SI)或DI
4(SS)+(BP)+(SI)或DI
4例:MOVAX,[BX+BP]×MOV[SI+DI],CX×MOV[BX+CX],AX×六.基址變址尋址方式61例:MOVAX,[BX+DI]
MOVAX,[BX][DI]
設(shè)執(zhí)行前(DS)=2100H(BX)=158H(DI)=10A5H(221FDH)=1234HEA=158H+10A5H=11FDH∴物理地址:(DS)+EA=21000H+11FDH=221FDH
4:DSBXDI指令碼
:4
:+34H221FDH12H221FEH:2100H158H10A5H數(shù)據(jù)段執(zhí)行后:(AX)=1234H當(dāng)MOVAL,[BX+DI];(221FDH)字節(jié)=34H
AL即(AL)=34H62格式:X[BR+IR]
其中:BR為基址器,僅為BX,BP之一;
IR為變址器,僅為SI,DI之;
X為一整常數(shù)或已定義的變量名。特點(diǎn):
?對(duì)象在內(nèi)存中;
?操作數(shù)的EA=(BX)+(SI)或(DI)+X(X為變量名,則該變量名到所在段的段首的字節(jié)個(gè)數(shù))(BP)+(SI)或(DI)+X七.相對(duì)基址變址尋址方式63例:MOVAX,8[BX+SI]
執(zhí)行前:(AX)=45H,(BX)=30H,(SI)=20H,(DS)=1000H(10058H)=99H:
指令碼
8::99H0:代碼段數(shù)據(jù)段
DS
BX
SI
+10058H10059H
執(zhí)行后:(10058H)AX(AX)=99H1000H30H20H例:MOVDX,M[BX+DI];設(shè)M已定義在數(shù)據(jù)段中
MOVSS:[BX+SI+7],CX;物理地址=(SS)+(BX)+(SI)+7
464習(xí)題:1.分別指出下列指令中源操作數(shù)和目的操作數(shù)的尋址方式
①M(fèi)OVSI,’C’④ADDCX,DS:[10H]②MOV[BX+3],AX⑤MOVDL,[BP+DI]③SUB[BX][SI],AL⑥MOV[BX],AX2.指出下列各尋址中的錯(cuò)誤,并說明原因
①M(fèi)OV100H,AX④MOV[BX+BP],[SI]②MOV[CX],AH⑤ADDAX,[DI+SI]③ADDAX,BL⑥MOVAH,1000⑦POPCL3.已(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=0ADH,(BX)=100H,(BP)=10H,試指出下列源操作數(shù)的尋址方式是什么?其物理地址值是什?(1)MOVAX,DS:[100H](2)MOVBX,[SI](3)MOVCX,[BX+10H](4)MOVAX,[BX][SI](5)MOVCL,[BP+4](6)MOVCH,ES:[BP+SI]65
數(shù)據(jù)傳送指令
算術(shù)運(yùn)算指令
邏輯運(yùn)算指令
串操作指令
程序轉(zhuǎn)移指令
處理機(jī)控制指令注意:1.指令的基本功能
2.指令的執(zhí)行對(duì)標(biāo)志位的影響
3.對(duì)尋址方式或寄存器使用的限制和隱含使用的情況3.2指令系統(tǒng)66
功能:負(fù)責(zé)把數(shù)據(jù),地址或立即數(shù)送到寄存器或內(nèi)存單元中。
1.傳送指令:MOV
格式:MOVDEST,SC功能:(SRC)DEST立即數(shù)傳送到通用寄存器或存儲(chǔ)單元MOVCL,25H;字節(jié)傳送MOVAX,4321H;字傳送MOVDA_BYTE,34H;字節(jié)傳送
MOVDA_WORD,4321H;字傳送
注意:立即數(shù)只能出現(xiàn)在源操作數(shù)位置,不能作為目的操作數(shù)
一.數(shù)據(jù)傳送指令67寄存器之間的傳送MOVBL,DL;字節(jié)傳送MOVDX,CX;字傳送MOVES,AX;通用寄存器與段寄存器之間傳送注意:段寄存器CS僅只能作源操作數(shù),不能作目的操作數(shù)。
68寄存器與存儲(chǔ)單元之間的傳送MOVDL,DA_BYTE;字節(jié)傳送MOVAX,DA_WORD;字傳送MOVDA_BYTE,CL;字節(jié)傳送MOVDA_WORD,DX;字傳送注意:兩個(gè)存儲(chǔ)單元之間不能用一條MOV指令直接完成數(shù)據(jù)傳送。立即數(shù)不能直接傳送給段寄存器,且段寄存器之間亦不能進(jìn)行直接傳送。69立即數(shù)存儲(chǔ)器通用寄存器AXBXCXDXBPSPSIDICS段寄存器DSESSS圖3.7MOV指令的數(shù)據(jù)傳送方向70格式:XCHGDEST,SRC功能:(SRC)?(DEST)例:XCHGAL,AH;(AL)?(AH)注:SRC或DEST均不能為立即數(shù)二.交換指令71
標(biāo)志送AH指令:LAHF
執(zhí)行操作:(AH)
(PSW的低字節(jié))
AH送標(biāo)志寄存器指令:SAHF
執(zhí)行操作:(PSW的低字節(jié))
(AH)
標(biāo)志進(jìn)棧指令:PUSHF
執(zhí)行操作:(SP)
(SP)-2((SP)+1,(SP))
(PSW)
標(biāo)志出棧指令:POPF
執(zhí)行操作:(PSW)
(SP)+1,(SP))(SP)
(SP)+2*影響標(biāo)志位三.標(biāo)志寄存器傳送指令72
有效地址送寄存器指令:LEAREG,SRC
執(zhí)行操作:(REG)
SRC
指針?biāo)图拇嫫骱虳S指令:LDSREG,SRC
執(zhí)行操作:(REG)
(SRC)(DS)
(SRC+2)4個(gè)相繼字節(jié)
寄存器(通常是SI)、DS
指針?biāo)图拇嫫骱虴S指令:LESREG,SRC
執(zhí)行操作:(REG)
(SRC)(ES)
(SRC+2)4個(gè)相繼字節(jié)
寄存器(通常是DI)、ES四.地址傳送指令73例:LEABX,[BX+SI+0F62H]
例:LDSSI,[10H]例:LESDI,[BX]例:(DS):1000H40H00H
00H
30H
TABLEMOVBX,TABLE;(BX)=0040HMOVBX,OFFSETTABLE;(BX)=1000HLEABX,TABLE;(BX)=1000HLDSBX,TABLE;(BX)=0040H;(DS)=3000HLESBX,TABLE;(BX)=0040H;(ES)=3000H注意:
*
不影響標(biāo)志位
*REG不能是段寄存器
*SRC必須為存儲(chǔ)器尋址方式74換碼指令:XLAT或XLATOPR執(zhí)行操作:(AL)
((BX)+(AL))例:MOVBX,OFFSETTABLE;(BX)=0040HMOVAL,3XLATTABLE
指令執(zhí)行后(AL)=33H注意:*
不影響標(biāo)志位*字節(jié)表格(長(zhǎng)度不超過256)
首地址(BX)*
需轉(zhuǎn)換代碼(AL)(BX)
30HF004031HF0041(AL)=332HF004233HF0043TABLE(DS)=F000H五.換碼指令75
加法指令
減法指令
乘法指令
除法指令
十進(jìn)制調(diào)整指令
3.2.2算術(shù)指令76
加法指令
加法指令:ADDDST,SRC
執(zhí)行操作:(DST)
(SRC)+(DST)
帶進(jìn)位加法指令:ADCDST,SRC
執(zhí)行操作:(DST)
(SRC)+(DST)+CF
加1指令:INCOPR
執(zhí)行操作:(OPR)
(OPR)+1注意:
*
除INC指令不影響CF標(biāo)志外,均對(duì)條件標(biāo)志位有影響。77加法指令對(duì)條件標(biāo)志位(CF/OF/ZF/SF)的影響:CF位表示無符號(hào)數(shù)相加的溢出。OF位表示帶符號(hào)數(shù)相加的溢出。1結(jié)果為負(fù)0否則SF=1結(jié)果為00否則ZF=1和的最高有效位有向高位的進(jìn)位0否則CF=1兩個(gè)操作數(shù)符號(hào)相同,而結(jié)果符號(hào)與之相反0否則OF=78無符號(hào)數(shù)溢出00000111+1111101100000010帶:(+7)+(-5)=+2OF=0無:7+251=2CF=1帶符號(hào)數(shù)和無符號(hào)數(shù)都不溢出00000100+0000101100001111帶:(+4)+(+11)=+15OF=0無:4+11=15CF=0帶符號(hào)數(shù)溢出00001001+0111110010000101帶:(+9)+(+124)=-123OF=1無:9+124=133CF=0帶符號(hào)數(shù)和無符號(hào)數(shù)都溢出10000111+1111010101111100帶:(-121)+(-11)=+124OF=1無:135+245=124CF=1n=8bit帶符號(hào)數(shù)(-128~127)無符號(hào)數(shù)(0~255)79例:雙精度數(shù)的加法
(DX)=0002H(AX)=0F365H
(BX)=0005H(CX)=0E024H
指令序列
(1)ADDAX,CX
(2)ADCDX,BX
(1)執(zhí)行后,(AX)=0D389HCF=1OF=0SF=1ZF=0
(2)執(zhí)行后,(DX)=0008HCF=0OF=0SF=0ZF=080
減法指令
減法指令:SUBDST,SRC
執(zhí)行操作:(DST)
(DST)-(SRC)
帶借位減法指令:SBBDST,SRC
執(zhí)行操作:(DST)
(DST)-(SRC)-CF
減1指令:DECOPR
執(zhí)行操作:(OPR)
(OPR)-1
求補(bǔ)指令:NEGOPR
執(zhí)行操作:(OPR)
-(OPR)
比較指令:CMPOPR1,OPR2
執(zhí)行操作:(OPR1)-(OPR2)注意:*
除DEC指令不影響
CF標(biāo)志外,均對(duì)條件標(biāo)志位有影響。81減法指令對(duì)條件標(biāo)志位(CF/OF/ZF/SF)的影響:CF位表示無符號(hào)數(shù)減法的溢出。OF位表示帶符號(hào)數(shù)減法的溢出。NEG指令對(duì)CF/OF的影響:CF位:操作數(shù)為0時(shí),求補(bǔ)的結(jié)果使CF=0,否則CF=1。OF位:字節(jié)運(yùn)算對(duì)-128求補(bǔ)或字運(yùn)算對(duì)-32768求補(bǔ)時(shí)OF=1,否則OF=0。1被減數(shù)的最高有效位有向高位的借位0否則CF=1兩個(gè)操作數(shù)符號(hào)相反,而結(jié)果的符號(hào)與減數(shù)相同0否則OF=1減法轉(zhuǎn)換為加法運(yùn)算時(shí)無進(jìn)位0否則CF=或82例:x、y、z均為雙精度數(shù),分別存放在地址為X,X+2;
Y,Y+2;Z,Z+2的存儲(chǔ)單元中,用指令序列實(shí)現(xiàn)
w
x+y+24-z,并用W,W+2單元存放w。
MOVAX,XMOVDX,X+2ADDAX,YADCDX,Y+2;x+yADDAX,24
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球丙二醛行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)低空洞焊膏行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025辦公寫字樓出租合同范本2
- 活牛購(gòu)銷合同
- 廣場(chǎng)商鋪?zhàn)赓U合同
- 2025北京市非居民供熱采暖合同(合同版本)
- 文化傳播項(xiàng)目合同
- 門窗安裝工承包合同范本
- 提升跨部門協(xié)作能力的技能培訓(xùn)
- 合同協(xié)議框架性合作協(xié)議
- 創(chuàng)業(yè)計(jì)劃路演-美甲
- 梁山伯與祝英臺(tái)小提琴譜樂譜
- 我國(guó)全科醫(yī)生培訓(xùn)模式
- 《摔跤吧爸爸》觀后感PPT
- 機(jī)構(gòu)編制重要事項(xiàng)的報(bào)告范文(5篇)
- DBJ51-T 188-2022 預(yù)拌流態(tài)固化土工程應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 《長(zhǎng)津湖》電影賞析PPT
- 多維閱讀第10級(jí) who is who 看看都是誰(shuí)
- 滑雪運(yùn)動(dòng)介紹
- 高二下學(xué)期英語(yǔ)閱讀限時(shí)訓(xùn)練(一)
- 半導(dǎo)體制造工藝-13薄膜沉積(下)綜述課件
評(píng)論
0/150
提交評(píng)論