資源描述:
《主講人 劉雪潔.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、主講人劉雪潔AssemblyLanguageProgramming匯編語(yǔ)言程序設(shè)計(jì)0第2章80x86的指令系統(tǒng)2.1指令格式2.2尋址方式2.3數(shù)據(jù)傳送類(lèi)指令2.4算術(shù)運(yùn)算類(lèi)指令2.5位操作類(lèi)指令2.6串操作類(lèi)指令2.7控制轉(zhuǎn)移類(lèi)指令2.8處理機(jī)控制類(lèi)指令12.1指令格式計(jì)算機(jī)是通過(guò)執(zhí)行指令序列來(lái)解決問(wèn)題的。計(jì)算機(jī)的指令系統(tǒng)就是指該計(jì)算機(jī)能夠執(zhí)行的全部指令的集合。指令的一般格式:[標(biāo)號(hào):]操作符OPD,OPS[;注釋]算術(shù)運(yùn)算和位操作類(lèi)指令的部分單操作數(shù)指令的格式:[標(biāo)號(hào):]操作符OPD[;注釋]22.2尋址方式2.2.1立即尋址2.2.2寄存器尋址2.2.3直接尋址2.2.4寄存器間接尋址
2、2.2.5變址尋址2.2.6基址加變址尋址2.2.7跨段問(wèn)題2.2.8與轉(zhuǎn)移地址有關(guān)的尋址方式32.2.1立即尋址立即尋址方式中,指令操作碼和操作數(shù)都在存儲(chǔ)器代碼段中。立即數(shù)可以是用8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù)。功能:常用于給寄存器賦初值,只能用于源操作數(shù)字段,且源操作數(shù)與目的操作數(shù)長(zhǎng)度應(yīng)一致。4【例】MOVAX,10執(zhí)行后(AX)=?該例中源操作數(shù)為立即尋址方式,立即數(shù)為10,存放在指令的下一單元。圖形表示:執(zhí)行:10→AX執(zhí)行后:(AX)=000AH52.2.2寄存器尋址寄存器尋址方式的操作數(shù)在指令指明的寄存器中?!纠肯铝谐绦驁?zhí)行后,(AX)=?,(BX)=?MOVAX,123
3、4HMOVBX,5678HADDAX,BX該程序中MOV指令為數(shù)據(jù)傳送指令操作符,ADD指令為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、二條指令A(yù)X、BX皆為目的操作數(shù)地址,為寄存器尋址方式。第三條指令中,AX為目的操作數(shù)地址,BX為源操作數(shù)地址。源地址和目的地址皆為寄存器尋址方式。6圖形表示:執(zhí)行:1234H→AX5678H→BX(AX)+(BX)→AX執(zhí)行后:(AX)=68ACH,(BX)=5678H72.2.3直接尋址匯編格式:①含有變量的地址表達(dá)式。②段寄存器名:[EA]。功能:指令下一字單元的內(nèi)容是操作數(shù)的有效(偏移)地址EA。圖形表示:8【例】寄存器和存儲(chǔ)器內(nèi)容為:(AX)
4、=1212H,BUF為數(shù)據(jù)段定義的變量,其偏移地址是2000H,(DS)=3000H,(32000H)=4545H。執(zhí)行指令:MOVAX,BUF(MOVAX,[2000H])執(zhí)行后:(AX)=?圖形表示:執(zhí)行:(32000H)→AX執(zhí)行后:(AX)=4545H92.2.4寄存器間接尋址寄存器間接尋址方式中,寄存器的內(nèi)容為操作數(shù)的偏移地址EA,操作數(shù)在存儲(chǔ)器中。匯編格式:[R]功能:操作數(shù)存放在存儲(chǔ)器,寄存器R存放操作數(shù)的偏移地址EA。10偏移地址EA計(jì)算方法如下:EA=[SI]SI作間址寄存器。[DI]DI作間址寄存器。[BX]BX作間址寄存器。[BP]BP作間址寄存器。11執(zhí)行指令:MOV
5、AX,[BP]執(zhí)行后:(AX)=?圖形表示如下:執(zhí)行:(20030H)→AX執(zhí)行后:(AX)=1234H【例】寄存器和存儲(chǔ)器內(nèi)容分別為:(AX)=0,(BP)=0030H,(SS)=2000H,(20030H)=1234H122.2.5變址尋址變址尋址方式操作數(shù)的偏移地址EA為寄存器的內(nèi)容加位移量,操作數(shù)在存儲(chǔ)器中,又稱(chēng)為寄存器相對(duì)尋址。匯編格式:X[R](X表示位移量,是8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,寄存器R的內(nèi)容加位移量X為操作數(shù)的偏移地址EA。圖形表示如下:13偏移地址EA計(jì)算方法如下:14【例】設(shè)執(zhí)行前:(AX)=0040H,(BX)=0030H,(
6、DS)=2000H,(20036H)=0050H執(zhí)行指令:ADD6[BX],AX執(zhí)行后:(AX)=?,(BX)=?,(DS)=?,(20036H)=?圖形表示如下:執(zhí)行:(20036H)+(AX)→20036H執(zhí)行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。152.2.6基址加變址尋址基址加變址尋址方式中,操作數(shù)的偏移地址EA是指令中基址寄存器內(nèi)容、變址寄存器內(nèi)容、位移量X三項(xiàng)之和,操作數(shù)在存儲(chǔ)器中。匯編格式:X[BR+IR]功能:操作數(shù)存放在存儲(chǔ)器,BR的內(nèi)容加IR的內(nèi)容加位移量X是操作數(shù)的偏移地址EA。16操作數(shù)偏移地址EA計(jì)算方法
7、如下圖形表示:172.2.7跨段問(wèn)題按前述規(guī)定:若選用BP作間址基址寄存器、變址寄存器或基址寄存器,則操作數(shù)在堆棧段,操作數(shù)的物理地址PA由堆棧段寄存器SS的內(nèi)容左移4位與偏移地址EA相加后形成;否則,操作數(shù)在數(shù)據(jù)段,操作數(shù)的物理地址PA由數(shù)據(jù)段寄存器DS的內(nèi)容左移4位與偏移EA相加后形成。該規(guī)定為系統(tǒng)默認(rèn)狀態(tài)。當(dāng)要否定默認(rèn)狀態(tài),到非約定段尋找操作數(shù)時(shí),必須用跨段前綴指明操作數(shù)的段寄存器名。18匯編格式:段寄