xdo’ 256
; x=256 (const)
mov ax, 105 mul x
; ax = ax * x, ax = 26880
moveax, 500000 movebx, 100000 mulebx ; EDX:EAX = EAX * EBX, EDX:EAX =
50000000000
ishorali ko’paytirish uchun IMUL ishlatiladi:
IMUL
IMUL ,
IMUL , , IMUL
,
ishorali ko’paytirish buyrug’ining bir necha variantlari bor.
1. Birinchisi MUL buyrug’iga mos keladi - ko’paytiruvchilardan biri buyruqda ko’rsatiladi,
ikkinchisi
esa
EAX/AX/AL
registrlarda
joylashgan
yuo’ladi,
natija
esa
EDX:EAX/DX:AX/AX registrlariga yoziladi.
mov eax, 5
mov ebx, -7
imul ebx ; EAX = ffffffdd (16 —lik sanoq tizimidagi 4 baytli son yoziladi), EDX = ffffffff
2. ikkinchisida esa ko’paytiruvchilardan biri joylashgan registrni ko’rsatish imkonini beradi.
Xuddi shu registrga natija yoziladi. ikkinchi ko’paytiruvchi esa to’g’ridan to’g’ri buyruqda
ko’rsatiladi.
movebx, 3
imulebx, 6
; EBX = EBX * 6
3. Uchinchi usulda esa ham natija va ikkita ko’paytirmani ko’rsatish mumkin. Ammo natija
faqat registrga joylanadi, ikkinchi ko’paytirma esa to’g’ridan to’g’ri operand bo’ladi.
Birinchi ko’paytiruvchi registr yoki xotira yacheykasi bo’lishi mumkin.
movebx, 500000
imuleax, ebx, 100000
; EAX = EBX * 100000, natijaningkattaqismiyo’qoladi
4. To’rtinchisida ikkita ko’paytiruvchini ko’rsatish mumkin. Birinchisi registr bo’lishi kerak,
ikkinchisi - registr yoki xotira yacheykasi. Natijasi birinchi operand joylashgan registrga
joylanadi.
6
Do'stlaringiz bilan baham: |