❶ 下面哪个指令代表有符号的乘法指令
IMUL。
IMUL(有符号数乘法)指令执行有符号整数乘法。
与 MUL 指令不同,IMUL 会保留乘 积的符号,实现的方法是,将乘积低半部分的最高位符号扩展到高半部分。
直接输入x (xyz的x),没有别的了。在运算中是只有*是乘号,在文档中可以用x(xyz中的x)来写。
❸ 汇编乘法指令mul怎么乘
mul指令即无符号乘法指令,只有一个操作数,根据其类型会安排相应大小的A寄存器作为被乘数,结果也会相应地安排寄存器存放;对于字节,字,双字有三种用法,简单示范如下:
①
mov al,101;
mov bl,20;
mul bl;
;ax=2020
②
mov ax,607101;
mov bx,20;
mul bx;
;dx*10000h+ax=13142020
; dx=0c8h, ax=8804h
③
mov eax,2600607101;
mov ebx,20;
mul ebx;
;edx*100000000h+eax=52013142020
;edx=0ch, eax=1c399004h
❹ 对一个数乘以2用哪个指令
对一个数乘以2的指令为:SHLBL,1
指令是一种指定电子计算机进行控制或操作的代码,它包括操作函数和操作对象。
计算机程序发送给计算机处理器的指令称为“指令”。最低级别的指令是由0和1组成的字符串,指示要运行的实体作业操作(如“Add”)。根据指令类型的不同,一个特定的存储域称为寄存器,它包含可用于调用指令的数据或数据存储位置。
指令类型:数据传输指令、算术运算指令、位运算指令、程序流控制指令、串运算指令、处理器控制指令。
❺ 汇编语言有符号乘法指令
汇编语言有符号乘法指令大全
MOV(MOVE)
传送指令P28
PUSH
入栈指令P32
POP
出栈指令P33
XCHG(eXCHanG)
交换指令P34
XLAT(TRANSLATE)
换码指令P34
LEA
(Load
Effective
Address)
有效地址送寄存器指令P35
LDS(Load
DS
with
pointer)
指针送寄存器和DS指令P35
LES(Load
ES
with
pointer)
指针送寄存器和ES指令P35
LAHF(Load
AH
with
Flags)
标志位送AH指令P36
SAHF(Store
AH
into
Flgs)
AH送标志寄存器指令P36
PUSHF(PUSH
the
Flags)
标志进栈指令P36
POPF(POP
the
Flags)
标志出栈指令P37
ADD
加法指令P38
ADC
带进位加法指令P39
INC
加1指令P39
SUB(SUBtract)
不带借位的减法指令P40
SBB(SuVtrach
with
borrow)
带借位的减法指令P40
DEC(DECrement)
减1指领P41
NEG(NEGate)
求补指令P41
CMP(CoMPare)
比较指令P42
MUL(unsinged
MULtiple)
无符号数乘法指令P46
IMUL(sIgned
MUL
tiple)
有符号数乘法指令P46
DIV(unsigned
DIVide)
无符号数除法指令P48
IDIV(sIgned
DIVide)
有符号数除法指令P48
CBW(Count
Byte
to
Word)
字节转换为字指令P50
CWD(Count
Word
to
Doble
word)
字转换为双字指令P50
DAA
压缩的BCD码加法十进制调整指令P53
DAS
压缩的BCD码减法十进制调整指令P53
AAA
非压缩的BCD码加法十进制调整指令P54
AAS
非压缩的BCD码加法十进制调整指令P54
AND
逻辑与指令P54
OR
逻辑或指令P55
XOR
逻辑异或指令P56
NOT
逻辑非指令P56
TEST
测试指令P57
SHL(SHift
logical
Letf)
逻辑左移指令P57
SHR(SHift
logical
Right)
逻辑右移指令P57
汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
❻ 乘法指令
是通过移位和加减法来实现的
--------------------------------
假定 [X]原 = XSX1 X2… Xn
[Y]原 = YSY1Y2… Yn
则 [X*Y]原 = [X]原 * [Y]原
= (XS⊕YS) (X1X2 … Xn) * (Y1 Y2 … Yn)
结果是把符号位和数值邻接起来。
为了引出在计算机中实现定点原码一位乘法的具体方案,先看手工乘法运算的实际执行步骤。
假定: X= 0.1101 Y= 0.1011
0. 1 1 0 1
* 0. 1 0 1 1
1 1 0 1 X*Y = 0.10001111,符号为正
1 1 0 1
0 0 0 0
1 1 0 1
0. 1 0 0 0 1 1 1 1
在手工计算时,其算法与执行步骤:
① 依乘数每一位上的取值为1还是为0,决定相加数取被乘数的值还是取零值;
② 各相加数从乘数的最低位求起,逐位变高并将相加数逐个左移一位,最后一步一次求和;
③ 符号位按正乘正、负乘负结果的符号位为正,正乘负、负乘正结果的符号为负的方案求出乘积的符号。
在计算机内实现原码乘法运算,则不能简单照搬上述方法,主要表现在以下诸方面。
首先,在运算器内是很难实现多个数据同时相加的,通常只能完成对两数的求和操作。这一点比较容易解决,可以每求得一个相加数,就同时完成与上一次部分积相加的操作;
其次是在手工计算时,各相加数逐个左移一位,最终相加数的位数为相乘二数位数的两倍,而在计算机中,加法器的位数一般与寄存器的位数相同,而不是寄存器位数的两倍。这实际上也可以用另外的办法加以解决。手工计算时,各相加数是逐位左移一位,但很容易发现,在计算机内,在每次计算本次部分积之和时,前一次部分积的最低一位是不再参与相加计算的。这就意味着,若采用每求得一次部分积之后使其右移一位,则可以只用N位的加法器就能实现两个N位的数相乘,并有可能求得双倍位数的乘积。显而易见,若前一次部分积已经右移一位,就可以用其高位部分,再用加被乘数或加零的方法求得本次的部分积。
最后一点,手工计算时,乘数每一位的值是0还是1都能直接看见,而在计算机内,若采用放乘数的寄存器的每一位来直接决定本次相加数是被乘数还是零,实现起来是不方便的,若均采用该寄存器的最低一位来执行这种判别就简便多了。为此,可以在每求一次部分积,使放乘数的寄存器执行一次右移操作即可实现。若移位时,使其最高一位数值位接收加法器最低位的移位输出,则完成乘法运算后,该寄存器中保存的将是乘积的低位部分,而原来的乘数在逐位移位过程中已经丢失。
❼ 8086中乘法指令怎么乘啊
8086乘法运算指令分为无符号数乘MUL和有符号数乘IMUL。乘法在实现字节相乘时乘积放在AX寄存器中,字相乘时乘积放在DX和AX寄存器中,因此乘法指令不会产生溢出和进位,这时用OF和CF位来表示乘积有效数字的长度:若乘积的高半部分(字节乘法为AH,字乘法为DX)有效(MUL指令是指AH或DX中的内容不为0,IMUL指令指的则是AH或DX中的内容是否为符号位的扩展),则CF和OF都为1,表示DX或AH中含有乘积的有效数字,否则CF和OF为0。
给你举个例子吧。
无符号数0B4H与11H相乘
mov al,0b4h ;al=b4h=180d(被乘数放在al中)
mov bl,11h ;bl=11h=17d(乘数放在bl中)
mul bl ;ax=Obf4h=3060d,OF=CF=1(乘积放在ax中。AX高8位不为0)
再来一个有符号数乘法的例子。
有符号数0B4H与11H相乘
mov al,0b4h ;al=b4h=-76d
mov bl,11h ;bl=11h=17d
imul bl ;ax=faf4h=-1292d,OF=CF=1
;AX高8位不是低8位的符号扩展,表示含有有效数字
计算二进制数乘法:b4h×11h。如果把它当作无符号数,用MUL指令结果为0bf4h;如果看作是有符号数,用IMUL指令则结果为faf4h。由此可见,同样的二进制数看作无符号数与有符号数相乘,即采用MUL与IMUL指令,它们的结果是不相同的。
❽ 三菱乘法指令怎么写
三菱FX系列PLC的乘法指令有整数乘法MUL指令(可变形为DMUL、MULP、DMULP)和浮点数乘法指令DEMUL。
望采纳。。。。。。
❾ 汇编乘法指令MUL到底怎么用
;将变量a和变量b相乘,结果存入s assume cs:code,ds:data ;----------------------------- data segment a db 6 b db 4 s dw ? data ends ;----------------------------- code segment start: mov ax,data mov ds,ax mov al,a ;当mul指令的操作数为字节型数据时,一个乘数在al中 mul byte ptr b ;在mul指令中给出另一个乘数 mov s,ax ;mul指令执行后,结果存放在ax中 mov ax,4C00H int 21H code ends ;----------------------------- end start