微機原理-第三章-8_第1頁
微機原理-第三章-8_第2頁
微機原理-第三章-8_第3頁
微機原理-第三章-8_第4頁
微機原理-第三章-8_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理與接口技術(shù)第4版機械工業(yè)出版社3.6.2 3.6.2 移位指令移位指令 非循環(huán)移位 邏輯左移指令 SHL 邏輯右移指令 SHR 算術(shù)左移指令 SAL 算術(shù)左移指令 SARS: ShiftR: RotateL: LeftR: RightA: ArithmeticC: Carry flag 循環(huán)移位 不帶進位循環(huán)左移指令 ROL 不帶進位循環(huán)右移指令 ROR 帶進位循環(huán)左移指令 RCL 帶進位循環(huán)右移指令 RCR微機原理與接口技術(shù)第4版機械工業(yè)出版社1. 1. 非循環(huán)移位指令非循環(huán)移位指令 分邏輯(Logical)和算術(shù)(Arithmetic)移位 具有左移(Left)或右移(Right)

2、操作SHL reg/mem,i8/CL;邏輯左移:最低位補0,最高位進入CFSHR reg/mem,i8/CL;邏輯右移:最高位補0,最低位進入CFSAL reg/mem,i8/CL;算術(shù)左移,等同于SHLSAR reg/mem,i8/CL;算術(shù)右移:最高位不變,最低位進入CF 目的操作數(shù):寄存器或存儲單元reg/mem 移位位數(shù)i8/CL示意圖示意圖微機原理與接口技術(shù)第4版機械工業(yè)出版社移位指令的功能和示例移位指令的功能和示例返回返回微機原理與接口技術(shù)第4版機械工業(yè)出版社例例 若(若(AL)=96H, CF=0 執(zhí)行執(zhí)行 SHL AL, 1執(zhí)行前:執(zhí)行前:10010110執(zhí)行后:執(zhí)行后:(A

3、L)=2CH ,CF=100101100執(zhí)行前執(zhí)行前10010110執(zhí)行后:執(zhí)行后:(AL)=E5H ,CF=111100101CF例例 若(若(AL)=96H, CF=0, (CL) =2 執(zhí)行執(zhí)行 SAR AL, CL微機原理與接口技術(shù)第4版機械工業(yè)出版社補充補充: 調(diào)用調(diào)用DOS功能在屏幕上顯示單字符方法功能在屏幕上顯示單字符方法MOV DL, 31H ;將字符的將字符的ASCII碼放在碼放在DL中中MOV AH, 2H ;功能號功能號2放在放在AH中中INT 21H ;DOS中斷程序調(diào)用中斷程序調(diào)用微機原理與接口技術(shù)第4版機械工業(yè)出版社例例 將將BL寄存器的內(nèi)容按二進制形式顯示出來寄存

4、器的內(nèi)容按二進制形式顯示出來 MOV CX , 8 ;顯示字符個數(shù)為顯示字符個數(shù)為8next: SHL BL , 1 ;將顯示位移至將顯示位移至CF中中 JC one ;CF=1? MOV DL , 30H ;CF=0, 將將0的的ASCII放在放在DL中中 JMP exitone: MOV DL , 31H ;CF=1, 將將1的的ASCII放在放在DL中中exit: MOV AH , 2 INT 21H ;調(diào)用調(diào)用DOS功能顯示功能顯示 DEC CX ;循環(huán)次數(shù)減循環(huán)次數(shù)減1 JNZ next ;判斷是否結(jié)束判斷是否結(jié)束 、31 30 31 30 30 31 31 3010100110BL

5、=A6H微機原理與接口技術(shù)第4版機械工業(yè)出版社例例3-143-14移位指令實現(xiàn)乘法程序移位指令實現(xiàn)乘法程序xor eax,eax; EAX0mov ax,wvar; AX要乘以10的無符號數(shù)shl eax,1; 左移一位等于乘2mov ebx,eax; EBXEAX2shl eax,2; 再左移2位,EAXEAX8add eax,ebx; EAXEAX10call dispuid; 顯示乘積call dispcrlf; 換行imul eax,10; EAXEAX10call dispuid; 顯示乘積 SHL邏輯邏輯左移一位相當(dāng)于左移一位相當(dāng)于無符號數(shù)無符號數(shù)乘以乘以2 SHR邏輯邏輯右移一位

6、相當(dāng)于右移一位相當(dāng)于無符號數(shù)無符號數(shù)除以除以2微機原理與接口技術(shù)第4版機械工業(yè)出版社2. 2. 循環(huán)移位指令循環(huán)移位指令 循環(huán):將從一端移出的位返回到另一端 包括不帶進位循環(huán)移位和帶進位循環(huán)移位 ROL reg/mem,i8/CL; 進位不參與循環(huán)ROR reg/mem,i8/CL;進位不參與循環(huán)RCL reg/mem,i8/CL;進位參與循環(huán)RCR reg/mem,i8/CL;進位參與循環(huán)RCL/RCR示意圖示意圖ROL/ROR示意圖示意圖微機原理與接口技術(shù)第4版機械工業(yè)出版社不帶進位的循環(huán)移位指令不帶進位的循環(huán)移位指令返回返回微機原理與接口技術(shù)第4版機械工業(yè)出版社帶進位的循環(huán)移位指令帶進位

7、的循環(huán)移位指令返回返回(c c)帶進位左循環(huán)移位)帶進位左循環(huán)移位RCLRCL(d d)帶進位右循環(huán)移位)帶進位右循環(huán)移位RCRRCR微機原理與接口技術(shù)第4版機械工業(yè)出版社例例3-153-15循環(huán)移位程序循環(huán)移位程序1 1;數(shù)據(jù)段qvarqword 1234567887654321h;代碼段mov ecx,4again:shr dword ptr qvar+4,1rcr dword ptr qvar,1loop again低低3232位位CF0高高3232位位64位數(shù)據(jù)位數(shù)據(jù)邏輯右移邏輯右移微機原理與接口技術(shù)第4版機械工業(yè)出版社例例3-153-15循環(huán)移位程序循環(huán)移位程序2 2;數(shù)據(jù)段asci

8、ibyte 38bcdbyte ?;代碼段mov al,asciiand al,0fhmov ah,ascii+1shl ah,4or al,ahmov bcd,alBCD83H微機原理與接口技術(shù)第4版機械工業(yè)出版社3.7 3.7 串操作類指令串操作類指令 數(shù)據(jù)串(數(shù)組):以字節(jié)、字和雙字為單位的多個數(shù)據(jù)存放在連續(xù)的主存區(qū)域中 源操作數(shù):允許段超越:DS:ESI 目的操作數(shù):不允許段超越:ES:EDI 每執(zhí)行一次串操作:ESI和EDI自動1/2/4 以字節(jié)為單位(用B結(jié)尾)操作:地址指針1 以字為單位(用W結(jié)尾)操作:地址指針2 以雙字為單位(用D結(jié)尾)操作:地址指針4 DF0(執(zhí)行CLD指令

9、):地址指針增加() DF1(執(zhí)行STD指令):地址指針減?。ǎ┪C原理與接口技術(shù)第4版機械工業(yè)出版社3.7.1 3.7.1 串傳送指令串傳送指令 MOVS STOS LODSMOVS STOS LODSMOVSB|MOVSW|MOVSD;串傳送:ES:EDIDS:ESI;然后:ESIESI1/2/4,EDIEDI1/2/4STOSB|STOSW|STOSD;串存儲:ES:EDIAL/AX/EAX;然后:EDIEDI1/2/4LODSB|LODSW|LODSD;串讀?。篈L/AX/EAXDS:ESI;然后:ESIESI1/2/4REP;執(zhí)行一次串指令,ECX減1;直到ECX0微機原理與接口技術(shù)

10、第4版機械工業(yè)出版社例例3-163-16字符串復(fù)制程序字符串復(fù)制程序1 1; 數(shù)據(jù)段srcmsgbyte In a major matter, no details are small.,0destmsg byte (lengthof srcmsg) dup (0); 代碼段mov esi,offset srcmsg; ESI源字符串地址mov edi,offset destmsg; ESI源字符串地址mov ecx,lengthof srcmsg; ECX字符串長度cld; 地址增量傳送rep movsb; 重復(fù)字符串傳送mov eax,offset destmsgcall dispmsga

11、gain: movsb loop againagain: mov al,esi mov edi,al add esi,1 add edi,1 loop again微機原理與接口技術(shù)第4版機械工業(yè)出版社例例3-163-16字符串復(fù)制程序字符串復(fù)制程序2 2; 數(shù)據(jù)段srcmsgbyte In a major matter, no details are small.,0destmsg byte (lengthof srcmsg) dup (0); 代碼段xor ebx,ebx; EBX0mov ecx,lengthof srcmsg; ECX字符串長度again:mov al,srcmsgebx

12、; 源字符串取一個字符mov destmsgebx,al; 傳送到目的字符串inc ebx; 指向下一個字符loop again; 重復(fù)進行字符串傳送微機原理與接口技術(shù)第4版機械工業(yè)出版社3.7.2 3.7.2 串檢測指令串檢測指令CMPS SCAS REPZCMPS SCAS REPZCMPSB|CMPSW|CMPSD;串比較:DS:ESIES:EDI;然后:ESIESI1/2/4,EDIEDI1/2/4SCASB|SCASW|SCASD;串掃描:AL/AX/EAXES:EDI;然后:EDIEDI1/2/4REPE|REPZ;執(zhí)行一次串指令,ECX減1;直到ECX0或ZF0REPNE|REP

13、NZ;執(zhí)行一次串指令,ECX減1;直到ECX0或ZF1微機原理與接口技術(shù)第4版機械工業(yè)出版社l重復(fù)前綴重復(fù)前綴REP執(zhí)行過程:執(zhí)行過程:(1)當(dāng)當(dāng)(CX)= 0 ,結(jié)束,結(jié)束REP, 執(zhí)行執(zhí)行REP下一條指令。下一條指令。(2)當(dāng)當(dāng)(CX)0,將,將CX 的的 內(nèi)容減內(nèi)容減1, 執(zhí)行執(zhí)行REP后的串指令,返回后的串指令,返回 (1)。 u 只在只在(CX)=0時退出循環(huán)時退出循環(huán)REP執(zhí)執(zhí)行行流流程程(CX)=(CX)-1REP后后的的串串 指指 令令YNCX=0 ?微機原理與接口技術(shù)第4版機械工業(yè)出版社l當(dāng)相等重復(fù)前綴當(dāng)相等重復(fù)前綴REPZ執(zhí)行過程:執(zhí)行過程:(1) 當(dāng)當(dāng)(CX)= 0 ,

14、結(jié)束結(jié)束REPZ, 執(zhí)行執(zhí)行REPZ下一條指令;下一條指令;(2) 當(dāng)當(dāng)(CX)0,將,將CX 的內(nèi)容減的內(nèi)容減1, 執(zhí)行執(zhí)行REPZ后的串指令;后的串指令;(3) 當(dāng)當(dāng)ZF = 1, 返回返回 (1) ;(4) 當(dāng)當(dāng)ZF1, 則結(jié)束則結(jié)束REPZ, 執(zhí)行執(zhí)行REPZ下一條指令。下一條指令。u (CX)減減1操作不影響標志操作不影響標志u ZF標志由串操作決定標志由串操作決定REPZ 執(zhí)執(zhí)行行流流程程(CX)=(CX)-1REPZ 后后的的串串 指指 令令YNYNCX=0?ZF=1 ?微機原理與接口技術(shù)第4版機械工業(yè)出版社l當(dāng)不相等重復(fù)前綴當(dāng)不相等重復(fù)前綴REPNZ執(zhí)行過程:執(zhí)行過程:(1)

15、當(dāng)當(dāng)(CX )= 0 , 結(jié)束結(jié)束REPNZ, 執(zhí)行執(zhí)行REPNZ下一條指令。下一條指令。(2)當(dāng)當(dāng)(CX)0,將,將CX 的內(nèi)容減的內(nèi)容減1, 執(zhí)行執(zhí)行REPNZ后的串指令。后的串指令。(3) 當(dāng)當(dāng)ZF = 0, 返回返回(1);(4) 當(dāng)當(dāng)ZF0, 則結(jié)束則結(jié)束REPNZ, 執(zhí)行執(zhí)行REPNZ下一條指令。下一條指令。REPNZ執(zhí)執(zhí)行行流流程程(CX)=(CX)-1REPNZ后后的的串串 指指 令令YNYNCX=0 ?ZF=0 ?微機原理與接口技術(shù)第4版機械工業(yè)出版社例例3-173-17等長字符串比較程序等長字符串比較程序; 代碼段mov ecx,countmov esi,offset st

16、ring1mov edi,offset string2cldrepz cmpsb; 重復(fù)比較,不同或比較完jne found; 發(fā)現(xiàn)不同字符,轉(zhuǎn)移mov al,Y; 字符串相同,顯示Yjmp donefound:mov al,N; 字符串不同,顯示Ndone:call dispc微機原理與接口技術(shù)第4版機械工業(yè)出版社3.8 IA-323.8 IA-32指令系統(tǒng)指令系統(tǒng) 指令系統(tǒng)(指令集):處理器支持的所有指令的集合 通用指令屬于處理器的基本指令指令類型指令特點通用指令處理器的基本指令,包括整數(shù)的傳送和運算、流程控制、輸入輸出、位操作等 浮點指令浮點數(shù)處理指令,包括浮點數(shù)的傳送、算術(shù)運算、超越函

17、數(shù)運算、比較、控制等多媒體指令多媒體數(shù)據(jù)處理指令,包括MMX、SSE、SSE2、以及SSE3和SSSE3等系統(tǒng)指令為核心程序和操作系統(tǒng)提供的處理器功能控制指令微機原理與接口技術(shù)第4版機械工業(yè)出版社Intel 80 x86Intel 80 x86指令系統(tǒng)的發(fā)展指令系統(tǒng)的發(fā)展 8086(80186)建立16位基本指令 80286增加保護方式指令 80386擴展為32位指令系統(tǒng),新增許多位操作指令 80486新增6條指令,開始直接支持浮點處理指令 Pentium新增6條指令,如處理器識別指令CPUID Pentium Pro增加3條指令,如條件傳送指令CMOV Pemtium II/III/4逐漸增加多媒體指令:MMX、SSE/SSE2/SSE3/SSSE3指令 Intel 64處理器提供64位指令,具有虛擬機管理指令微機原理與接口技術(shù)第4版機械工業(yè)出版社 掌握二進制、十六進制及其與十進制相互轉(zhuǎn)換 理解定點整數(shù)及有符號數(shù)表達,掌握求補運算 熟悉BCD、ASCII碼及其編碼規(guī)律 掌握常量表達方法 掌握變量定義、變量屬性及其應(yīng)用 掌握基本指令的功能及其應(yīng)用 MOV,XCHG,PUSH,POP

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論