




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第4章8086/8088指令系統(tǒng),4.18086/8088指令系統(tǒng)概述 4.28086/8088的尋址方式 4.38086/8088的指令系統(tǒng),指令系統(tǒng):計算機的指令系統(tǒng)就是指該計算機能夠執(zhí)行的全部指令的集合。(一組指令集)。 指令的一般格式: 指令由操作碼和操作數(shù)兩部分組成 操作碼說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉等操作,它是指令中不可缺少的組成部分 操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象 有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù),操作碼 操作數(shù), 操作數(shù),4.18086/8088指令系統(tǒng)概述,每種指令的操作碼: 用一個唯一的
2、助記符表示(指令功能的英文縮寫) 指令中的操作數(shù): 可以是一個具體的數(shù)值 可以是存放數(shù)據的寄存器 或指明數(shù)據在主存位置的存儲器地址,指令舉例: MOV AX,BX SUB BX,123 ADD AX,5 AND DL,80H MUL BL POP DX CLD CBW,4.2 8086/8088的尋址方式,與數(shù)據有關的尋址方式,與數(shù)據有關的尋址方式 與轉移地址有關的尋址方式,1. 立即尋址方式 操作數(shù)直接存放在指令中,緊跟在操作碼之后。常用于給寄存器賦初值。 MOV AL, 10 MOV AX, 3064H,【例4.1】MOV AL, 10 執(zhí)行后(AL)=? 該例中源操作數(shù)為立即尋址方式,立
3、即數(shù)為10,存放在指令的下一單元。 圖形表示: 執(zhí)行:10AL 執(zhí)行后:(AL)=0AH,2. 寄存器尋址方式,操作數(shù)在指定的寄存器中。 【例4.2】MOV AX, BX 指令執(zhí)行前, AX=3064H,BX=1234H 指令執(zhí)行后, AX=1234H,BX=1234H,3. 直接尋址方式,有效地址EA由指令直接給出。 有效地址EA:操作數(shù)的偏移地址 物理地址PA = 16d (DS) + EA 例:MOV AX, 2000H EA=2000H, 假設(DS)=3000H, 那么(PA)=32000H 例:操作數(shù)地址可由變量(符號地址)表示 MOV AH, VALUE ( VALUE DB 1
4、0 ),隱含的段為數(shù)據段 DS 可使用段跨越前綴 MOV AX, ES :2000H 使用變量時,要注意變量的屬性 VALUE DB 10 MOV AX, VALUE MOV AX, WORD PTR VALUE 適于處理單個變量,4. 寄存器間接尋址,操作數(shù)的偏移地址EA 在基址寄存器 (BX/BP)或變址寄存器(SI/DI)中,操作數(shù)則在存儲器中。,BX, SI, DI (DS) 物理地址 = 16d (DS) + BP (SS) 物理地址 = 16d (SS) + (BP),(BX) (SI) (DI),【例】MOVAX,BX 如果DS=3000H,BX=1010H,(31010H)=1
5、2H,(31011H)=24H。則操作數(shù)的20位物理地址=30000H+1010H=31010H,操作的示意圖如下圖所示。 指令執(zhí)行完以后,(AX)=2412H。,5.寄存器相對尋址方式,操作數(shù)的有效地址是一個基址或變址寄存器的內容和指令中指定的8位或16位偏移量之和。即,【例】 MOV AX, COUNTSI 或 MOV AX, COUNT+SI 假設(DS)=3000H, (SI)=2000H, COUNT=3000H 那么 物理地址 = 30000H + 2000H+ 3000H = 35000H 假設(35000H)=1234H, 那么 AX=1234H,6. 基址變址尋址方式,操作數(shù)
6、的有效地址是一個基址寄存器和一個變址寄存器的內容之和。即 【例】MOVAX,BX SI 或寫為: MOVAX,BX+SI,【例】MOV AX,BX SI 或 MOV AX,BX+SI 若DS=2000H,BX=0500H,SI=0010H 則偏移地址=0500H+0010H=0510H 20位物理地址=20000H+0510H =20510H 如(20510H)=12H,(20511H)=34H, 則指令執(zhí)行后,AX=3412H,7.相對基址變址尋址方式,操作數(shù)的有效地址是一個基址寄存器的內容,一個變址寄存器的內容和8位或16位偏移量之和。即 【例】 MOV AX, MASKBXSI 或 MO
7、V AX, MASKBX+SI 或 MOV AX, MASK+BX+SI 適于堆棧處理和數(shù)組處理,【例】MASK是數(shù)據段中定義的一個符號地址,假設它在數(shù)據段中的偏移地址是1000H。 MOV AX, MASKBXDI 若DS=2000H,BX=0100H,DI=0020H 則偏移地址=1000H+0100H+0020H=1120H 20位物理地址=20000H+1120H=21120H 如(21120H)=12H,(21121H)=34H,操作的示意圖如圖所示。 執(zhí)行完指令以后,AX=3412H。,按功 能可分為6大類: 數(shù)據傳送指令 算術運算指令 位處理指令 串操作指令 控制轉移指令 處理器
8、控制指令,4.3 8086/8088指令系統(tǒng),通用數(shù)據傳送指令 累加器專用傳送指令 地址傳送指令 標志寄存器傳送指令,4.3.1數(shù)據傳送指令,1. 通用數(shù)據傳送指令 (1)傳送指令 格式: MOV DST, SRC ;B/W 執(zhí)行操作: (DST) (SRC) 注意: * DST不能是CS * 不影響標志位 * DST、SRC不同時為段寄存器 MOV DS, ES * 立即數(shù)不能直接送段寄存器 MOV DS, 2000H,例: MOV AX, DATA_SEG MOV DS, AX 例: MOV AL, E ; MOV AL, 45H 例: MOV BX, OFFSET TABLE 例: MO
9、V AX, YBPSI,返回,(2)堆棧操作指令 進棧指令: PUSH SRC 執(zhí)行操作: (SP) (SP) - 2 ( (SP)+1, (SP) ) (SRC) 出棧指令: POP DST 執(zhí)行操作: (DST) (SP)+1, (SP) (SP) (SP) + 2 堆棧:“先進后出”的存儲區(qū),存在于堆棧段中,SP在任何 時候都指向棧頂。,注意: * 堆棧操作必須以字為單位。 * 不影響標志位 * 不能用立即尋址方式 PUSH 1234H * DST不能是CS POP CS,【例】 假設 (AX) = 2107 H , 執(zhí)行 PUSH AX,(SP),低地址,高地址,(SP),07H 21
10、H,低地址,高地址,進棧方向,* *,* *,* *,* *,PUSH AX 執(zhí)行前,PUSH AX 執(zhí)行后,【例】 POP BX,(SP),低地址,高地址,(SP),07H 21H,低地址,高地址,出棧方向,07H 21H,(BX) = 2107H,POP BX 執(zhí)行前,POP BX 執(zhí)行后,* *,* *,* *,* *,【例】 PUSH DS SUB AX, AX PUSH AX RET 【例】 PUSH AX PUSH BX POP BX POP AX,;其間用到AX和BX寄存器,(3)交換指令 指令格式: XCHG OPR1, OPR2 執(zhí)行操作: (OPR1) (OPR2) 注意:
11、 * 不影響標志位 * 不允許使用段寄存器 例:XCHG BX, BP+SI XCHG AL, BH,指令格式:XLAT 或XLAT OPR 執(zhí)行操作:(AL) ( (BX) + (AL) ) 【例】 :MOV BX, OFFSET TABLE ; (BX)=0040H MOV AL, 3 XLAT TABLE 指令執(zhí)行后 (AL)=33H 注意: * 不影響標志位 * 字節(jié)表格(長度不超過256) 首地址 (BX) * 需轉換代碼 (AL),2. 換碼指令,3. 地址傳送指令 有效地址送寄存器指令: LEA REG, SRC 執(zhí)行操作: (REG) SRC 指針送寄存器和DS指令: LDS
12、REG, SRC 執(zhí)行操作: (REG) (SRC) (DS) (SRC+2) 4個相繼字節(jié) 寄存器(通常是SI)、DS 指針送寄存器和ES指令: LES REG, SRC 執(zhí)行操作: (REG) (SRC) (ES) (SRC+2) 4個相繼字節(jié) 寄存器(通常是DI)、ES,例:LEA BX, BX+SI+0F62H 例:LDS SI, 10H 例:LES DI, BX 例:,(DS):1000H 40 H,00 H,00 H,30 H,TABLE,MOV BX, TABLE ; (BX)=0040H MOV BX, OFFSET TABLE ; (BX)=1000H LEA BX, TAB
13、LE ; (BX)=1000H LDS BX, TABLE ; (BX)=0040H ; (DS)=3000H LES BX, TABLE ; (BX)=0040H ; (ES)=3000H,注意: * 不影響標志位 * REG不能是段寄存器 * SRC必須為存儲器尋址方式,標志送AH指令: LAHF 執(zhí)行操作: (AH) (PSW的低字節(jié)) AH送標志寄存器指令: SAHF 執(zhí)行操作: (PSW的低字節(jié)) (AH) 標志進棧指令: PUSHF 執(zhí)行操作: (SP) (SP) - 2 (SP)+1, (SP) (PSW) 標志出棧指令: POPF 執(zhí)行操作: (PSW) (SP)+1, (SP
14、) (SP) (SP) + 2,4. 標志寄存器傳送指令,加法指令 減法指令 乘法指令 除法指令 十進制調整指令,4.3.2算術指令, ,1. 加法指令 加法指令: ADD DST, SRC 執(zhí)行操作: (DST) (SRC) + (DST) 帶進位加法指令: ADC DST, SRC 執(zhí)行操作: (DST) (SRC) + (DST) + CF 加1指令: INC OPR 執(zhí)行操作: (OPR) (OPR) + 1,注意: 除INC指令不影響CF標志外,均對條件標志位 有影響。,【例】 ADD AH, BH 指令執(zhí)行前,AH=56H,BH=24H 指令執(zhí)行 0 1 0 1 0 1 1 0 +
15、 0 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 執(zhí)行后, AH=7AH,BH=24H CF=0,OF=0,ZF=0, SF=0, PF=0, AF=0,【例】雙精度數(shù)的加法 若 DX= 0002H AX= 0F365H BX= 0005H CX= 0E024H 指令序列 (1) ADD AX, CX (2) ADC DX, BX (1) 執(zhí)行后,(AX)= 0D389H CF=1 OF=0 SF=1 ZF=0 (2) 執(zhí)行后,(DX)= 0008H CF=0 OF=0 SF=0 ZF=0,2. 減法指令 減法指令: SUB DST, SRC 執(zhí)行操作: (DST) (DST)
16、 - (SRC) 帶借位減法指令: SBB DST, SRC 執(zhí)行操作: (DST) (DST) - (SRC) - CF 減1指令: DEC OPR 執(zhí)行操作: (OPR) (OPR) - 1 求補指令: NEG OPR 執(zhí)行操作: (OPR) - (OPR) 比較指令: CMP OPR1, OPR2 執(zhí)行操作: (OPR1) - (OPR2),注意: * 除DEC指令不影響 CF標志外,均對條 件標志位有影響。,減法指令對條件標志位(CF/OF/ZF/SF)的影響:,CF位表示無符號數(shù)減法的溢出。 OF位表示帶符號數(shù)減法的溢出。 NEG指令對CF/OF的影響: CF位:操作數(shù)為0時,求補的
17、結果使CF=0,否則CF=1。 OF位:字節(jié)運算對-128求補或字運算對-32768求補時OF=1, 否則OF=0。,或,【例】減法運算。 MOVAX ,5678H;(AX)=5678H SUBAX ,1234H;(AX)=4444H MOVBX ,3354H;(BX)=3354H SUBBX ,3340H;(BX)=0014H 【例】求補運算。 MOVAX,0FF64H NEGAL;(AX)=0FF9CH SUBAL,9DH;(AX)=0FFFFH NEGAX;(AX)=0001H DECAL;(AX)=0000H NEGAX;(AX)=0000H,比較指令 語句格式:CMP OPD,OPS
18、 功能:目的操作數(shù)減源操作數(shù),結果只影響標志位,不送入目的地址。 即(OPD)(OPS)。 【例】比較AL的內容數(shù)值大小。 CMP AL,50;(AL)50 JBBELOW;(AL)=50,( AL)50AL INC AH;(AH)+1AH BELOW:,【例】 x、y、z均為雙精度數(shù),分別存放在地址為X, X+2; Y, Y+2;Z, Z+2的存儲單元中,用指令序列實現(xiàn) w x+y+24-z ,并用W, W+2單元存放w。 MOV AX, X MOV DX, X+2 ADD AX, Y ADC DX, Y+2 ; x+y ADD AX, 24 ADC DX, 0 ; x+y+24 SUB A
19、X, Z SBB DX, Z+2 ; x+y+24-z MOV W, AX MOV W+2, DX ; 結果存入W, W+2單元,3. 乘法指令 無符號數(shù)乘法指令: MUL SRC 執(zhí)行操作:字節(jié)操作數(shù) (AX) (AL) * (SRC) 字操作數(shù) (DX, AX) (AX) * (SRC) 帶符號數(shù)乘法指令: IMUL SRC,注意: * AL(AX)為隱含的乘數(shù)寄存器。 * AX(DX,AX)為隱含的乘積寄存器。 * SRC不能為立即數(shù)。 * 除CF和OF外,對條件標志位無定義。,乘法指令對CF/OF的影響:,例:(AX) = 16A5H,(BX) = 0611H (1) IMUL BL
20、; (AX) (AL) * (BL) ; A5*11 5B*11=060B F9F5 ; (AX) = 0F9F5H CF=OF=1 (2) MUL BX ; (DX, AX) (AX) * (BX) ; 16A5*0611=0089 5EF5 ; (DX) = 0089H (AX) = 5EF5H CF=OF=1,4. 除法指令 無符號數(shù)除法指令: DIV SRC 執(zhí)行操作: 字節(jié)操作 (AL) (AX) / (SRC) 的商 (AH) (AX) / (SRC) 的余數(shù) 字操作 (AX) (DX, AX) / (SRC) 的商 (DX) (DX, AX) / (SRC) 的余數(shù) 帶符號數(shù)除法
21、指令: IDIV SRC 注意: * AX(DX,AX)為隱含的被除數(shù)寄存器。 * AL(AX)為隱含的商寄存器。 * AH(DX)為隱含的余數(shù)寄存器。 * SRC不能為立即數(shù)。,【例】寫出實現(xiàn)無符號數(shù)0400H / 0B4H運算的程序段。 MOV AX,0400H;(AX)=0400H MOV BL,0B4H;(BL)=0B4H DIV BL ;商(AL)=05H,余數(shù)(AH)=7CH 【例】寫出實現(xiàn)有符號數(shù)0400H /0B4H運算的程序段。 MOV AX,0400H;(AX)=0400H MOV BX,0B4H;(BX)=0B4H IDIV BX ;(AL)=0F3H,(AH)=24H,
22、5. 符號擴展指令 CBW AL AX 執(zhí)行操作: 若(AL)的最高有效位為0,則(AH)= 00H 若(AL)的最高有效位為1,則(AH)= 0FFH CWD AX (DX,AX) 執(zhí)行操作:若(AX)的最高有效位為0,則(DX)= 0000H 若(AX)的最高有效位為1,則(DX)= 0FFFFH,注意: * 無操作數(shù)指令 * 隱含對AL或AX進行符號擴展 * 不影響條件標志位,例:(AX)=0BA45H CBW ; (AX)=0045H CWD ; (DX)=0FFFFH (AX)=0BA45H,【例】x,y,z,v均為16位帶符號數(shù),計算(v-(x*y+z-540)/x MOV AX,
23、 X IMUL Y ; x*y MOV CX, AX MOV BX, DX MOV AX, Z CWD ADD CX, AX ADC BX, DX ; x*y+z SUB CX, 540 SBB BX, 0 ; x*y+z-540 MOV AX, V CWD SUB AX, CX SBB DX, BX ; v-(x*y+z-540) IDIV X ; (v-(x*y+z-540)/x,6. 十進制調整指令 BCD碼:用二進制編碼的十進制數(shù),又稱二-十進制數(shù) 壓縮的BCD碼:用4位二進制數(shù)表示1位十進制數(shù) 例:(59)10 (0101 1001)BCD 非壓縮的BCD碼:用8位二進制數(shù)表示1位十
24、進制數(shù) 例:(59)10 (0000 0101 0000 1001)BCD 數(shù)字的ASCII碼是一種非壓縮的BCD碼 DIGITASCIIBCD 030H0011 0000 131H0011 0001 232H0011 0010 939H0011 1001,【例】 :寫出(3590)10的壓縮BCD碼和非壓縮BCD碼,并 分別把它們存入數(shù)據區(qū)PAKED和UNPAK。 壓縮BCD:(3590)10(0011 0101 1001 0000)BCD 非壓縮BCD: (3590)10(00000011 00000101 00001001 00000000)BCD,壓縮的BCD碼調整指令,加法的十進制調
25、整指令:DAA 執(zhí)行操作:(AL) (AL)壓縮BCD 減法的十進制調整指令:DAS 執(zhí)行操作:(AL) (AL)壓縮BCD,19 壓縮BCD: 0001 1001,+ 08 + 0000 1000,27 0010 0001 + 110,(0010 0111)BCD,AF=1,問題的提出:,注意: * 隱含的操作寄存器為AL * 緊接在加減指令之后使用 * 影響條件標志位 (對OF無定義),調整方法: AF1或(AL)03AF,則(AL) (AL) 06H,AF1 CF1或(AL)47AF,則(AL) (AL) 60H,CF1 ( DAA做+, DAS做- ) 例:DATA SEGMENT B
26、CD1 DB34H, 18H ; (1834)BCD BCD2 DB89H, 27H ; (2789)BCD BCD3 DB2 DUP (?) DATA ENDS (1) BCD3 BCD1 + BCD2; (4623)BCD (2) BCD3 BCD1 - BCD2 ; (9045)BCD = -955,(1)MOV AL, BCD1 ; (AL)=34H ADD AL, BCD2 ; (AL)=34+89=BDH DAA ; (AL)=BD+60+06=23H AF=CF=1 MOV BCD3, AL ; (BCD3)=23H MOV AL, BCD1+1 ; (AL)=18H ADC A
27、L, BCD2+1 ; (AL)=18+27+1=40H AF=1 CF=0 DAA ; (AL)=40+06=46H MOV BCD3+1, AL ; (BCD3+1)=46H (2)MOV AL, BCD1 ; (AL)=34H SUB AL, BCD2 ; (AL)=34-89=ABH DAS ; (AL)=AB-60-06=45H AF=CF=1 MOV BCD3, AL ; (BCD3)=45H MOV AL, BCD1+1 ; (AL)=18H SBB AL, BCD2+1 ; (AL)=18-27-1=F0H DAS ; (AL)=F0-60=90H MOV BCD3+1, AL
28、 ; (BCD3+1)=90H,非壓縮的BCD調整指令 加法調整指令:AAA (AL) (AL)非壓縮BCD 減法調整指令:AAS (AL) (AL)非壓縮BCD 注意: * 隱含的操作寄存器為AL * 緊接在加減指令之后使用 * 除AF、CF外,對其它條件標志位無定義 調整方法: 若(AL)03=09,且AF=0,則(AL)47 = 0,AF CF0 若(AL)03=AF,或AF=1,則(AL) (AL)6,(AL)470 (AH) (AH)1,AF CF1,( AAA做+, AAS做- ),乘法調整指令:AAM (AL) (AX)非壓縮BCD 注意: * 隱含的操作寄存器為AL * 緊接在
29、MUL指令之后使用 * 對OF、CF、AF無定義 調整方法: (AL)除以0AH,商 (AH),余數(shù) (AL) 除法調整指令:AAD 被除數(shù)(AX) = (0000 xxxx 0000 xxxx)非壓縮BCD 除數(shù) = (0000 xxxx)非壓縮BCD 在DIV指令之前: (AL)2 0AH (AH)+(AL) (AH)2 0,例:(AX)0504H (BL)03H (1) (AL)*(BL) MUL BL ; (AX)=000CH AAM ; (AH)=01H (AL)=02H (2) (AX)/(BL) AAD ; (AH)=00H (AL)=36H DIV BL ; (AH)=00H
30、(AL)=12H AAM ; (AH)=01H (AL)=08H,1. 邏輯運算,4.3.3邏輯運算和移位指令,邏輯非指令:NOT OPR * OPR不能為立即數(shù) 執(zhí)行操作: (OPR) (OPR) * 不影響標志位 邏輯與指令:AND DST, SRC 執(zhí)行操作: (DST) (DST) (SRC) 邏輯或指令:OR DST, SRC 執(zhí)行操作: (DST) (DST) (SRC) 異或指令: XOR DST, SRC 執(zhí)行操作: (DST) (DST) (SRC) 測試指令: TEST OPR1, OPR2執(zhí)行操作: (OPR1) (OPR2) (“與”的結果不保存,影響標志位),例:屏蔽
31、AL的0、1兩位 AND AL, 0FCH 例:置AL的第5位為1 OR AL, 20H 例:使AL的0、1位變反 XOR AL, 3 例:測試某些位是0是1 TEST AL, 1 JZ EVEN,* * * * * * * * AND 1 1 1 1 1 1 0 0 * * * * * * 0 0,* * * * * * * * OR 0 0 1 0 0 0 0 0 * * 1 * * * * *,* * * * * * * * XOR 0 0 0 0 0 0 1 1 * * * * * * * *,移位指令 非循環(huán)移位 SHL / SAL 、( 邏輯左移 /算術左移 ) ,實現(xiàn)相同操作;
32、功能:,SHR 邏輯右移 SAR 算術右移,實現(xiàn)帶符號數(shù)被2除,朝小取整。 (SHshift,Aarithmetic),循環(huán)移位 ROL 小循環(huán)左移 ROR 小循環(huán)右移,RCL 帶進位位左移 (大循環(huán)左移 ) RCR 帶進位位右移 (大循環(huán)右移 ),注意:移位和循環(huán)移位后移出位都送標志位CF 指令格式: SHL /ROR reg /mem , count count = 1 ( 移位次數(shù)為1時 ) count = CL ( 移位次數(shù)大于1時 ) 例如:AL邏輯右移4次的指令為: MOV CL , 4 SHR AL , CL,【例】 AX= 0012H,BX= 0034H,把它們裝配成 AX=
33、1234H。 MOV AX,0012H MOV BX,0034H MOV CL, 8 ROL AX, CL ADD AX, BX,4.3.4 串操作指令,串傳送指令 存入串指令 從串取指令 串比較指令 串掃描指令,配合使用的前綴有: REP 重復 REPE/REPZ 相等/為零則重復 REPNE/REPNZ 不相等/不為零則重復,(1) MOVSB; DS:SIB ES:DIB, SI/DI +/- 1 CMPSB; DS:SI BES:DIB, SI/DI+/-1 STOSB; AL ES : DIB, DI+/-1 LODSB;DS:SIB AL, SI+/-1 SCASB; ALES;D
34、IB, DI+/-1,(2)若MOVSB改為MOVSW,則改為字操作 DS: SIB 和ES: DIB 改為DS: SIW 和ES: DIW CMPSW同MOVSW, STOSW、LODSW和SCASW指令中將原來的AL改為AX 而SI/DI +/-1 改為 SI/DI +/-2,(3)若五條串操作指令中來標明B或W,則指令格式為: MOVS dest , src CMPS src,dest;src-dest STOS dest LODS src SCAS dest 式中dest和src 都為變量名, 變量定義時所定義的類型屬性決定串操作中的操作類型。,(4) 5條重復前綴指令 例題:要求把內
35、存區(qū)中2000H:5000H開始的100個字節(jié) 數(shù)傳送到3000H:4000H中,用串操作指令實現(xiàn)之。 注意,MOVSB指令每執(zhí)行一次只能傳送一個字節(jié),所以必須編寫一段循環(huán)程序。,MOV AX , 2000H MOV DS , AX MOV AX , 3000H MOV ES , AX MOV SI , 5000H MOV DI , 4000H MOV CX ,100 LOP:MOVSB DEC CX JNZ LOP,若采用重復前綴REP,則最后三條指令可改為: REP MOVSB REP的功能是:重復執(zhí)行右邊的串操作指令CX次 另有4條重復前綴指令: REPZ若CX0,且ZF=1,則重復執(zhí)行
36、右邊的串操作指令,每執(zhí)行一次CX-1 若CX=0,或ZF=0,則結束串操作 REPNZ若CX0,且ZF=0,則重復執(zhí)行右邊的串操作指令,每執(zhí)行一次CX-1 若CX=0,或ZF=1,則結束串操作,REPE與REPZ功能一樣,REPNE與REPNZ功能一樣。 通常REP前綴用于MOVS/MOVSB/MOVSW 和STOS/SORSB/STOSW而REPZ/REPE/ REPNZ/ REPNE 前緩用于CMPS/CMPSB/CMPSW 和SCAS/SCASB/SCASW。,4.3.5 輸入輸出指令,輸入指令(I/O CPU) (只限于使用AX或AL ) 長格式: IN AL, PORT (字節(jié)) I
37、N AX, PORT (字) 執(zhí)行操作:(AL) (PORT) (字節(jié)) (AX) (PORT+1, PORT)(字) 短格式: IN AL, DX (字節(jié)) IN AX, DX (字) 執(zhí)行操作:(AL) ( (DX) ) (字節(jié)) (AX) ( (DX)+1, (DX) )(字),輸出指令(CPU I/O) 長格式: OUT PORT, AL (字節(jié)) OUT PORT, AX (字) 執(zhí)行操作:(PORT) (AL) (字節(jié)) (PORT+1, PORT) (AX)(字) 短格式: OUT DX, AL (字節(jié)) OUT DX, AX (字) 執(zhí)行操作:( (DX) ) (AL) (字節(jié)
38、) ( (DX)+1, (DX) ) (AX)(字),注意: * 不影響標志位 * 前256個端口號00HFFH可直接在指令中指定(長格式) * 如果端口號 256,端口號 DX(短格式) 例: IN AX, 28H ; MOV DX, 28H ; IN AX, DX MOV DATA_WORD, AX 例: MOV DX, 3FCH 例:OUT 5, AL IN AX, DX 例:測試某狀態(tài)寄存器(端口號27H)的第2位是否為1 IN AL, 27H TEST AL, 00000100B JNZ ERROR ;若第2位為1,轉到ERROR處理,4.3.6 控制轉移指令,無條件轉移指令 條件轉
39、移指令 循環(huán)指令 子程序調用和返回指令 中斷指令,(1) 無條件跳轉 ( 1 ) JMP 標號 / reg / mem 標號 ( label ) 是代碼段中一條指令的符號地址,它可以作為程序轉移指令的操作數(shù)使用。 標號有三屬性 段屬性(段基值) 偏移量屬性(偏移地址) 類型屬性(NEAR或FAR),標號的類型屬性為FAR, 則實現(xiàn)段間轉移,指令為5字節(jié)長; 標號的類型屬性為NEAR, 則實現(xiàn)段內轉移,指令為3字節(jié)長; 標號的類型屬性為NEAR中的SHORT, 則實現(xiàn)段內短轉移,指令為2字節(jié)長。,段間跳轉時機器指令中的地址為絕對地址, 是二個16位地址,偏移地址在前,段基值在后; 段內跳轉時機器
40、指令中的地址為相對地址, 是偏移地址的差值(16位); 段內短跳轉時機器指令中的地址為相對地址, 是偏移地址的差值(8位)。, JMP BX ; NEAR, 功能為: IP BX JMP BX BX 必須寫明: 是WORD PTR BX, 還是 DWORD PTR BX 若為WORD PTR BX, 則為段內跳轉,功能是用BXW送IP; 若為DWORD PTR BX, 則為段間跳轉,功能是用BXDW送CS:IP。,JMP指令的匯編表示,( 2 ) CALL 標號 / reg / mem 調用指令,用來調用一個子程序(過程), 又稱為轉子指令。 CALL指令的格式同JMP指令, 區(qū)別在于CALL指令必須保存斷點(CS:IP), 這是由硬件來實現(xiàn)的。 ( 3 ) RET 返回指令,從子程序返回主程序。,(2) 條件轉移指令 JC / JZ / JS /JO / JP 當CF /ZF /SF/ OF /PF =1時跳轉; J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無線基站維護培訓課件
- 抖音商戶短視頻創(chuàng)意提案評審制度
- BWA-6047-生命科學試劑-MCE
- 江蘇省興化市顧莊區(qū)三校2024-2025學年七上數(shù)學期末教學質量檢測模擬試題含解析
- 美發(fā)培訓卷杠課件
- 國際多式聯(lián)運操作規(guī)范與風險管理
- 航空行業(yè)三年發(fā)展報告:國際與國內市場的比較研究
- 2024-2025學年浙江省杭州市濱江區(qū)數(shù)學七年級第一學期期末調研試題含解析
- 云南司法警官職業(yè)學院《國畫山水》2023-2024學年第一學期期末試卷
- 河道垃圾清理管理辦法
- 2025屆黑龍江省大慶中學九上化學期末聯(lián)考試題含解析
- 20濕性愈合功能性敷料的種類與敷料選擇
- 燃氣報警器行業(yè)發(fā)展分析及投資戰(zhàn)略研究報告2025-2028版
- 2025年中國扭蛋行業(yè)市場全景分析及前景機遇研判報告
- 2025至2030中國現(xiàn)金處理中心行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 小學音標題目及答案
- 2024年宿州蕭縣縣直事業(yè)單位招聘真題
- 美好生活大調查:中國居民消費特點及趨勢報告(2025年度)
- 2025河南省豫地科技集團有限公司社會招聘169人筆試參考題庫附帶答案詳解
- 快遞分揀人力承包協(xié)議書
- Q-GDW10162-2025 輸電桿塔固定式防墜落裝置技術規(guī)范
評論
0/150
提交評論