您的位置:首页 > 其它

8086乘法指令MUL,IMUL

2013-06-14 09:18 1986 查看
对于加减指令来说CPU对有符号加减和无符号加减一视同仁,根据我们需要把它作为有符号的结果还是无符号的结果,但是乘除法指令区分有符号乘除和无符号乘除指令
无符号数乘法指令MUL(MULtiply)
MUL OPRD(OPRD可以用除立即数以外的任何寻址方式)
OPRD是八位一个乘数默认在AL中 则:AL*OPRD 结果保存在AX中
OPRD是16位一个乘数默认在AX中 则:AX*OPRD DX保存结果的高16位,AX保存结果的低16位

code segment
mov bl,2
mul bl	;ax<--bl*al
mov bx,2
mul bx	;dx,ax <--bx*ax ,DX保存结果的高16位,AX保存低16位
code ends
assume cs:code
data segment
db 2,5
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov al,50H
mul byte ptr ds:[si]	;BYTE 取出data段中一个字节进行8位乘法al*02H
mov ax,50H
mul word ptr ds:[si]	;WORD 取出data段中一个字进行16位乘法  ax*0502H
mov ax,4c00H
int 21H
code ends
end start
[/code]
有符号数乘法指令IMUL(sIgned MULtiply)
IMUL OPRD ;该指令把乘数与被乘数均作为有符号数,此外与MUL相同
乘法指令影响FLAG标志寄存器......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: