80*86汇编语言程序设计第2版课件作者马力妮第3章节80x86指令系统和寻址方式.pptVIP

  • 92
  • 0
  • 约3.8万字
  • 约 126页
  • 2017-11-12 发布于广东
  • 举报

80*86汇编语言程序设计第2版课件作者马力妮第3章节80x86指令系统和寻址方式.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2)无符号MUL与有符号IMUL的区别是结果的最高位为符号位。 3)SRC 不能是立即数。 4)乘法指令只影响 OF 和CF标志,其它标志不定。 8位×8位: 积→ AX ; 当AH=00H 时 CF=0、 OF=0。 当 AH≠00H时 CF=1 、OF=1。 16×16 位: 积→DX:AX ; 当DX=0000H时 CF=0 、OF=0。 当 DX≠0000H时 CF=1、OF=1。 32×32 位: 积→EDX:EAX ;当EDX=0000H时 CF=0 、OF=0。 当 EDX≠0000H时 CF=1、OF=1。 因此;当 CF=1和OF=1 时 AH(乘积为16位时) 或DX(乘积为32位时)或EDX(乘积为64位时)中的结果才有效。 (2)有符号双操作数乘法指令(IMUL) 指令格式: ? 其中: 目的操作数寄存器必须是16位/32位通用寄存器,源操作数SRC 为与目的操作数位数相同的任意一种操作数,当源操作数为立 即数时可以是8位/16位/32位立即数, 该指令是双操作数指令,用于80286以上微机。 指令功能:目的操作数(reg)乘源操作数(reg/mem/data),结果送 目的操作数。 执行的操作:字乘法: reg16 ← reg16×SRC 双字乘法: reg32 ← reg32×SRC 对标志的影响:只对CF和OF有影响(AF、PF、SF和ZF不定),当OF=1,CF=1时为溢出。 IMUL reg,SRC (3)有符号三操作数乘法指令(IMUL) 指令格式: ? 其中:目的操作数reg 必须是16位/32位通用寄存器,源操作数SRC可以是寄 存器或存储器,data为立即数,可以是8位/16位/32位,该指令是三操 作数指令,用于80286以上微机。 指令功能:源操作数reg/mem乘立即数(data),结果送目的操作数(reg)。 执行的操作:字乘法: reg16 ← SRC×data 双字乘法: reg32 ← SRC×data 对标志的影响:只对CF和OF有影响(AF、PF、SF和ZF不定),当OF=1,CF=1时为溢出。 IMUL reg,SRC,data 【例3-43】设变量X为字变量;X=10H分析下列程序段: MOV AL,9CH; MOV BL,10H MUL BL ;无符号乘法,AX=09C0H,OF=CF=1说明AH≠00H结果为字 MOV AX,0 MOV BL,10 MOV AL,9CH IMUL BL ;有符号乘法,AX=0FC18H,OF=CF=1说明AH≠00H结果为字 ? MOV CX,9C00H IMUL CX,X ;有符号乘法,CX=0C000H,OF=CF=1说明结果溢出,出错 ? MOV EBX,1234567H IMUL EAX,EBX,10H ;有符号乘法,EAX,OF=CF=0说明结果无溢出 【例3-44】把字变量D和E中带符号数相乘, 积的低字放字变量S1中,高位字放字变量S2中。 MOV AX, D ;D→AX IMUL E ;AX ×E →DX:AX MOV S1,AX ;积的低字放字变量S1中 MOV S2,DX ;积的高位字放字变量S2中 (4)无符号/有符号除法

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档