- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章-高级编程技术的
第 六 章 ;6.1 移位指令及循环移位指令;所谓高级编程技术,是指在汇编语言程序设计中,如果我们把移位及循环移位指令、串操作指令和宏指令巧妙地应用到汇编语言程序设计中,将大大提高编程质量和编程效率。
本章主要介绍这三类指令:移位及循环移位指令、串操作指令和宏指令的功能,并通过大量例子说明其应用。;6.1 移位指令及循环移位指令;6.1.1 移位指令;【功能】对给定的目的操作数D(8位/16位)左移COUNT次。最高位移入CF中,最低位补零。
其操作示意图如图6-1所示。;;例如:如下逻辑左移指令:
SHL AL,1
MOV CL,3
SHL CX,1
SHL DX,CL
SHL ALFA[DI],1
SHL ALFA[DI],CL
;说明:本指令影响标志位:OF、PF、SF,ZF。CF决定移入的最高位。;本指令主要用于向左移位操作。但因为左移一位相当于权值提高一级,故本指令又常作有、无符号数的倍增操作。
但请注意,在左移一次后,当新的操作数最高位与CF不相同时,则OF置1,表明有符号数操作产生溢出,不再符合倍增关系。对无符号数,当移位后使CF置1,则不再符合倍增关系。
;例如:
AL(66)/(+66)
左移一位后:
AL132)/ (-124),CF=0,OF=1
上例表明,对无符号数,移位后CF=0,故移位前后数间符合倍增关系(66*2=132);而对有符号数,移位后OF=1发生了溢出,所以移位前后数间不再符合倍增关系(+66*2≠-124);【例6-1】编写程序段,把AX中的无符号数乘以8,如果有溢出,忽略超过16位的部分。
【分析】乘以8的操作可以通过在二进制数的后面加3个0完成,即左移3位,移出部分自动丢失。只需要在CL中放移动位数(3位),再用SHL指令移位即可:
;【解】指令序列如下:
MOV CL,3
SHL AX,CL
对于双字型数据,或者位数更多的复杂数据,也可以用移位指令与逻辑运算指令配合,简化乘除法的运算。 ;⑵逻辑右移指令
【指令格式】SHR D,COUNT
D为任一通用寄存器或存储器操作数。
COUNT表示移位次数。
移位一次,COUNT=1;
移位多次,COUNT=CL
(CL中为移位的次数)。;【功能】对给定的目的操作数D(8位/16位)右移COUNT次。最低位移入CF中,最高位补零。
其操作示意如图6-2所示。
;图6-2 逻辑右移指令操作示意图;例如:如下指令:
SHR AL,1
MOV CL,3
SHR SI,CL
SHR DX,CL
SHR ALFA[DI],1
SHR ALFA[DI],CL
;说明:
本指令影响标志位:OF、PF、SF,ZF。CF决定移入的最低位。
同样,本指令主要用于右向逻辑移位操作。但右移一位,相当权值下降一级。所以本指令可作为无符号数的除2运算。但请注意,在右移后,如果新的CF=1,表明移位前的数是一个奇数,则减半的结果是不精确的。
;(3)算术左移指令
【指令格式】SAL D,COUNT
D为任一通用寄存器或存储器操作数。
COUNT表示移位次数。
移位一次,COUNT=1;
移位多次,COUNT=CL。
(CL中为移位的次数)
;【功能】对给定的目的操作数D(8位/16位)算术左移COUNT次。最高位移入CF中,最低位补零。
其操作示意图与图6.1完全相同。;说明:实际上SAL与SHL是同一指令的两种表示方法。具有完全相同的功能。它一般用来作为有符号数的倍增运算。
在左移一次后,如果新的CF与新的操作数最高位不相同,则标志OF=1。表明移位前、后的操作数不再具有倍增关系。
;⑷算术右移指令
【指令格式】SAR D,COUNT
D为任一通用寄存器或存储器操作数。
COUNT表示移位次数。
移位一次,COUNT=1;
移位多次,COUNT=CL。
(CL中为移位的次数);【功能】对给定的目的操作数D(8位/16位)右移COUNT次。最低位移入CF中,最高位保持不变。
其操作示意如图6-3所示。
;图6-3 算术右移指令操作示意图;例如:(如下指令)
SAR AL,1
MOV CL,6
SAR BX,CL
SAR BX,1
SAR BETA[BX],1
SAR BETA[BX],CL
;说明:本指令影响标志位:PF、SF,ZF。CF决定移入的最低位。同样,本指令常用于有符号数的
您可能关注的文档
- 第2章 线性方程组的的迭代法yjs10n.ppt
- 第2章 线性方程组的的迭代法.ppt
- 第2章 线性时不变连的续系统的时域分析 内容.doc
- 第2章 规范的XML文嫉宁.ppt
- 第2章 网络规划与需的求分析.ppt
- 第2章 线性系统的运的动解.ppt
- 第2章 轴向拉伸与压的缩.doc
- 第2章 通讯基本概念的介绍.ppt
- 第2章--现代设计方返抹基础(有限元法基础).ppt
- 第2章+swing的基本值莫识.doc
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
原创力文档


文档评论(0)