微機(jī)原理課件 8086/8088的指令系統(tǒng)_第1頁
微機(jī)原理課件 8086/8088的指令系統(tǒng)_第2頁
微機(jī)原理課件 8086/8088的指令系統(tǒng)_第3頁
微機(jī)原理課件 8086/8088的指令系統(tǒng)_第4頁
微機(jī)原理課件 8086/8088的指令系統(tǒng)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、主要內(nèi)容 第四章 80868088的指令系統(tǒng),第四章 80868088 CPU指令系統(tǒng),主要內(nèi)容: 指令的操作數(shù)、操作碼、尋址方式 指令的功能、格式、用法等,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),一、尋址方式 指令的一般格式: 計算機(jī)中的指令由操作碼字段和操作數(shù)字段組成。,操作碼:指計算機(jī)所要執(zhí)行的操作,或稱為指出操作類型,是一種助記符。,操作數(shù):指在指令執(zhí)行操作的過程中所需要的操作數(shù)。該字段除可以是操作數(shù)本身外,也可以是操作數(shù)地址或是地址的一部分,還可以是指向操作數(shù)地址的指針或其它有關(guān)操作數(shù)的信息。,尋址方式就是指令中用于說明操作數(shù)所在地址的方法,或者說是尋

2、找操作數(shù)有效地址的方法。,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),立即尋址,寄存器尋址,存儲器尋址,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),1立即尋址(Immediate Addressing) 所提供的操作數(shù)直接包含在指令中。 它緊跟在操作碼的后面,與操作碼一起放在代碼段區(qū)域中。 例如:MOV AX,3000H MOV 2000H,1AH,立即尋址主要用來給寄存器或存儲器賦初值。,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),2寄存器尋址(Register Addressing) 操作數(shù)包含在CPU的內(nèi)

3、部寄存器中,如寄存器AX、BX、CX、DX等。 例如:MOV DS,AX MOV AL,BH,3、存儲器尋址(Memory Addressing),訪問存儲單元需要其段基址和段內(nèi)偏移量(即有效地址EA)。 根據(jù)有效地址的不同,存儲器尋址方式分為直接尋址、寄存器間接尋址,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),立即尋址,寄存器尋址,存儲器尋址,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),1)直接尋址(Direct Addressing) 操作數(shù)地址的16位偏移量直接包含在指令中。 它與操作碼一起存放在代碼段區(qū)域,操作數(shù)一般在數(shù)據(jù)段區(qū)域中

4、,它的地址為數(shù)據(jù)段寄存器DS加上這16位地址偏移量。,例如: MOV AX,DS:2000H;MOV AX,2000H ;數(shù)據(jù)段,MOV AX,VALUE; VALUE是符號地址 MOV BX,ES:3000H ;段超越,操作數(shù)在附加段 即絕對地址(ES)*163000H,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),2)寄存器間接尋址(Register Relative Addressing) 操作數(shù)是在存儲器中,但是,操作數(shù)地址的16位偏移量包含在以下四個寄存器SI、DI、BP、BX之一中。 可以分成兩種情況:,以SI、DI、BX間接尋址,則通常操作數(shù)在現(xiàn)行數(shù)據(jù)段

5、區(qū)域中,即數(shù)據(jù)段寄存器(DS)*16加上SI、DI、BX中的16位偏移量,為操作數(shù)的地址, 例如: MOV AX, SI 操作數(shù)地址是:(DS)*16+(SI),以寄存器BP間接尋址,則操作數(shù)在堆棧段區(qū)域中。即堆棧段寄存器(SS)*16與BP的內(nèi)容相加作為操作數(shù)的地址, 例如:MOV AX,BP 操作數(shù)地址是:(SS)*16+(BP),8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),立即尋址,寄存器尋址,存儲器尋址,直接尋址,寄存器間接尋址,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),(1)相對基址尋址方式 (Relative Based A

6、ddressing) 相對基址尋址方式的操作數(shù)的有效地址是基址寄存器中內(nèi)容和指令中給定的8位或16位偏移量disp之和。,對寄存器BX,段寄存器用DS。 物理地址 = (DS) * 16 + (BX) + disp 如 MOV AX,COUNT BX 或 MOV AX,COUNT+BX , 其中COUNT為16位偏移量的符號地址。 若DS=2000H,BX=2000H,COUNT=4000H。 物理地址=20000H+2000H+4000H=26000H 指令執(zhí)行結(jié)果AX=1234H,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),(1)相對基址尋址方式 (Relati

7、ve Based Addressing) 相對基址尋址方式的操作數(shù)的有效地址是基址寄存器中內(nèi)容和指令中給定的8位或16位偏移量disp之和。,對寄存器BP,段寄存器用SS。 物理地址 =(SS) 16+(BP)+ disp 如MOV AX,COUNT BP 或MOV AX,COUNT+BP 若SS=3000H,BP=2000H,COUNT=4000H, 物理地址=30000H+2000H+4000H=36000H 指令執(zhí)行結(jié)果AX=5678H,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),(2)相對變址尋址方式(Relative Index Addressing) 相

8、對變址尋址的操作數(shù)的有效地址是變址寄存器中內(nèi)容和指令中給定的8位或16位偏移量disp之和。,這種尋址方式的段寄存器用DS,即 物理地址= (DS) 16 + (SI) + disp 物理地址= (DS) 16 + (DI) + disp 如MOV AX,COUNT SI 或MOV AX,COUNT+SI 若DS=2000H,SI=2000H,COUNT=4000H。 物理地址=20000H+2000H+4000H=26000H 指令執(zhí)行結(jié)果 AX=1234H,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),(3)基址變址尋址方式 (Based Indexed Addr

9、essing) 基址變址尋址的操作數(shù)的有效地址是一個基址寄存器與一個變址寄存器的內(nèi)容之和。 若基址寄存器為BX,則段寄存器用DS; 若基址寄存器為BP,則段寄存器用SS。 物理地址=(DS) 16+(BX)+(SI)(或DI) 物理地址=(SS) 16+(BP)+(SI)(或DI) 如MOV AX,BX DI 或MOV AX,BX+DI 若DS=2000H,BX=2000H,DI=3000H。 物理地址=20000H+2000H+3000H=25000H,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),(4)相對基址變址尋址方式(Relative Based Index

10、ed Addressing) 相對基址變址尋址的操作數(shù)的有效地址是一個基址寄存器與一個變址寄存器的內(nèi)容以及8位或16位偏移量disp之和。,當(dāng)其中的基址寄存器為BX時,則段寄存器為DS; 而當(dāng)基址寄存器為BP時,則段寄存器為SS。 物理地址= (DS) 16 + (BX) + (SI)(或DI)+ 8位(16位)偏移量disp 物理地址= (SS) 16 + (BP) + (SI)(或DI)+ 8位(16位)偏移量disp 如MOV AX,BX+SI+COUNT 若DS=2000H,BX=3000H,SI=1000H,COUNT=4000H。 物理地址=20000H+3000H+1000H+4

11、000H=28000H,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),立即尋址,寄存器尋址,存儲器尋址,直接尋址,寄存器間接尋址,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),I/O 端口尋址,8086采用獨立編址的I/O端口時,可有64K個字節(jié)端口或32K個字端口,用專門的輸入指令I(lǐng)N和輸出指令OUT訪問。 直接端口尋址方式 適用于訪問地址00FFH的端口。 例如:IN AL,80H 表示由地址為80H的端口讀取一個字節(jié)數(shù)據(jù)到AL中。 2. 間接端口尋址方式 適用于訪問地址0000FFFFH的全部端口,在輸入/輸出指令中,用DX存放16位的

12、端口地址。 例如:MOVDX,2000 INAL,DX 表示由DX確定的2000H端口讀取一個字節(jié)數(shù)據(jù)到AL中。,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),I/O端口尋址,從以上討論可知: (1)除了立即尋址和寄存器尋址外,其它尋址方式的操作數(shù)都來自存儲區(qū)(除代碼段以外的存儲區(qū))。通過不同的方式尋找到操作數(shù)的地址。 (2)只有BX、BP、SI、DI可在方括號 內(nèi)出現(xiàn)。 (3) BX或BP可單獨出現(xiàn)在 內(nèi),也可以與SI或DI或常數(shù)一起出現(xiàn)在 內(nèi),不允許BX和BP同時出現(xiàn)在一個 內(nèi)。 (4) SI或DI可單獨出現(xiàn)在 內(nèi),也可以與BX或BP或常數(shù)一起出現(xiàn)在 內(nèi),不允許S

13、I或DI同時出現(xiàn)在一個 內(nèi)。 (5)一個 內(nèi)包括多個內(nèi)容時,它們只能作加法運(yùn)算。 (6)若 內(nèi)包含BP,則隱含使用堆棧段寄存器SS提供段基址,否則均隱含使用段寄存器DS提供段基址。,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),習(xí)題: 指出下列指令的源操作數(shù)的尋址方式和存儲器操作數(shù)的PA(實際地址) 假設(shè)當(dāng)前CS=1000H,DS=2000H,SS=4000H,BX=3000H,BP=1000H ,SI=0500H,DI=0A00H,TAB=00F0H MOV AL,78H 立即尋址 MOV AL,BX 寄存器間接尋址 PA=2000H*10H+3000H=23000

14、H MOV AX,BP 寄存器尋址 MOV AL,TABSI 相對變址尋址 PA=2000H*16+0500H+0F0H=205F0H MOV AL,BPDI 變址基址尋址 PA=4000H*16+1000H+0A00H=41A00H MOV AL,TABBXSI 相對基址變址 PA=2000H*10H+3000H+0500H+00F0H=235F0H,8086/8088 CPU尋址方式 第四章 80868088的指令系統(tǒng),數(shù)據(jù)傳送指令,運(yùn)算指令,邏輯運(yùn)算,算術(shù)運(yùn)算,串操作指令,控制轉(zhuǎn)移指令,處理器控制指令,數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),8086指令中包含133條基本指令,

15、從功能上可以分為以下6類:,數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),指令中出現(xiàn)的這些符號所代表的含義: Flags 標(biāo)志位 reg R 通用寄存器組 src S 源操作數(shù) dest D 目的操作數(shù) data N 立即數(shù) mem M 存儲器 ADR(src) 源操作數(shù)的地址 存儲單元的內(nèi)容 OPRD 操作數(shù) seg SR 段寄存器(CS、DS、ES、SS) port 端口 Bit 位 Byte B 字節(jié) Word W 字,通用數(shù)據(jù)傳送指令,累加器專用指令,輸入輸出指令 換碼指令,目標(biāo)地址傳送指令,標(biāo)志位傳送指令,傳送指令 堆棧操作指令 交換指令,有效地址傳送指令 DS傳送指令 ES傳送

16、指令,標(biāo)志位送AH指令 AH送FR指令 FR入出棧指令,數(shù)據(jù)傳送指令分類,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),格式:MOV D,S,;SD, ;B/W,其中R包括8個數(shù)據(jù)寄存器;SR為4個段寄存器;M為存儲器,可以是存儲器尋址中的任一種。,2。立即數(shù)只能做源操作數(shù)。 3。兩操作數(shù)的位數(shù)必須相同。 4。兩操作數(shù)中最多只能有一個是存儲器尋址方式。,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),交換指令,格式:XCHG D,S,;DS,B/W,D,S:R (不包括SR)、M,例:XCHG AL,BL XCHG CX,SP,使用交換指令時,必須注意: 1)段寄存器不能

17、作為交換指令的操作數(shù)。 2)兩個操作數(shù)中,必須有一個是寄存器操作數(shù),而不允許兩個都是存儲器操作數(shù)。 3)立即數(shù)不能作為交換指令的操作數(shù)。 4)交換指令不影響標(biāo)志位。,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),格式:IN AL,n IN AX,n IN AL,DX IN AX,DX,格式:OUT n , AL OUT n , AX OUT DX,AL OUT DX,AX,例:IN AL,08H,輸入輸出指令,使用輸入輸出指令時,應(yīng)注意: 1)輸入輸出指令只能通過累加器AL或AX來傳送數(shù)據(jù)。 2)輸入輸出指令的字或字節(jié)傳送操作的選用,取決于外設(shè)端口的寬度。 3)直接尋址的輸入輸出指

18、令,尋址外設(shè)端口的范圍為0255; 而間接尋址(DX)的輸入輸出指令,尋址的范圍為065535。 4)輸入輸出指令不影響標(biāo)志位。,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),堆棧操作指令 PUSH POP 有效地址傳送指令 LEA 換碼指令 XLAT DS傳送指令 LDS ES傳送指令 LES,傳送指令 MOV D,S 交換指令 XCHG D, S 輸入輸出指令 IN AL/AX,PORT OUT PORT ,AL/AX,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),第四章 80868088 CPU指令系統(tǒng),回顧:,本節(jié)主要內(nèi)容:,4.3 數(shù)據(jù)傳送指令,堆棧:在內(nèi)存中

19、,開辟一段存儲區(qū),該區(qū)域是按照“先進(jìn)后出”的原則來存放數(shù)據(jù)。,SP,SS,例:現(xiàn)有一個空的堆棧段,已知(SS)=1000H, (SP)=2000H,則存儲器示意圖如右。,堆棧操作指令,設(shè)置堆棧目的: 保存斷點和保存當(dāng)前寄存器的內(nèi)容,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),例:現(xiàn)有一個空堆棧段,已知(SS)=1000H, (SP)=2000H,則存儲器示意圖如右。,兩個關(guān)鍵點: 堆棧必須以字為單位操作,即字操作。 數(shù)據(jù)必須以規(guī)則字的方式存放。,若(AX)=1234H, (BX)=60ABH,則執(zhí)行 PUSH AX PUSH BX ,POP BX POP AX,;(BX)=60A

20、BH,;(AX)=1234H,入棧(PUSH)操作 SP-2SP 按“規(guī)則字”方式入棧,出棧(POP)操作 按“規(guī)則字”方式出棧 SP+2SP,;(SP)=1FFCH,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),DATA_SEGSEGMENT XDW10 YDW0 DATA_SEGENDS STACK_SEG SEGMENT STACK STACK DW 2000H DUP (?) TOP LABEL WORD STACK_SEG ENDS CODE_SEGSEGMENT ASSUMECS:CODE_SEG,DS:DATA_SEG MAINPROCFAR START:MOVAX,

21、STACK_SEG ;建立堆棧段指針 MOVSS,AX LEASP, TOP PUSHDS SUBAX,AX PUSHAX MOVAX,DATA_SEG MOVDS,AX 。 RET MAINENDP CODE_SEGENDS ENDSTART,數(shù)據(jù)段,堆棧段,代碼段,通過一個匯編語言程序,看堆棧段的是怎么建立?,SP,SS,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),有效地址傳送指令,格式:LEA D,S,;將S的有效地址送到D,S:M D:R(16位),例:LEA BX,2000H 執(zhí)行后,BX=2000H 區(qū)別于MOV BX,2000H,例:LEA BX,TAB (TAB=

22、2000H) 執(zhí)行后,BX=2000H 區(qū)別于MOV BX,TAB,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),格式:XLAT,;BX+ALAL,換碼指令,執(zhí)行以下程序后, AL的內(nèi)容是多少? LEA BX,TABLE MOV AX,03H ADD BX,AX MOV AL,BX,LEA BX,TABLE MOV AL,03H XLAT,執(zhí)行完程序后,AL=9,XLAT指令的功能是:,執(zhí)行XLAT的過程為: (BX)+(AL) ?。˙X)+(AL)所指向的單元內(nèi)容傳送至AL。,把一種代碼轉(zhuǎn)換為另一種代碼,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),格式:XLAT,;

23、BX+ALAL,例:數(shù)字09對應(yīng)的七段碼為40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。依次放在內(nèi)存以TABLE開始的區(qū)域,當(dāng)#05H端口(按鍵)輸入一個數(shù)(09)時,要求CPU將其轉(zhuǎn)換為七段碼,再從#20H端口(顯示)輸出。,LEA BX,TABLE IN AL,05H XLAT OUT 20H,AL,換碼指令,TABLE DB 40H,79H,24H30H,19H DB 12H,02H,78H,00H,18H,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),LDS,LES,格式:LDS D,S LES D,S,S:M,D:R(16位,不包括SR)

24、,;(S)D,(S+2)DS(ES),例:LDS SI,(2000H) 前:DS=2000H,(22000H)=4000H,(22002H)=3000H,后:SI=4000H,DS=3000H,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),標(biāo)志位指令,1.讀取標(biāo)志指令LAHF,格式:LAHF,;將FR的低8位送到AH,FR,AH,3. 標(biāo)志位入出棧指令PUSHF,POPF,4.3 數(shù)據(jù)傳送指令 第四章 80868088的指令系統(tǒng),算術(shù)運(yùn)算指令,邏輯運(yùn)算指令,加法指令 減法指令 乘法指令 除法指令 BCD碼修正指令,邏輯指令 移位指令,運(yùn)算指令,運(yùn)算指令 第四章 80868088的指

25、令系統(tǒng),加法指令,1。不帶進(jìn)位位的加法指令,格式:ADD D,S,;D+SD,B/W,D:R,M;S:R,M,n,二者不能同時為M。,例:ADD AX,BX ADD AL,2000H ADD BX,AL ADD BL,6H,注意:指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF。,例:ADC AX,BX ADC AL,2000H ADC BX,AL ADC BL,6H,例:ADD AL,BL 前:AL=2EH,BL=45H 后:AL=73H(01110011B) CF=0,AF=1,SF=0,ZF=0 PF=0,OF=0,運(yùn)算指令 第四章 80868088的指令系統(tǒng),例:INC AX INC

26、BYTE PTRBX,加法指令,運(yùn)算指令 第四章 80868088的指令系統(tǒng),減法指令,1。不帶借位位的減法指令,格式:SUB D,S,;D-SD,B/W,D:R,M;S:R,M,n,二者不能同時為M。,注意:指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF。,例:SBB AX,BX SBB AL,3456H SBB BX,AL SBB BL,6H,例:DEC AX DEC BYTE PTRBX,例:SUB CX,DX SUB DL,2000H SUB SI,CH SUB AL,6H,運(yùn)算指令 第四章 80868088的指令系統(tǒng),減法指令之二,4。求補(bǔ)指令,格式:NEG D,;0-DD,B/W

27、,D:R,M,注意:指令的執(zhí)行影響OF、SF、ZF、PF、AF、CF。,注意:1。差不送到D; 2。指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF; 3。D,S的大小判斷方法與D,S是否是有無符號數(shù)有關(guān)。,例: NEG WORD PTR BX 例: NEG AL 前:AL=10001011B 后:AL=01110101B CF=AF=1,SF=ZF=PF=OF=0,例: ADD AL,0 JNS L1 NEG AL OR AL,80H L1:,運(yùn)算指令 第四章 80868088的指令系統(tǒng),運(yùn)算指令 第四章 80868088的指令系統(tǒng),例 4-8 在從Block開始的內(nèi)存緩沖器中有100個帶符

28、號數(shù)的字,把其中最大值存放到MAX單元中。 MOVCX,99 LEABX,Block MOVAX,BX ADDBX,2 AGAIN:CMPAX,BX JGNEXT MOVAX,BX NEXT:ADDBX,2 DECCX JNZAGAIN MOVMAX,AX HLT,乘法指令,例:MUL BX IMUL BYTE PTR(3456H) MUL CL IMUL WORD PTR DI,運(yùn)算指令 第四章 80868088的指令系統(tǒng),除法指令,1。無符號數(shù)的除法指令,格式:DIV S,;B:AX/S(8位)=AL.AH, W: DX AX/S(16位) =AX.DX,例:DIV BX IDIV BYT

29、E PTR(3456H) DIV CL IDIV WORD PTR DI,2。有符號數(shù)的除法指令,格式:IDIV S,S:R,M,注意:標(biāo)志位無意義.,例:9876H/2345H MOV AX,9876H CWD MOV SI,2345H IDIV SI,運(yùn)算指令 第四章 80868088的指令系統(tǒng),十進(jìn)制修正指令,1。BCD加法的修正指令,格式:AAA DAA,2。BCD減法的修正指令,3。BCD乘法的修正指令,格式:AAM,格式:AAS DAS,4。BCD除法的修正指令,格式:AAD,注意:1。這六條指令中只有AAD是在除法指令執(zhí)行前執(zhí)行,其余都是在運(yùn)算指令后修正。 2。只有AAD是對AX

30、中的數(shù)據(jù)進(jìn)行修正,其余都是對AL中的數(shù)據(jù)進(jìn)行修正。,影響P、S、Z,不影響A、C、O。,影響P、S、Z,不影響A、C、O,影響C、A,對O、P、S、Z未定義。 影響C、A 、P、S、Z ,對O未定義。,影響C、A,對O、P、S、Z未定義。 影響C、A 、P、S、Z ,對O未定義。,運(yùn)算指令 第四章 80868088的指令系統(tǒng),1。邏輯非指令,格式:NOT D,2。邏輯與指令,3。邏輯或指令,格式:OR D,S,格式:AND D,S,;D:R、M,S:R、M、n,B/W,D:R、M,B/W,不影響標(biāo)志位,影響S、Z、P,CF=OF=0,未對AF定義。,利用AND可以強(qiáng)行使目標(biāo)操作數(shù)的某些位為零。

31、,;D:R、M,S:R、M、n,B/W,影響S、Z、P,CF=OF=0,未對AF定義。,利用OR可以強(qiáng)行使目標(biāo)操作數(shù)的某些位為1。,邏輯運(yùn)算指令,運(yùn)算指令 第四章 80868088的指令系統(tǒng),AND AL,0FH AND CX,0FF00H,OR AL,0FH OR AL,30H,4。邏輯異或指令,格式:XOR D,S,;D:R、M,S:R、M、n,B/W,影響S、Z、P,CF=OF=0,未對AF定義。,利用XOR可以強(qiáng)行使目標(biāo)操作數(shù)的某些位為取反或兩數(shù)是否相等。,5。測試指令,格式:TEST D,S,;D:R、M,S:R、M、n,B/W,影響S、Z、P,CF=OF=0,未對AF定義。,利用T

32、EST可以測試目標(biāo)操作數(shù)的某些位的狀態(tài)。,邏輯運(yùn)算指令,運(yùn)算指令 第四章 80868088的指令系統(tǒng),XOR AL,0FH XOR CL,CL,TEST AL,80H TEST AL,0F0H,移位指令,1。邏輯算術(shù)左移指令,格式:SHL D,S SAL D,S,2。邏輯右移指令,3。算術(shù)右移指令,格式:SAR D,S,格式:SHR D,S,;D:R、M,S:1、CL,B/W,;D:R、M,S:1、CL,B/W,0,CF,CF,;D:R、M,S:1、CL,B/W,運(yùn)算指令 第四章 80868088的指令系統(tǒng),1。循環(huán)左移指令,格式:ROL D,S,2。循環(huán)右移指令,4。帶進(jìn)位位的循環(huán)右移指令,

33、格式:RCR D,S,格式:ROR D,S,CF,CF,CF,D:R、M,S:1、CL,B/W,循環(huán)指令,3。帶進(jìn)位位的循環(huán)左移指令,格式:RCL D,S,CF,這類指令只影響CF和OF,CF為最后一次送入的值,OF僅在循環(huán)一位時有效:循環(huán)前后符號位不同時OF=1,否則OF=0。,運(yùn)算指令 第四章 80868088的指令系統(tǒng),MOVAL,0FH SALAL,1 MOVBL,AL MOVCL,2 SALAL,CL ADDAL,BL MOVDATA,AL,;取數(shù)到AL中 ;乘2 ;保存 ;乘4 ;乘10(8+2) ;存結(jié)果,說明下面程序的功能:,功能:0FH*10DATA單元,運(yùn)算指令 第四章 80868088的指令系統(tǒng),程序控制轉(zhuǎn)移指令,例420 假設(shè)x值存放在數(shù)據(jù)段1000H單元,函數(shù)y的值存放在1001H單元。 MOV AL,1000H CMP AL,0 JG BIG JLLOW DONE: MOV 1001H,AL HLT LOW :MOV AL,0FFH JMP DONE BIG: MOV AL,1 JMP DONE,程序控制轉(zhuǎn)移指令 第四章 80868088的指令系統(tǒng),例421 在數(shù)據(jù)段內(nèi)以Block為首地址的100個字節(jié)數(shù),試統(tǒng)計其正數(shù)和負(fù)數(shù)的個數(shù),并分別將正數(shù)的個數(shù)放在DH中,負(fù)數(shù)的個數(shù)放在DL中。編程如下: MOV DX,0 MOV CX,100 LEA B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論