已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4.1.3 8086/8088指令系統(tǒng),8086/8088CPU指令系統(tǒng)包含有133條基本指令。按其功能可以分為6類(lèi),它們是: 數(shù)據(jù)傳送類(lèi)指令 算術(shù)運(yùn)算類(lèi)指令 邏輯運(yùn)算與位移類(lèi)指令 字符串指令 控制轉(zhuǎn)移類(lèi)指令 處理器控制類(lèi)指令。,一、 數(shù)據(jù)傳送類(lèi)指令,數(shù)據(jù)傳送類(lèi)指令時(shí)將數(shù)據(jù)、地址或立即數(shù)傳送到寄存器或存儲(chǔ)器單元中??赏瓿杉拇嫫髋c寄存器之間、寄存器與存儲(chǔ)器之間、寄存器與I/O端口之間的字節(jié)或字傳送。它又可分為通用數(shù)據(jù)傳送指令、輸入/輸出指令、目標(biāo)地址傳送指令和標(biāo)志傳送指令四組。特點(diǎn):除SAHF和POPF不影響標(biāo)志寄存器內(nèi)容。 (一)通用數(shù)據(jù)傳送指令 1. 最基本的傳送指令 指令格式及操作: MOV dst,src ;(dst)(src) 將源操作數(shù)s指定的內(nèi)容送到d目的操作數(shù) dst 是目的操作數(shù),它可以是存儲(chǔ)器、通用寄存器(不能為IP)和段寄存器(不能為CS),不能為立即數(shù)。 Src 是源操作數(shù),它可以是存儲(chǔ)器、通用寄存器、段寄存器和立即數(shù)。,需說(shuō)明一點(diǎn),對(duì)于代碼段寄存器CS和指令指針寄存器IP,通常無(wú)需用戶利用傳送指令改變其中的內(nèi)容。但是CS可以作為源操作數(shù)。,16 位,MOVE指令需要注意的問(wèn)題: MOVE指令可傳送8位數(shù)據(jù),也可傳送16位數(shù)據(jù)。 MOVE指令中的兩操作數(shù)s和d,必用1個(gè)寄存器,不允許同時(shí)為存儲(chǔ)單元。 不能用CS和IP做目的操作數(shù)。 不允許段寄存器之間直接數(shù)據(jù)傳送。 不允許立即數(shù)做目的操作數(shù)。 不能向段寄存器送立即數(shù)。,2.堆棧操作指令 堆棧操作指令是用來(lái)完成壓入和彈出堆棧操作的。80868088指令系統(tǒng)中提供了完成這兩種操作的相應(yīng)指令。 壓入堆棧指令 指令格式及操作: PUSH src ;(SP) (SP)-2, (SP)+1:(SP) (src) src 源操作數(shù)可以是寄存器操作數(shù)和存儲(chǔ)器操作數(shù),且必須是16位的操作數(shù),但不能是立即數(shù)。, 彈出堆棧指令 指令格式及操作: POP dst ; (dst) (SP)+1:(SP), (SP) (SP)+2 dst 目的操作數(shù)可以是寄存器操作數(shù)和存儲(chǔ)器操作數(shù),且必須是16位的操作數(shù),但不能是立即數(shù)。,特點(diǎn): s和d可以是16位寄存器或存儲(chǔ)器兩相鄰單元; 堆棧按字操作; 每執(zhí)行一條入棧指令,堆棧地址指針SP減2,入棧的數(shù)據(jù)位于棧頂; 高位字節(jié)先入棧,放在高位地址單元,低位字節(jié)后入棧,放在較低地址單元;先進(jìn)先出原則; 執(zhí)行彈出指令時(shí),過(guò)程相反,棧頂指針的值加2; CS段寄存器的值可以入棧,但不能反過(guò)來(lái)彈出一個(gè)字到CS,3.交換指令 將源操作數(shù)和目的操作數(shù)(字或字節(jié))相互對(duì)應(yīng)交換位置。 指令格式及操作: XCHG opr1, opr2 ;(opr1) (opr2),4.字節(jié)轉(zhuǎn)換指令 通過(guò)查表來(lái)完成代碼轉(zhuǎn)換,用于實(shí)現(xiàn)字節(jié)翻譯的功能。 指令格式及操作: XLAT src_table ;(AL) (BX)+(AL) XLAT指令是用來(lái)將一種字節(jié)代碼轉(zhuǎn)換成另一種字節(jié)代碼。執(zhí)行的結(jié)果放在AL中。 使用指令前: BX寄存器的內(nèi)容指向表格首址;AL中存放待查的碼,即某一項(xiàng)與表首地址的距離。 XLAT指令還可以有以下幾種表示形式: XLAT ;不寫(xiě)操作數(shù) XLATB ;有B就不允許再寫(xiě)操作數(shù)。 XLAT ES:src_table ;重設(shè)段寄存器為ES,例在內(nèi)存的數(shù)據(jù)段有一張16進(jìn)制數(shù)的ASCII碼表,其首地址為Hex_table,如下圖所示,為了查出第10個(gè)元素, 即十六進(jìn)制數(shù)A的ASCII碼,則可用以下幾條指令實(shí)現(xiàn): MOV BX, OFFSET Hex_tale ;(BX) 表首址 MOV AL, 0AH ;(AL) 序號(hào) XLAT Hex_table ;查表轉(zhuǎn)換,BX: 1000H,AX: 000AH,Hex_table,(二) 輸入/輸出指令 只能用累加器作為執(zhí)行I/0數(shù)據(jù)傳送的機(jī)構(gòu)。輸入輸出指令可以分為兩大類(lèi):一類(lèi)是直接端口地址的輸入輸出指令:一類(lèi)是通過(guò)DX寄存器間接端口地址的輸入輸出指令。 輸入指令 直接尋址的輸入指令 尋址范圍0-255(少于8位地址) 指令格式及操作: IN acc, port ;(acc) (port),間接尋址的輸入指令 尋址范圍0-65535(少于或超過(guò)8位地址) 指令格式及操作: IN acc, DX ;(acc) (DX) 輸出指令 直接尋址的輸出指令 指令格式及操作: OUT port, acc ; (port) (acc) 間接尋址的輸出指令 指令格式及操作: OUT DX, acc ; (DX) (acc),(三)目標(biāo)地址傳送指令 1. 取有效地址指令 指令格式: LEA reg16, mem 此指令的功能是將存放源操作數(shù)的16位偏移地址(即有效地址EA)送到一個(gè)16位的通用寄存器中。即源操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù),目的操作數(shù)必須是一個(gè)通用寄存器操作數(shù)。例如: LEA BX, buffer LEA AX, BPDI LEA DX, betaBXSI 注意LEA指令和MOV指令的異同。,不同: LEA BX, buffer ;將存儲(chǔ)器buffer的偏 移地址送到BX MOV BX, buffer ;將存儲(chǔ)器buffer的內(nèi) 容傳送到BX 相同: LEA BX, buffer MOV BX, OFFSET buffer 以上兩條指令都是將存儲(chǔ)器buffer的偏移地址送到BX。其中OFFSET buffer 表示存儲(chǔ)器偏移地址。,2. 地址指針裝入DS指令 指令格式: LDS reg16, mem32 此指令的功能是將源操作數(shù)所對(duì)應(yīng)的雙字長(zhǎng)的內(nèi)存單元中的高字內(nèi)容(一般為16位段基址)送入DS,低字內(nèi)容(一般為偏移地址)送入指令所指定的寄存器中。例如: LDS DI, 2130H,3. 地址指針裝入ES指令 指令格式: LES reg16, mem32 此指令的功能是將源操作數(shù)所對(duì)應(yīng)的雙字長(zhǎng)的內(nèi)存單元中的高字內(nèi)容(一般為16位段基址)送入ES,低字內(nèi)容(一般為偏移地址)送入指令所指定的寄存器中。例如: LES DI, 2130H,(四) 標(biāo)志傳送指令 1.取標(biāo)志指令 將標(biāo)志寄存器F的低字節(jié)傳送到AH中。 指令格式: LAHF 2.置標(biāo)志指令 將AH寄存器的內(nèi)容傳送到標(biāo)志寄存器F的低字節(jié)。 通過(guò)AH對(duì)標(biāo)志寄存器的SF、ZF、AF、PF、CF標(biāo)志位置位。 指令格式: SAHF,OF,DF,IF,TF,SF,ZF,AF,PF,CF,FLAG,AH,LAHF和SAHF指令操作示意圖,3.標(biāo)志壓入堆棧指令 將16位標(biāo)志寄存器F的內(nèi)容入棧保護(hù)。 指令格式及操作: PUSHF ;(SP) (SP)-2, ;(SP)+1;(SP) (FLAG) 4.標(biāo)志彈出堆棧指令 將當(dāng)前棧頂和次棧頂中的數(shù)據(jù)彈出,送回標(biāo)志寄存器當(dāng)中。 指令格式及操作: POPF ; (FLAG) (SP)+1;(SP), ; (SP) (SP)+2 經(jīng)常成對(duì)出現(xiàn),用在子程序和中斷處理程序的首尾,用來(lái)保護(hù)和恢復(fù)主程序涉及的標(biāo)志寄存器的內(nèi)容。 必要時(shí)可修改標(biāo)志寄存器的內(nèi)容。,二、算術(shù)運(yùn)算指令,80868088有豐富的算術(shù)運(yùn)算指令,而且可以處理4種類(lèi)型的數(shù)據(jù),無(wú)符號(hào)/有符號(hào)、8/16位二進(jìn)制數(shù)、無(wú)符號(hào)壓縮型/非壓縮型十進(jìn)制。 根據(jù)運(yùn)算結(jié)果影響標(biāo)志位,有時(shí)要利用某些標(biāo)志位才能得到正確的結(jié)果。 分成5小類(lèi): 加法 減法 乘法 除法 十進(jìn)制調(diào)整指令,1.加法指令,在微處理器中,沒(méi)有專(zhuān)用的BCD碼運(yùn)算指令,使用二進(jìn)制運(yùn)算指令進(jìn)行BCD碼數(shù)的運(yùn)算,然后用BCD碼運(yùn)算調(diào)整指令進(jìn)行調(diào)整,重新得到BCD碼的結(jié)果。,BCD調(diào)整指令,ASCII碼調(diào)整指令,(dst) (dst) + 1,(dst) (dst)+(src)+(CF),(dst) (dst) +(src),操作功能,1,C,P,S,Z,A,DAA,AAA,INC dst,ADC dst, src,ADD dst, src,O,標(biāo)志位影響,指令格式, 功能:源操作數(shù)和目的操作數(shù)相加,結(jié)果送到目的操作數(shù)。 源操作數(shù):通用寄存器、存儲(chǔ)器、立即數(shù) 目的操作數(shù):通用寄存器、存儲(chǔ)器 提示:目的操作數(shù)不能為立即數(shù),源操作數(shù)和目的操作數(shù)不能同時(shí)為存儲(chǔ)器。,ADD dst, src,(dst) (dst) +(src), 功能:源操作數(shù)和目的操作數(shù)相加外,再加上進(jìn)位標(biāo)志CF,結(jié)果送到目的操作數(shù)。 CF將從新根據(jù)結(jié)果置成新的狀態(tài),ADC指令一般用于16位以上的多字節(jié)數(shù)相加。,ADC dst, src,(dst) (dst) +(src)+1, 功能:將目的操作數(shù)當(dāng)作無(wú)符號(hào)數(shù),加1后結(jié)果送到目的操作數(shù)。 目的操作數(shù):通用寄存器、存儲(chǔ)器,但不允許為立即數(shù)。 間接尋址的存儲(chǔ)單元加1時(shí),數(shù)據(jù)長(zhǎng)度需用偽指令說(shuō)明。循環(huán)程序中,常用該指令對(duì)地址指針和循環(huán)計(jì)數(shù)值進(jìn)行修改。,INC d,d d +1,例4.3 計(jì)算兩個(gè)多字節(jié)十六進(jìn)制數(shù)之和:3B74AC60F8H+20D59E36C1H=? 式中被加數(shù)和加數(shù)均有5個(gè)字節(jié),可以編一個(gè)循環(huán)程序?qū)崿F(xiàn)以上運(yùn)算。假設(shè)已將被加數(shù)和加數(shù)分別存入從DATA1和DATA2開(kāi)始的兩個(gè)內(nèi)存區(qū),且均為低位字節(jié)在前,高位字節(jié)在后,如圖4.15所示。要求相加所得結(jié)果仍存回以DATA1為首址的內(nèi)存區(qū)。,程序流程圖如圖4.16所示。程序如下: MOV CX,5 ;設(shè)置循環(huán)次數(shù) MOV SI,0 ;置位移量初值 CLC ;清進(jìn)位CF LOOPER:MOV AL,DATA2SI;取一個(gè)加數(shù) ADC DATA1SI,AL ;和一個(gè)被加數(shù)相加 INC SI ;位移量加1 DEC CX ;循環(huán)次數(shù)減1 JNZ LOOPER ;加完否,若沒(méi)完,轉(zhuǎn)LOOPER,繼續(xù)相加 HLT ;程序暫停,圖4.15 例4.3中被加數(shù)和加數(shù)在內(nèi)存中的存放情況,圖4.16 例4.3的程序流程圖,如果兩個(gè)對(duì)應(yīng)的BCD數(shù)相加若得到的結(jié)果大于9或向高位有進(jìn)位就需要使用BCD碼的調(diào)整指令。 AAA指令(非壓縮型BCD碼加法調(diào)整指令)的操作為: 如果 (AL) 0FH9 或 (AF)1(低4位9或有進(jìn)位) 則 (AL) (AL)06H (AH) (AH)1 (AF) 1 (CF) (AF) (AL) (AL) 0FH) 否則 (AL) (AL) 0FH) DAA指令(壓縮型BCD碼加法調(diào)整指令)的操作為: 如果 (AL) 0FH9, (AF)1 則 (AL) (AL)06H (AF) 1 如果 (AL) 9FH 或 (CF)1(高四位9或有進(jìn)位) 則 (AL) (AL)60H (CF) 1,例要求計(jì)算兩個(gè)至今指數(shù)之和,78?。可用以下指令實(shí)現(xiàn): MOV AX, 0007H ;(AL)=07H,(AH)=00H MOV BL, 08H ;(BL)=08H ADD AL, BL ;(AL)=0FH AAA ;(AL)=05H,(AH)=01H ;(CF)=(AF)=1 MOV AX, 0007H ;(AL)=07H,(AH)=00H MOV BL, 08H ;(BL)=08H ADD AL, BL ;(AL)=0FH DAA ;(AL)=15H,(AH)=00H ;(CF)=0,(AF)=1,2.減法指令, 功能:目的操作數(shù)減去源操作數(shù),結(jié)果送到目的操作數(shù)。 源操作數(shù):通用寄存器、存儲(chǔ)器、立即數(shù) 目的操作數(shù):通用寄存器、存儲(chǔ)器 提示:目的操作數(shù)不能為立即數(shù),源操作數(shù)和目的操作數(shù)不能同時(shí)為存儲(chǔ)器。不允許進(jìn)行段寄存器減法。,SUB dst, src,(dst) (dst) -(src), 功能:目的操作數(shù)減去源操作數(shù)外,再減去進(jìn)位標(biāo)志CF,結(jié)果送到目的操作數(shù)。 CF將從新根據(jù)結(jié)果置成新的狀態(tài),SBB指令一般用于16位以上的多字節(jié)數(shù)相加。,SBB dst, src,(dst) (dst) -(src)-1, 功能:將目的操作數(shù)減1后結(jié)果送到目的操作數(shù)。 目的操作數(shù):通用寄存器、存儲(chǔ)器,但不允許為立即數(shù)。 間接尋址的存儲(chǔ)單元加1時(shí),數(shù)據(jù)長(zhǎng)度需用偽指令說(shuō)明。循環(huán)程序中,常用該指令對(duì)地址指針和循環(huán)計(jì)數(shù)值進(jìn)行修改。,DEC d,d d -1, 功能:將目的操作數(shù)取負(fù)后結(jié)果送到目的操作數(shù)。 目的操作數(shù):通用寄存器、存儲(chǔ)器,但不允許為立即數(shù)。,NEG d,d 0-d, 功能:目的操作數(shù)減去源操作數(shù),不送回結(jié)果,只根據(jù)運(yùn)算結(jié)果置標(biāo)志位。 源操作數(shù):通用寄存器、存儲(chǔ)器、立即數(shù) 目的操作數(shù):通用寄存器、存儲(chǔ)器 提示:目的操作數(shù)不能為立即數(shù),源操作數(shù)和目的操作數(shù)不能同時(shí)為存儲(chǔ)器。不允許進(jìn)行段寄存器比較。,CMP d, s,d-s 只置標(biāo)志位,例4.4 內(nèi)存數(shù)據(jù)段存放了200個(gè)帶符號(hào)數(shù),首地址為T(mén)AB1,要求將各數(shù)取絕對(duì)值后存入以TAB2為首址的內(nèi)存區(qū)。 由于200個(gè)帶符號(hào)數(shù)中可能既有正數(shù),又有負(fù)數(shù),因此先要判斷正負(fù)。如為正數(shù),可以原封不動(dòng)地傳送到另一內(nèi)存區(qū);如為負(fù)數(shù),則需先求補(bǔ)即可得到負(fù)數(shù)的絕對(duì)值,然后再傳送。程序如下:,LEA SI,TAB1 ;(SI)源地址指針 LEA DI,TAB2 ;(DI)目標(biāo)地址指針 MOV CX,200 ;(CX)循環(huán)次數(shù),CHECK: MOV AL,SI ;取一個(gè)帶符號(hào)數(shù)到AL OR AL,AL ;AL內(nèi)容不變,只影響標(biāo)志位 JNS NEXT ;若(SF)=0,則轉(zhuǎn)NEXT NEG AL ;否則求補(bǔ) NEXT: MOV DI,AL ;傳送到目標(biāo)地址 INC SI ;源地址加1 INC DI ;目標(biāo)地址加1 DEC CX ;循環(huán)次數(shù)減1 JNZ CHECK ;如不等于零,則轉(zhuǎn)CHECK HLT ;停止,AAS指令的操作為: 如果 (AL) 0FH9 或 (AF)1 則 (AL) (AL)06H (AH) (AH)1 (AF) 1 (CF) (AF) (AL) (AL) 0FH) 否則 (AL) (AL) 0FH) DAS指令的操作為: 如果 (AL) 0FH9, (AF)1 則 (AL) (AL)06H (AF) 1 如果 (AL) 9FH 或 (CF)1 則 (AL) (AL)60H (CF) 1,3.乘法指令,AL,源操作數(shù),AX,源操作數(shù), 功能:完成兩個(gè)無(wú)符號(hào)的二進(jìn)制數(shù)相乘。 被乘數(shù):隱含在累加器AX或AL中 乘數(shù):指令中由s指定的源操作數(shù),通用寄存器或存儲(chǔ)器操作數(shù)。 積:相乘后得到雙倍長(zhǎng)的積 8位二進(jìn)制數(shù)乘法:其16位的積高8位存于AH,低8位存于AL中。 16位二進(jìn)制數(shù)乘法:其32位的積高16位存于DX,低16位存于AX中。,MUL s,無(wú)符號(hào)乘法指令, 功能:完成兩個(gè)有符號(hào)的二進(jìn)制數(shù)相乘。 被乘數(shù):隱含在累加器AX或AL中 乘數(shù):指令中由s指定的源操作數(shù),通用寄存器或存儲(chǔ)器操作數(shù)。 積:相乘后得到雙倍長(zhǎng)的積 8位二進(jìn)制數(shù)乘法:其16位的積高8位存于AH,低8位存于AL中。 16位二進(jìn)制數(shù)乘法:其32位的積高16位存于DX,低16位存于AX中。,IMUL s,有符號(hào)乘法指令,4.除法指令,8086/8088CPU執(zhí)行除法時(shí)規(guī)定:除數(shù)只能是被除數(shù)的一半字長(zhǎng)。當(dāng)被除數(shù)為16位時(shí),除數(shù)應(yīng)為8為;當(dāng)被除數(shù)為32位時(shí),除數(shù)應(yīng)為16為, 功能:完成兩個(gè)無(wú)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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年貴州納雍友愛(ài)勞務(wù)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年浙江科達(dá)電力工程有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年度大理石石材倉(cāng)儲(chǔ)物流服務(wù)合同范本3篇
- 2025年青島版六三制新九年級(jí)生物上冊(cè)階段測(cè)試試卷含答案
- 2025年安徽肥西縣鄉(xiāng)村振興建設(shè)發(fā)展有限責(zé)任公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025年浙江臺(tái)州溫嶺市基礎(chǔ)設(shè)施投資集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025年粵教版九年級(jí)歷史上冊(cè)月考試卷
- 2025年浙教新版九年級(jí)歷史上冊(cè)階段測(cè)試試卷
- 2025年湘教版九年級(jí)地理下冊(cè)月考試卷
- 二零二五年度出租車(chē)行業(yè)駕駛員薪酬福利合同范本4篇
- 道德經(jīng)全文及注釋
- 2024中考考前地理沖刺卷及答案(含答題卡)
- 多子女贍養(yǎng)老人協(xié)議書(shū)范文
- 安踏運(yùn)動(dòng)品牌營(yíng)銷(xiāo)策略研究
- 彩票市場(chǎng)銷(xiāo)售計(jì)劃書(shū)
- 骨科抗菌藥物應(yīng)用分析報(bào)告
- 支付行業(yè)反洗錢(qián)與反恐怖融資
- 百詞斬托福詞匯excel版本
- 基礎(chǔ)設(shè)施綠色施工技術(shù)研究
- 寶鋼BQB 481-2023全工藝?yán)滠堉蓄l無(wú)取向電工鋼帶文件
- 車(chē)輛定損情況確認(rèn)書(shū)范本
評(píng)論
0/150
提交評(píng)論