汇编加减乘除

一.加减—— add / sub

add %eac,%eax

eac 和 eax 寄存器的值相加,结果存到 eax 寄存器中

二.乘 —— imul / mul (带符号/无符号)

Ps:i —— integer 整数包括正负数,故表示带符号数的乘法

1. 单操作数:mulb %BL

BL (8位)寄存器和AL (8位)寄存器的值相乘,结果保存在 AX (16位)寄存器

单操作数时,隐藏了操作数和保存结果的地方

当 16 位 乘 16 位 时 , 结 果 的 高 16 位 保 存 在 D X 寄 存 器 , 低 16 位 保 存 在 A X 寄 存 器 \color{green}{ 当16位乘16位时,结果的高16位保存在DX寄存器,低16位保存在AX寄存器} 161616DX16AX

当 32 位 乘 32 位 时 , 结 果 的 高 32 位 保 存 在 E D X 寄 存 器 , 低 32 位 保 存 在 E A X 寄 存 器 \color{green}{ 当32位乘32位时,结果的高32位保存在EDX寄存器,低32位保存在EAX寄存器} 323232EDX32EAX

2. 双操作数:mull $16,%ecx

立即数16和ecx寄存器相乘,结果保存在ecx寄存器中(保存结果的寄存器可自行指定)

3. 三操作数:mull $16,$15,%ecx

立即数16乘立即数15,结果保存在ecx寄存器中

Ps:Intel的汇编格式与AT&T的有所不同,Intel保存结果的寄存器在最左边而AT&T是在最右边

三:除——DIV / IDIV

和乘法是一致的规则,隐藏的寄存器也是一样~

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值