微机原理-第三章-8_第1页
微机原理-第三章-8_第2页
微机原理-第三章-8_第3页
微机原理-第三章-8_第4页
微机原理-第三章-8_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术第4版机械工业出版社3.6.2 3.6.2 移位指令移位指令 非循环移位 逻辑左移指令 SHL 逻辑右移指令 SHR 算术左移指令 SAL 算术左移指令 SARS: ShiftR: RotateL: LeftR: RightA: ArithmeticC: Carry flag 循环移位 不带进位循环左移指令 ROL 不带进位循环右移指令 ROR 带进位循环左移指令 RCL 带进位循环右移指令 RCR微机原理与接口技术第4版机械工业出版社1. 1. 非循环移位指令非循环移位指令 分逻辑(Logical)和算术(Arithmetic)移位 具有左移(Left)或右移(Right)

2、操作SHL reg/mem,i8/CL;逻辑左移:最低位补0,最高位进入CFSHR reg/mem,i8/CL;逻辑右移:最高位补0,最低位进入CFSAL reg/mem,i8/CL;算术左移,等同于SHLSAR reg/mem,i8/CL;算术右移:最高位不变,最低位进入CF 目的操作数:寄存器或存储单元reg/mem 移位位数i8/CL示意图示意图微机原理与接口技术第4版机械工业出版社移位指令的功能和示例移位指令的功能和示例返回返回微机原理与接口技术第4版机械工业出版社例例 若(若(AL)=96H, CF=0 执行执行 SHL AL, 1执行前:执行前:10010110执行后:执行后:(A

3、L)=2CH ,CF=100101100执行前执行前10010110执行后:执行后:(AL)=E5H ,CF=111100101CF例例 若(若(AL)=96H, CF=0, (CL) =2 执行执行 SAR AL, CL微机原理与接口技术第4版机械工业出版社补充补充: 调用调用DOS功能在屏幕上显示单字符方法功能在屏幕上显示单字符方法MOV DL, 31H ;将字符的将字符的ASCII码放在码放在DL中中MOV AH, 2H ;功能号功能号2放在放在AH中中INT 21H ;DOS中断程序调用中断程序调用微机原理与接口技术第4版机械工业出版社例例 将将BL寄存器的内容按二进制形式显示出来寄存

4、器的内容按二进制形式显示出来 MOV CX , 8 ;显示字符个数为显示字符个数为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 ;调用调用DOS功能显示功能显示 DEC CX ;循环次数减循环次数减1 JNZ next ;判断是否结束判断是否结束 、31 30 31 30 30 31 31 3010100110BL

5、=A6H微机原理与接口技术第4版机械工业出版社例例3-143-14移位指令实现乘法程序移位指令实现乘法程序xor eax,eax; EAX0mov ax,wvar; AX要乘以10的无符号数shl eax,1; 左移一位等于乘2mov ebx,eax; EBXEAX2shl eax,2; 再左移2位,EAXEAX8add eax,ebx; EAXEAX10call dispuid; 显示乘积call dispcrlf; 换行imul eax,10; EAXEAX10call dispuid; 显示乘积 SHL逻辑逻辑左移一位相当于左移一位相当于无符号数无符号数乘以乘以2 SHR逻辑逻辑右移一位

6、相当于右移一位相当于无符号数无符号数除以除以2微机原理与接口技术第4版机械工业出版社2. 2. 循环移位指令循环移位指令 循环:将从一端移出的位返回到另一端 包括不带进位循环移位和带进位循环移位 ROL reg/mem,i8/CL; 进位不参与循环ROR reg/mem,i8/CL;进位不参与循环RCL reg/mem,i8/CL;进位参与循环RCR reg/mem,i8/CL;进位参与循环RCL/RCR示意图示意图ROL/ROR示意图示意图微机原理与接口技术第4版机械工业出版社不带进位的循环移位指令不带进位的循环移位指令返回返回微机原理与接口技术第4版机械工业出版社带进位的循环移位指令带进位

7、的循环移位指令返回返回(c c)带进位左循环移位)带进位左循环移位RCLRCL(d d)带进位右循环移位)带进位右循环移位RCRRCR微机原理与接口技术第4版机械工业出版社例例3-153-15循环移位程序循环移位程序1 1;数据段qvarqword 1234567887654321h;代码段mov ecx,4again:shr dword ptr qvar+4,1rcr dword ptr qvar,1loop again低低3232位位CF0高高3232位位64位数据位数据逻辑右移逻辑右移微机原理与接口技术第4版机械工业出版社例例3-153-15循环移位程序循环移位程序2 2;数据段asci

8、ibyte 38bcdbyte ?;代码段mov al,asciiand al,0fhmov ah,ascii+1shl ah,4or al,ahmov bcd,alBCD83H微机原理与接口技术第4版机械工业出版社3.7 3.7 串操作类指令串操作类指令 数据串(数组):以字节、字和双字为单位的多个数据存放在连续的主存区域中 源操作数:允许段超越:DS:ESI 目的操作数:不允许段超越:ES:EDI 每执行一次串操作:ESI和EDI自动1/2/4 以字节为单位(用B结尾)操作:地址指针1 以字为单位(用W结尾)操作:地址指针2 以双字为单位(用D结尾)操作:地址指针4 DF0(执行CLD指令

9、):地址指针增加() DF1(执行STD指令):地址指针减小()微机原理与接口技术第4版机械工业出版社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;串读取:AL/AX/EAXDS:ESI;然后:ESIESI1/2/4REP;执行一次串指令,ECX减1;直到ECX0微机原理与接口技术

10、第4版机械工业出版社例例3-163-16字符串复制程序字符串复制程序1 1; 数据段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; 重复字符串传送mov eax,offset destmsgcall dispmsga

11、gain: movsb loop againagain: mov al,esi mov edi,al add esi,1 add edi,1 loop again微机原理与接口技术第4版机械工业出版社例例3-163-16字符串复制程序字符串复制程序2 2; 数据段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; 重复进行字符串传送微机原理与接口技术第4版机械工业出版社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;执行一次串指令,ECX减1;直到ECX0或ZF0REPNE|REP

13、NZ;执行一次串指令,ECX减1;直到ECX0或ZF1微机原理与接口技术第4版机械工业出版社l重复前缀重复前缀REP执行过程:执行过程:(1)当当(CX)= 0 ,结束,结束REP, 执行执行REP下一条指令。下一条指令。(2)当当(CX)0,将,将CX 的的 内容减内容减1, 执行执行REP后的串指令,返回后的串指令,返回 (1)。 u 只在只在(CX)=0时退出循环时退出循环REP执执行行流流程程(CX)=(CX)-1REP后后的的串串 指指 令令YNCX=0 ?微机原理与接口技术第4版机械工业出版社l当相等重复前缀当相等重复前缀REPZ执行过程:执行过程:(1) 当当(CX)= 0 ,

14、结束结束REPZ, 执行执行REPZ下一条指令;下一条指令;(2) 当当(CX)0,将,将CX 的内容减的内容减1, 执行执行REPZ后的串指令;后的串指令;(3) 当当ZF = 1, 返回返回 (1) ;(4) 当当ZF1, 则结束则结束REPZ, 执行执行REPZ下一条指令。下一条指令。u (CX)减减1操作不影响标志操作不影响标志u ZF标志由串操作决定标志由串操作决定REPZ 执执行行流流程程(CX)=(CX)-1REPZ 后后的的串串 指指 令令YNYNCX=0?ZF=1 ?微机原理与接口技术第4版机械工业出版社l当不相等重复前缀当不相等重复前缀REPNZ执行过程:执行过程:(1)

15、当当(CX )= 0 , 结束结束REPNZ, 执行执行REPNZ下一条指令。下一条指令。(2)当当(CX)0,将,将CX 的内容减的内容减1, 执行执行REPNZ后的串指令。后的串指令。(3) 当当ZF = 0, 返回返回(1);(4) 当当ZF0, 则结束则结束REPNZ, 执行执行REPNZ下一条指令。下一条指令。REPNZ执执行行流流程程(CX)=(CX)-1REPNZ后后的的串串 指指 令令YNYNCX=0 ?ZF=0 ?微机原理与接口技术第4版机械工业出版社例例3-173-17等长字符串比较程序等长字符串比较程序; 代码段mov ecx,countmov esi,offset st

16、ring1mov edi,offset string2cldrepz cmpsb; 重复比较,不同或比较完jne found; 发现不同字符,转移mov al,Y; 字符串相同,显示Yjmp donefound:mov al,N; 字符串不同,显示Ndone:call dispc微机原理与接口技术第4版机械工业出版社3.8 IA-323.8 IA-32指令系统指令系统 指令系统(指令集):处理器支持的所有指令的集合 通用指令属于处理器的基本指令指令类型指令特点通用指令处理器的基本指令,包括整数的传送和运算、流程控制、输入输出、位操作等 浮点指令浮点数处理指令,包括浮点数的传送、算术运算、超越函

17、数运算、比较、控制等多媒体指令多媒体数据处理指令,包括MMX、SSE、SSE2、以及SSE3和SSSE3等系统指令为核心程序和操作系统提供的处理器功能控制指令微机原理与接口技术第4版机械工业出版社Intel 80 x86Intel 80 x86指令系统的发展指令系统的发展 8086(80186)建立16位基本指令 80286增加保护方式指令 80386扩展为32位指令系统,新增许多位操作指令 80486新增6条指令,开始直接支持浮点处理指令 Pentium新增6条指令,如处理器识别指令CPUID Pentium Pro增加3条指令,如条件传送指令CMOV Pemtium II/III/4逐渐增加多媒体指令:MMX、SSE/SSE2/SSE3/SSSE3指令 Intel 64处理器提供64位指令,具有虚拟机管理指令微机原理与接口技术第4版机械工业出版社 掌握二进制、十六进制及其与十进制相互转换 理解定点整数及有符号数表达,掌握求补运算 熟悉BCD、ASCII码及其编码规律 掌握常量表达方法 掌握变量定义、变量属性及其应用 掌握基本指令的功能及其应用 MOV,XCHG,PUSH,POP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论