- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7_整数运算
双操作数 格式: IMUL r16, r/m16 IMUL r16, imm8 IMUL r16, imm16 IMUL r32, r/m32 IMUL r32, imm8 IMUL r32, imm32 功能:两个操作数相乘,结果存到第一个操作数中 如果第一个操作数存不下结果,OF、CF置位。 三操作数 格式: IMUL r16 , r/m16,imm8 IMUL r16 , r/m16,imm16 IMUL r32 , r/m32,imm8 IMUL r32 , r/m32,imm32 功能:第二、三两个操作数相乘,结果存到第一个操作数中 如果第一个操作数存不下结果,OF、CF置位。 IMUL 应用举例 Mov al, -4 Mov bl, 4 IMUL bl ;AX=0FFF0H,CF=0 Mov ax, 30h Mov bx, 4h IMul bx ;DX:AX =0C0H,CF=0 7.3.3 乘法操作性能测试 书上提供了两种实现乘法的子程序(一种是通过移位来实现乘法,另一种是通过标准的MUL和IMUL指令来实现乘法),并测试两个子程序的运行时间,测试结果表明两个子程序运行时间(在较老的CPU上)有较大差异 学习汇编语言,需要关注这类差异。 自己阅读教材上的源程序 7.3.4 无符号除法指令DIV 实现整除运算,结果包括两项:一项为商,一项为余数。 格式 DIV r/m8 AX / op8 = AL(商) …AH(余数) DIV r/m16 DX:AX/op16 = AX…DX DIV r/m32 EDX:EAX/op32=EAX…EDX DIV 应用举例 Mov ax,83h Mov bl ,2h DIV bl ;AL =41H,AH=1 Mov dx , 0 Mov ax ,8003h Mov cx , 100h DIV cx ;AX=080H,DX=3h 7.3.5 有符号整数除法IDIV 有符号除法和无符号除法的用法基本相似。但要注意的是在进行除法操作前往往要进行符号扩展 符号扩展指令 共有三条符号扩展指令,其操作数在指令中不给出,均为隐含的寄存器 CBW 将AL符号扩展到AX CWD 将AX符号扩展到DX:AX CDQ 将EAX符号扩展到EDX:EAX IDIV 应用举例 Mov AL,-48 Mov bl ,5 cbw IDIV bl ;AL =-9,AH=-3 Mov ax ,-5000 Mov cx , 256 cwd IDIV cx ;AX=-19,DX=-136 除法溢出 在做除法时,如果商太大,目的操作数无法容纳,则会置位溢出位(OF) 当溢出发生时会引发一个中断 当除数为0时,也会引发中断,通常在做除法操作前,需要判断除数是否为0 除法应用举例 任意进制的码制转换 .data ASCIICHAR BYTE 0123456789ABCDEFGHIJKLMNOPQRSTUVWZYX .code ToASC PROC uses eax ebx ecx esi ;将EAX中的数按BL中的值为进制数,转换成ASCII字符串放到ESI指向的数组中 mov ecx , 0 mov cl , bl add esi , 32 nxt_ta: mov edx , 0 div ecx mov bl,ASCIICHAR[edx] mov [esi],bl dec esi cmp eax , 0 jnz nxt_ta ret ToASC ENDP “高级语言的算术表达式生成的汇编代码”例子见教材 7.4 扩展加法和减法 问题:要实现两个1024位的整数相加减,如何实现? IA-32中有两条方便实现上述功能的指令 ADC 带进位加(Add With Cary) SBB 带借位减(Subtract With Borrow) 7.4.1 ADC 功能:将两个操作数与进位位一起相加,结果存放到目的操作数中。与ADD指令的差别就是在加的时候,包含了进位位(CF)的值一起相加。 格式与ADD相同 扩展加法的例子 ExtAdd PROC pushad clc L1: mov eax,[esi] adc eax ,[edi] pushfd mov [ebx], eax add esi ,4 add edi ,4 add ebx , 4 popfd l
您可能关注的文档
- 6第十章 齿轮传动.ppt
- 7.3纯扭构件承载力计算.ppt
- 7.3数字控制器的直接设计1ppt.ppt
- 7.29思索未来年中会.ppt
- 7.4 氨基酸测定.ppt
- 7.4 积分和微分电路.ppt
- 7.5生活用电常识复习.ppt
- 7.GrADS软件介绍5.pptx
- 7.商品检验与报关实务.ppt
- 7.3.齿轮传动.ppt
- 2020年工作得失总结心得_个人工作得失心得 .pdf
- 2020-2021学年度教科版八年级物理上册同步练习——第6章质量与密度.pdf
- 2021-2022学年山东省济南市平阴县七年级(上)期末数学试题及答案解析.pdf
- 2021-2022学年北师大版七年级数学上册《第3章整式及其加减》期末综合.pdf
- 2020年高考化学提升突破专题十 电化学知识的应用(含答案) .pdf
- 2020年协同管理软件行业分析报告 .pdf
- 2021-2022年初级银行从业资格之初级银行管理押题练习试卷B卷附答案.pdf
- 2020-2021学年人教版道德与法治八年级下册 4.2依法履行义务 课堂练习.pdf
- 2020-2021学年苏教版三年级下册数学第六单元测试 (含答案) .pdf
- 2019版七年级数学下册第五章生活中的轴对称5.1轴对称现象 .pdf
文档评论(0)