版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章 80X86尋址方式和指令系統(tǒng)3.1 80X86尋址方式3.2 80X86指令格式3.3 80X86指令系統(tǒng) 編輯ppt3.1 80X86尋址方式3.1.1 數(shù)據(jù)尋址方式 操作數(shù)有可能在: (1) 代碼段中,作為指令中的立即數(shù) (2) CPU寄存器中 (3)存儲器的數(shù)據(jù)段或堆棧段或附加數(shù)據(jù)段中所以,總的來說,數(shù)據(jù)尋址方式分為三種: 立即尋址 寄存器尋址 存儲器尋址編輯ppt一、立即尋址操作數(shù)直接包含在代碼段的指令中。 如: MOV EAX,80000000H MOV BX,6688H MOV AL,12H立即數(shù)只能作為源操作數(shù)立即尋址主要用來給通用寄存器或存儲器賦值不允許給段寄存器直接賦
2、值編輯ppt例3.1 立即尋址編輯ppt立即尋址過程示意編輯ppt立即尋址動態(tài)示意編輯ppt二、寄存器尋址操作數(shù)在寄存器中。32位寄存器:EAX、EBX、ECX、EDX、ESP、EBP、 ESI、EDI16位寄存器:AX、BX、CX、DX、SP、BP、SI、 DI、CS、DS、SS、ES、FS、GS8 位寄存器:AH、AL、BH、BL、CH、CL、DH、DL 如:MOV AX,BX MOV EDI,ESI MOV AL,CL編輯ppt例3.2 寄存器尋址編輯ppt三、存儲器尋址 操作數(shù)在存儲器中,其地址由指令以某種方式指出。(一)16位指令模式下: 物理地址=段基址 10H 有效地址EA(二)
3、32位指令模式下: 物理地址=段基址 有效地址EAEA的計算方法根據(jù)采用的尋址方式不同而不同。編輯ppt(一)16位指令模式下的存儲器尋址 16位指令模式尋址結構:段基址10H基址變址偏移量 基址:BX、BP 變址:SI、DI 偏移量:8位或16位 如果有效地址在BX,SI或DI中,則以DS寄存器內容為段基址;如果有效地址在BP中,則以SS段寄存器之內容為段基址。如果使用段超越前綴(CS:ES:DS:SS:),操作數(shù)可以放在冒號前指定的段。 16位指令模式尋址方式: 直接尋址 寄存器間接尋址 寄存器相對尋址 基址變址尋址 相對基址變址尋址 編輯ppt1、直接尋址操作數(shù)在存儲器單元中。操作數(shù)所在
4、的有效地址EA直接由指令指出。 例1 MOV AX,3000H 例2 MOV BL,BLOCK 例3 MOV BX,DATA1編輯ppt例3.3 直接尋址編輯ppt直接尋址過程示意編輯ppt直接尋址動態(tài)示意編輯ppt2、寄存器間接尋址 操作數(shù)的有效地址在BX、BP或SI、DI中,EA可表示為例1 MOV AX,BX例2 MOV DL,SI編輯ppt例3.4 寄存器間接尋址編輯ppt寄存器間接尋址過程示意編輯ppt寄存器間接尋址動態(tài)示意編輯ppt3、寄存器相對尋址操作數(shù)在存儲單元中,其有效地址EA可表示為 例1 MOV AL,BX4000H亦可寫成: MOV AL,4000HBX 例2 MOV
5、AX,BP+2000H編輯ppt例3.6 寄存器相對尋址編輯ppt寄存器相對尋址過程示意編輯ppt寄存器相對尋址動態(tài)示意編輯ppt4、基址變址尋址操作數(shù)在存儲單元中,其有效地址EA可表示為 例1 MOV AX,BXSI 或寫成:MOV AX,BXSI 例2 MOV AX,BX+DI 例3 MOV AX,BP+SI 例4 MOV AX,BP+DI 編輯ppt例3.7 基址變址尋址編輯ppt基址變址尋址過程示意編輯ppt基址變址尋址動態(tài)示意編輯ppt5、相對基址變址尋址操作數(shù)在存儲單元中,其有效地址EA可表示為 例1 MOV AX,BXSI1500H或寫成 MOV AX,1500BXSI 例2 M
6、OV AX,BP+DI+1000H編輯ppt例3.8 相對基址變址尋址編輯ppt相對基址變址尋址過程示意編輯ppt相對基址變址尋址動態(tài)示意編輯ppt(二)32位指令模式下的存儲器尋址 32位指令模式尋址結構由5部分組成:段址基址變址比例因子偏移量 其中基址寄存器或變址寄存器可以是除ESP以外的任何32位通用寄存器。當基址寄存器為EBP時,默認段寄存器SS存放段選擇符,否則,默認DS存放段選擇符。也可使用段超越前綴來指定。比例因子為1,2,4,8。偏移量為8位或32位。 編輯ppt32位指令模式下的存儲器尋址方式1、直接尋址 如:MOV EAX,10000000H2、 間接尋址 如:MOV ED
7、X,ECX3、 相對基址尋址 如:MOV ECX,EAX+80H4、 相對比例變址尋址 如:MOV EBX,ESI*4+80H5、 相對比例基址變址尋址 如:MOV EAX,EBP+EDI*4+80H編輯ppt3.1.2 程序地址尋址方式一、相對尋址 相對尋址為段內尋址,指令中給出帶符號的相對偏移量,程序目標地址為當前IP值加上相對偏移量作為偏移地址。 二、 直接尋址 直接尋址是指指令中直接給出轉移指令的目標地址。在段間轉移中,指令中給出目標段地址或代碼段的段描述符。三、間接尋址 間接尋址 分段內和段間間接尋址,指令中以間接方式給出轉移指令的目標地址,通常存放在數(shù)據(jù)段。 編輯ppt3.1.3
8、堆棧地址尋址方式字數(shù)據(jù)進棧步驟:1、(E)SP1(E)SP2、 高8位堆棧3、(E)SP1(E)SP4、低8位堆棧字數(shù)據(jù)出棧步驟:1、棧頂內容目標寄存器或目標單元的低8位2、(E)SP1(E)SP3、棧頂內容目標寄存器或目標單元的高8位4、(E)SP1(E)SP編輯ppt堆棧操作示意編輯ppt思考題 1、 設DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=00001000H,EBX=00002000H,假設按16位實模式操作,確定下列每條指令訪問內存的物理地址,并且指出源操作數(shù)及目的操作數(shù)的尋址方式。(1)MOV AL,1234H (2)MO
9、V EDX,BX(3)MOV CL,BX100H (4)MOV SI,EBX(5)MOV AH,BUFBXSI (6)MOV EAX,BP1234H 編輯ppt3.2 80X86指令格式指令基本格式: 標號: 助記符 操作數(shù) ;注釋BYTE PTR 。WORD PTR 。DWORD PTR 。如 INC WORD PTR BX編輯ppt3.3 80X86指令系統(tǒng)按功能分類:數(shù)據(jù)傳送指令算術運算指令邏輯運算指令控制轉移類指令串操作指令輸入/輸出指令處理器控制指令中斷指令與DOS功能調用編輯ppt3.3.1 數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令堆棧操作指令地址傳送指令標志寄存器傳送指令查表指令符號擴展指令
10、數(shù)據(jù)傳送指令包括:編輯ppt3.3.1 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令包括: 通用數(shù)據(jù)傳送指令堆棧操作指令地址傳送指令標志寄存器傳送指令查表指令符號擴展指令編輯ppt傳送指令數(shù)據(jù)流* CS不能為目的操作數(shù),不能對(E)IP直接傳送數(shù)據(jù)* 堆棧操作不允許為字節(jié)操作編輯ppt一、通用數(shù)據(jù)傳送指令DEST:目的操作數(shù)SRC:源操作數(shù)1、一般傳送指令 MOV DEST,SRC如:MOV AL,CL MOV BX,SI MOV EAX,EBX 編輯ppt使用MOV指令應注意:立即數(shù)不允許直接送段寄存器,且立即數(shù)不能做目的操作數(shù)源操作數(shù)和目的操作數(shù)不允許同時為存儲器操作數(shù)源操作數(shù)和目的操作數(shù)不允許同時為段寄存器
11、兩操作數(shù)的數(shù)據(jù)類型要一致傳送操作不影響標志位不允許對CS、(E)IP傳送數(shù)據(jù)編輯ppt2、擴展傳送指令 MOVSX DEST,SRC MOVZX DEST,SRC如 MOV BL,80H MOVSX AX,BL;AX=FF80H MOVZX AX,BL;AX=0080H*目的操作數(shù)為通用寄存器(16位或32位)*源操作數(shù)長度必須小于目的操作數(shù)長度,為通用寄存器或存儲器操作數(shù)(8位或16位)編輯ppt3、交換指令 XCHG DEST,SRC如:XCHG EAX,EBX XCHG AX,SI XCHG AL,SI*兩操作數(shù)中不允許出現(xiàn)立即數(shù)*兩操作數(shù)不允許同時為存儲器操作數(shù)*兩操作數(shù)數(shù)據(jù)類型必須一
12、致 編輯ppt二、堆棧操作指令壓棧指令 PUSH SRC如:PUSH EAX PUSH DS PUSH SI PUSH DWORD PTR SI PUSH 1234H PUSHD 80H 出棧指令 POP DEST如:POP AX POP DS POP BX POP DWORD PTR DI 編輯ppt三、地址傳送指令格式: LEA DEST,SRC *DEST為16位或32位通用寄存器 *SRC為16位或32位存儲器操作數(shù)例1:LEA BX,SI+1005H 若SI=1000H 則BX=?例2:LEA DI,BLOCK MOV DI,BLOCK 有何區(qū)別?編輯ppt四、標志寄存器傳送指令格式
13、1:LAHF SAHF格式2:PUSHF POPF格式3: PUSHFD POPFD*SAHF、POPF、POPFD影響標志位編輯ppt五、查表指令格式: XLAT指令規(guī)定:表格存于數(shù)據(jù)段中 表首偏移地址BX 表內偏移量AL 查找結果AL所找單元的物理地址: (DS)10H+(BX)+(AL)編輯ppt查表指令應用舉例LEA BX,BLOCK MOV AL, 3 XLAT結果:AL內容為4FH例:試編程將內存中以BLOCK為起始地址的編碼表中順序號為3的編碼送AL寄存器。 編輯ppt六、符號擴展指令針對帶符號數(shù),按帶符號數(shù)擴展。1、CBW 功能:AL(8位)AX(16位)2、CWD 功能:AX
14、(16位)DX:AX(32位)3、CWDE 功能:AX(16位)EAX(32位)4、CDQ 功能:EAX(32位)EDX:EAX(64位)編輯ppt3.3.2 算術運算指令加法指令減法指令加1減1指令比較指令乘法指令除法指令BCD算術運算指令編輯ppt算術運算類指令特點影響標志位操作數(shù)不允許為段寄存器不允許兩個操作數(shù)同為存儲器操作數(shù)若無特別規(guī)定,操作數(shù)類型必須一致目的操作數(shù)不允許為立即數(shù)當操作數(shù)類型不明確時必須使用PTR偽指令編輯ppt一、加法指令格式(1) ADD DEST,SRC功能:源操作數(shù)+目的操作數(shù)目的操作數(shù)格式(2) ADC DEST,SRC功能:源操作數(shù)+目的操作數(shù)+CF目的操作
15、數(shù)例:32F2H+A020H=?MOV AX,32F2H 或 MOV AX,32F2HMOV BX,0A020H MOV BX,0A020HADD AX,BX ADD AL,BL ADC AH,BH編輯ppt二、減法指令格式(1) SUB DEST,SRC功能:目的操作數(shù)源操作數(shù)目的操作數(shù)格式(2) SBB DEST,SRC功能:目的操作數(shù)源操作數(shù)CF目的操作數(shù)*SUB、SBB指令與ADD、ADC一樣,影響標志位OF、SF、ZF、AF,PF,CF編輯ppt三、加1減1指令加1指令 INC DEST功能:目的操作數(shù)1目的操作數(shù)減1指令 DEC DEST功能:目的操作數(shù)1目的操作數(shù)*不影響CF,影
16、響OF、SF、ZF、AF、PF例:INC BX INC BYTE PTR BX DEC EAX DEC WORD PTRSI 編輯ppt四、比較指令格式 CMP DEST,SRC功能:目的操作數(shù)源操作數(shù)(1)若目、源為無符號數(shù) CF=0 則目源 (若ZF=1,則目=源) CF=1 則目源(2)若目、源為帶符號數(shù) 若目、源為同號數(shù)(OF=0) 若均為正,SF=0 則目源(若ZF=1,則目=源) SF=1 則目源 若均為負 ,SF=0 則目源(若ZF=1,則目=源) SF=1 則目源 編輯ppt若目、源為異號數(shù)(OF=0或1) 若目為正,源為負 則目源 若此時 SF=0 則OF=0 若此時 SF=
17、1 則OF=1 若目為負,源為正 則目源 若此時 SF=1 則OF=0 若此時 SF=0 則OF=1綜合起來,若目、源為帶符號數(shù) OFSF=0 則目源 OFSF=1 則目源 編輯ppt五、交換相加指令格式 XADD DEST,SRC功能:目的操作數(shù)源操作數(shù)目的操作數(shù) 且原目的操作數(shù)源操作數(shù)影響標志位OF、SF、ZF、AF、PF、CF六、求補指令格式 NEG DEST功能:求目的操作數(shù)的相反數(shù)的補碼影響標志位OF、SF、ZF、AF、PF、CF編輯ppt七、乘法指令格式 MUL SRC (針對無符號數(shù)) IMUL SRC (針對帶符號數(shù))隱含規(guī)定: SRC為一乘數(shù)因子,可為 8位/ 16位 /32
18、位寄存器或存儲器另一乘數(shù)因子在累加器中(AL/ AX / EAX)結果為乘積,乘積隱含在(AX/DX:AX/EDX:EAX) 字節(jié)乘 字乘 雙字乘*若乘積高位為0,則CF=0,OF=0 若乘積高位含有效數(shù)據(jù),則CF=1,OF=1 對其它標志位無定義 編輯ppt例:計算存于下列內存中的兩個無符號數(shù)的乘積 1234H2345H=?結果放RESULT單元LEA BX,BLOCKMOV AX,BXMUL WORD PTR BX+4MOV RESULT,AXMOV RESULT+2,DX結果為02820404HCF=1,OF=1編輯ppt八、除法指令格式 DIV SRC (針對無符號數(shù)) IDIV SR
19、C (針對帶符號數(shù))隱含規(guī)定: SRC為除數(shù),為 8位/ 16位 /32位寄存器或存儲器被除數(shù)隱含在 ( AX/DX:AX/ EDX:EAX)商隱含在 ( AL/ AX / EAX)余數(shù)隱含在 ( AH/ DX / EDX) 字節(jié)除 字除 雙字除*當除數(shù)為0或商溢出時會產生中斷*被除數(shù)必須是除數(shù)的雙倍長度,否則,需要進行高位擴展 無符號數(shù)高位擴展為全0,帶符號數(shù)按符號擴展指令擴展編輯ppt九、組合型BCD算術運算指令 組合BCD碼也稱壓縮格式的BCD碼,用一個字節(jié)存儲2位BCD碼。 如十進制數(shù)12的組合BCD碼為 00010010B 35的組合BCD碼為 00110101B該類指令使用場合:
20、當參與運算的十進制數(shù)以其組合BCD碼形式存放,加減時,計算機會當作二進制數(shù)來運算,其結果一定不是理想要得的組合型BCD碼結果,這時,必須用組合型BCD算術運算指令加以調整,即將二進制結果調整為BCD碼表示形式。 加法調整指令一般緊跟在ADD或ADC之后,減法調整指令一般緊跟在SUB或SBB之后。編輯ppt1、組合型BCD加法調整指令格式 DAA功能:AL(二進制和)組合BCD碼例:26+68=? 分析:用組合BCD碼存放時,兩個數(shù)應分別為26H和68H,理想結果應該為94H。編程如下:MOV AL,26HMOV BL,68HADD AL,BL ;AL=8EHDAA ;AL=94H編輯ppt2、
21、組合型BCD減法調整指令格式 DAS功能:AL(二進制差)組合BCD碼例:6556=? MOV AL,65H MOV BL,56H SUB AL,BL ;AL=0FH DAS ;AL=09H 編輯ppt十、非組合型BCD算術運算指令 非 組合BCD碼也稱非壓縮格式的BCD碼,用一個字節(jié)存儲1位BCD碼,高4位無意義。 如非組合BCD碼 00010010B表示的數(shù)為2 非組合BCD碼 00110101B表示的數(shù)為5 3635H即0011011000110101B表示的數(shù)是65由于09的ASCII碼為30H39H,機器采用一個字節(jié)存放一位ASCII碼,所以,ASCII碼是一種非組合型BCD碼。 非
22、組合型BCD調整指令有加、減、乘、除四種調整指令。編輯ppt1、非組合型BCD加法調整指令格式 AAA功能:AL(二進制和)非組合BCD碼例:5+9=? 分析:用非組合BCD碼存放時,兩個數(shù)應分別為05H和09H,理想結果應該為0104H。編程如下:MOV AL,05HMOV BL,09HADD AL,BL ;AL=0EHAAA ;AX=0104H編輯ppt2、非組合型BCD減法調整指令格式 AAS功能:AL(二進制差)非組合BCD碼 3、非組合型BCD乘法調整指令格式 AAM功能:AL(二進制乘積)非組合BCD碼 4、非組合型BCD除法調整指令格式 AAD功能:AX(兩位非組合BCD碼)二進
23、制數(shù)*AAD指令必須放在除法指令之前進行。 其他調整指令都是先運算后調整。編輯ppt思考題判斷下列指令是否正確,若有錯誤,請指出原因,并改正。(1)MOV BL,OFFSET BLOCK (2)LEA DI,BXSI(3)PUSH AL (4)POP CS(5)MOV ES,DS (6)MOV AX,SIDI(7)MOV BXBP,AX (8)ADD AX,F(xiàn)000H(9)MOV BX,SI (10)MOV AH,DX(11)INC BX (12)XCHG AX,2000H (13)MOV AX,BXDX (14)ADD BX,BX(15)MOV AX,DISI (16)MOV EAX,ECX
24、*480H 編輯ppt3.3.3 邏輯運算指令包括:邏輯指令、移位指令、位操作指令該類指令特點:影響標志位操作數(shù)不允許為段寄存器不允許兩個操作數(shù)同為存儲器操作數(shù)若無特別規(guī)定,操作數(shù)類型必須一致目的操作數(shù)不允許為立即數(shù)當操作數(shù)類型不明確時必須使用PTR偽指令編輯ppt一、邏輯指令1、邏輯與指令格式 AND DEST,SRC功能:目的操作數(shù)源操作數(shù)目的操作數(shù)*常用來使目的操作數(shù)的某些位被屏蔽(即清0)例:MOV AL,00111001B 若要使AL中高4位清0,低4位不變,怎么辦? AND AL,00001111B編輯ppt2、邏輯或指令格式 OR DEST,SRC功能:目的操作數(shù)源操作數(shù)目的操作
25、數(shù)*常用來使目的操作數(shù)的某些位置1例:MOV AL,00001001B 若要使AL中最高2位置1,低6位不變,怎么辦? OR AL,11000000B編輯ppt3、邏輯異或指令格式 XOR DEST,SRC功能:目的操作數(shù)源操作數(shù)目的操作數(shù)*常用來使目的操作數(shù)的某些位變反 例:MOV AL,00001001B 若要使AL中D7、D0位變反,其它位不變*對寄存器操作數(shù)清0 例 XOR DS,DS*測試一操作數(shù)與另一操作數(shù)是否相等 例 XOR AL,BL 若ZF=1,則AL=BLXOR AL,10000001B編輯ppt4、邏輯非指令格式 NOT DEST功能:目的操作數(shù)按位取反目的操作數(shù)5、測試
26、指令格式 TEST DEST,SRC功能:目的操作數(shù)源操作數(shù)*常用來測試目的操作數(shù)的某位的狀態(tài)(是0還是1) 或者用來測試目的操作數(shù)的某些位是否同時為0 例:若要測試AL中D7位為0還是為1,怎么辦?TEST AL,10000000B 若ZF=1,則D7=0 若ZF=0,則D7=1編輯ppt邏輯指令對標志位的影響NOT 指令不影響標志位AND、OR、XOR、TEST 指令影響標志位SF、ZF、PF,并且使CF=0,OF=0,對AF未定義編輯ppt二、移位指令1、移位分類 算術移位(A) 左移(L) 右移(R) 非循環(huán)(S) 左移(L) 邏輯移位(H) 右移(R) 小循環(huán)移位(O)左移(L) 循
27、環(huán) (R) 右移(R) 大循環(huán)移位(C)左移(L) 右移(R) 移位指令有:SAL、SAR、SHL、SHR ROL、ROR、RCL、RCR編輯ppt2、移位指令格式DEST:表示目的操作數(shù),(寄存器或存儲器)OPRD:表示移位的次數(shù),可以是立即數(shù),也可 以由CL間接指定移位次數(shù)。SAL DEST,OPRDSAR DEST,OPRDSHL DEST,OPRDSHR DEST,OPRDROL DEST,OPRDROR DEST,OPRDRCL DEST,OPRDRCR DEST,OPRD編輯ppt3、移位示意圖1(非循環(huán)移位) (a)SALSHL; (b)SAR; (c)SHR 編輯ppt4、移位
28、示意圖2(循環(huán)移位) (a)ROL; (b) ROR; (c)RCL; (d)RCR編輯ppt5、對標志位的影響SALSHL 影響OF、SF、ZF、PF、CFSHRSARROLROR 影響CF、OFRCLRCR編輯ppt 設一個字節(jié)數(shù)據(jù)X存放在AL 寄存器中,試分析下列程序段的功能。 XOR AH,AH SAL AX,1 MOV BX,AX MOV CL,2 SAL AX,CL ADD AX,BX;AH=0;AX=2X;BX=2X;AX=4(2X)=8X;AX=8X+2X=10X功能:10XAX編輯ppt三、位操作指令1、位測試和設置指令 BT DEST,SRC (指定位送CF) BTC DE
29、ST,SRC (指定位送CF,該位取反) BTR DEST,SRC (指定位送CF,該位清0) BTS DEST,SRC (指定位送CF,該位置1)如 MOV AX,1234H ;AX=0001001000110100B MOV CX,5 BT AX,CX ;CF=1,AX=1234H BTC AX,CX ;CF=1,AX=1214H BTS AX,CX ;CF=0,AX=1234H BTR AX,CX ;CF=1,AX=1214H編輯ppt2、位掃描指令 BSF DEST,SRC功能:從低位開始掃描SRC,若所有位為0,則ZF=0,否 則ZF=1,且將第一個出現(xiàn)1的位號存入DEST中。 BS
30、R DEST,SRC功能:從高位開始掃描SRC,若所有位為0,則ZF=0,否 則ZF=1,且將第一個出現(xiàn)1的位號存入DEST中。如 MOV AX,1234H ;AX=0001001000110100B BSF BX,AX ;ZF=1,BX=0002H BSR DX,CX ;CF=1,AX=000CH 編輯ppt3、位標志指令 CLC (CF=0) STC (CF=1) CLD (DF=0) STD (DF=1) CLI (IF=0) STI (IF=1) 4、條件設置字節(jié)指令 格式:SETCOND DEST 功能:測試條件(COND)若為真,則將DEST置01H,否則置00H。見P87的表3.
31、3 編輯ppt3.3.4 控制轉移類指令該類指令不影響標志位。無條件轉移指令條件轉移指令循環(huán)控制指令編輯ppt一、無條件轉移指令TARGET:目標標號 REG:通用寄存器1、段內直接轉移 JMP TARGET2、段內間接轉移 JMP REG JMP NEAR PTR REG3、段間直接轉移 JMP FAR PTR TARGET4、段間間接轉移 JMP FAR PTR REG編輯ppt二、條件轉移指令1、單標志位條件轉移指令 JO TARGET ;OF=1,即溢出轉 JNO TARGET ;OF=0,不溢出轉移 JS TARGET ;SF=1,結果為負轉移 JNS TARGET ;SF=0,結果
32、為正轉移 JC TARGET ;CF=1,有進位轉移 JNC TARGET ;CF=0,無進位則轉移JP TARGET ;PF=1,為偶轉移JNP TARGET ; PF=0,為奇轉移 JEJZ TARGET ;ZF=1,等于或為零轉移JNEJNZ TARGET ;ZF=0,等于或非零轉移編輯ppt例:在不改變AL值的同時,檢測AL 中1的個數(shù),且存放在BL中。 .MODEL TINY .CODE .STARTUP MOV BL,0 MOV DL,8 AGAIN: ROL AL,1 JNC NEXT INC BL NEXT: DEC DL JNZ AGAIN .EXIT END編輯ppt2、無
33、符號數(shù)比較條件轉移指令助記符: J轉移 A高于 B低于 E等于 N不指令: JA/JNBE TARGET ;高于/不低于等于轉移JAE/JNB TARGET ;高于等于/不低于轉移JB/JNAE TARGET ;低于/不高于等于轉移JBE/JNA TARGET ;低于等于/不高于轉移編輯ppt3、帶符號數(shù)比較條件轉移指令 J轉移 G大于 L小于 E等于 N不 JG/JNLE TARGET ;大于/不小于等于轉移JGE/JNL TARGET ;大于等于/不小于轉移JL/JNGE TARGET ;小于/不大于等于轉移JLE/JNG TARGET ;小于等于/不大于轉移4、測試CX條件轉移指令JCX
34、Z TARGET ;CX=0 轉移JECXZ TARGET ;ECX=0 轉移編輯ppt使用條件轉移指令應注意:*條件轉移指令一般跟在CMP指令或TEST指令之后,根據(jù)其影響的標志位來決定是否產生轉移。*當條件滿足時,轉移到目標標號去執(zhí)行,否則,順著程序往下執(zhí)行。編輯ppt例3.65 假設AL中帶符號數(shù)X為某值,試編程將求出的符號函數(shù)值f(x)存放在AH中。 .MODEL TINY .CODE .STARTUP CMP AL,0 JGE BIG MOV AL,0FFH JMP DONE BIG: JE DONE MOV AL,1DONE: MOV AH,AL .EXIT END編輯ppt三、循
35、環(huán)控制指令格式:LOOPCC TARGET功能:(E)CX1 (E)CX,不影響標志位,且測試條件CC成立,則轉移到TARGET處執(zhí)行.LOOP ; CX1 CX,若CX0則循環(huán)LOOPW ;同上LOOPD ; ECX1 ECX,若ECX0則循環(huán)LOOPE/LOOPZ ; CX1 CX,若CX0且ZF=1則循環(huán)LOOPEW/LOOPZW ;同上LOOPED/LOOPZD ; ECX1 ECX,若ECX0且ZF=1則循環(huán)LOOPNE/LOOPNZ ; CX1 CX,若CX0且ZF=0則循環(huán)LOOPNEW/LOOPNZW ;同上LOOPNED/LOOPNZD ; ECX1 ECX,若ECX0且ZF
36、=0則循環(huán)編輯ppt例3.68 找出以ARRAY為首地址的100個字數(shù)組中的第一個非0項,送AX寄存器中. .MODEL SMALL .DATAARRAY DW 0, 0, 0, 0, 1010H, ;(100個字) .CODE .STARTUP MOV CX, 64H LEA BX, ARRAY MOV SI, 0FFFEH ZERO: INC SI INC SI CMP WORD PTR BX+SI, 0 LOOPZ ZERO JCXZ A1 MOV AX, BX+SI A1: NOP .EXIT END編輯ppt3.3.5 串操作指令幾個概念: 串 串元素 串操作有關隱含約定:尋址: 以
37、DS:(E)SI尋址源串, 以ES:(E)DI尋址目的串 每次串操作后, (E)SI和(E)DI自動指向下一串元素地址移動方向: 當DF=0時, (E)SI和(E)DI的修改為增量 當DF=1時, (E)SI和(E)DI的修改為減量 (E)SI和(E)DI初始賦值 若DF=0, 賦首偏移地址 若DF=1, 賦末偏移地址 編輯ppt一、重復前綴指令REP 說明:在串操作指令之前若加上REP,則執(zhí)行一次串操作后不僅自動修改(E)SI和(E)DI ,而且執(zhí)行(E)CX1( E)CX ,若(E)CX0,再次重復串操作,直到(E)CX=0為止。 REPE/Z 說明: (E)CX1( E)CX,若(E)C
38、X0且ZF=1,則重復 REPNE/REPNZ說明: (E)CX1( E)CX,若(E)CX0且ZF=0,則重復二、方向標志指令 CLD ; (DF=0) STD ; (DF=1)編輯ppt三、串傳送指令REP MOVSB/MOVSW/MOVSD 功能:將DS:(E)SI的內容復制到ES:(E)DI中例3.69 將以SRC開頭的100個字節(jié)傳送到以DEST開頭的單元中. .MODEL SMALL .DATA MOV CX,100SRC DB 1,2,3, ;(100個字節(jié)) LEA SI, SRCDEST DB 100 DUP(?) LEA DI, DEST .CODE CLD .STARTU
39、P REP MOVSB MOV AX,DATA .EXIT MOV ES,AX END編輯ppt四、串比較指令REPE/Z REPNE/NZCMPSB/CMPSW/CMPSD 功能:將DS:(E)SI的內容ES:(E)DI的內容例3.70 .MODEL SMALL .DATA LEA DI, DESTSRC DB A B C D E F G H CLD DEST DB A B C E F F F E REPE CMPSBSUT DB ? JZ EQUL .CODE MOV BH,0 .STARTUP JMP DONE MOV AX,DATA EQUL:MOV BH, 0FFH MOV ES,A
40、X DONE:MOV SUT,BH MOV CX, 8 .EXIT LEA SI, SRC END編輯ppt五、串掃描指令REPE/Z REPNE/NZSCASB/SCASW/SCASD 功能:將AL或AX或EAX的內容ES:(E)DI的內容例3.70 .MODEL SMALL MOV AL,C .DATA CLD DEST DB A B C D E F REPNE SCASBADDR DW ? JZ EQUL .CODE MOV DI,0 .STARTUP JMP DONE MOV AX,DATA EQUL:DEC DI MOV ES,AX DONE:MOV ADDR,DI MOV CX,
41、6 .EXIT LEA DI, DEST END編輯ppt六、串裝入指令LODSB/LODSW/LODSD 功能:將DS:(E)SI所指的串元素裝入AL或AX或EAX中 七、串存儲指令 REPSTOSB/STOSW/STOSD功能:將AL或AX或EAX中的內容存入ES:(E)DI所指的目的串單元中編輯ppt3.3.6 輸入/輸出指令一、輸入/輸出指令幾個概念: I/O端口 輸入 輸出有關約定:操作數(shù) 兩操作數(shù)分別是端口地址內容和累加器(AL或AX或EAX)內容。尋址: 直接尋址(8位端口地址,0255) 間接尋址(16位端口地址,由DX指定,尋址64K) 端口地址數(shù)據(jù)長度 每個端口數(shù)據(jù)長度均為8位 編輯ppt1、輸入指令IN DEST,SRC其中,DEST可以是AL或AX或EAX SRC可以是8位端口地址或DX如:IN AL,80H IN AX,80H IN EAX,80H MOV DX,6000H IN AL,DX IN AX,DX IN EAX,DX編輯ppt2、輸出指令OUT DEST,SRC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工業(yè)地產租賃合同示范文本(二零二五年度)6篇
- 2024長期合作運輸合同
- 2024物聯(lián)網(wǎng)農業(yè)技術研發(fā)合同
- 2024虛擬現(xiàn)實游戲內容制作與授權合同
- 2024年全民科學素質知識競賽題庫及答案(共60題)
- 2024裝修合同注意事項及細節(jié)
- 動植物檢驗檢疫學知到智慧樹章節(jié)測試課后答案2024年秋北京工商大學
- 電子競技專家聘用協(xié)議
- 汽車按揭購買合同樣本
- 2024預算單位公務卡個性化定制服務協(xié)議3篇
- 承諾函(支付寶)
- FZ/T 81024-2022機織披風
- GB/T 24123-2009電容器用金屬化薄膜
- 艾滋病梅毒乙肝實驗室檢測
- 國鐵橋梁人行道支架制作及安裝施工要點課件
- 領導科學全套精講課件
- 粵教版地理七年級下冊全冊課件
- 小學科學蘇教版六年級上冊全冊精華知識點(2022新版)
- 萎縮性胃炎共識解讀
- 2022版義務教育語文課程標準(2022版含新增和修訂部分)
- 精品金屬線管布線施工工程施工方法
評論
0/150
提交評論