אסמבלי x86/פקודות/פקודות כפל וחילוק



אסמבלי x86











פקודת MUL

מבצע הכפלה של אופרנד בגודל בית ב AL כשהתוצאה נכנסת לתוך AX.
או הכפלה של אופרנד בגודל מילה ב AX כשהתוצאה נכנסת לתוך שילוב האוגרים (DX AX)
בפקודה זו לא מתייחסים לביט הסימן.
פרמטרים: אוגר; זכרון
תחביר: MUL Operand
לדוגמה: כאשר AL=5 ,BL=3:
MUL BL; AX = 15
אלגוריתם: כשאופרנד היעד מסוג בית: AX = AL * Operand
כשאופרנד היעד מסוג מילה: XD AX) = AX * Operand)
הדגלים המשתנים: Carry, Overflow


פקודת DIV

מבצע חילוק של AX באופרנד בגודל בית כשהתוצאה נכנסת לתוך AL והשארית לתוך AH.
או חילוק של (DX AX) באופרנד בגודל מילה כשהתוצאה נכנסת לתוך AX והשארית לתוך DX.
בפקודה זו לא מתייחסים לביט הסימן.
פרמטרים: אוגר; זכרון
תחביר: DIV Operand
לדוגמה: כאשר AX=15,BL=6:
DIV BL; AH=3,AL=2
אלגוריתם: כשאופרנד היעד מסוג בית: AL = AX / operand
כשאופרנד היעד מסוג מילה: AX = (XD AX) / operand
הדגלים המשתנים: Carry, Overflow


פקודת IMUL

מבצע את אותה הפעולה של MUL. אלא שכאן מתייחסים לביט הסימן. כלומר מדובר במספרים מסומנים.
פרמטרים: אוגר; זכרון
תחביר: MUL Operand
לדוגמה: כאשר AL=5 ,BL=3:
MUL BL; AX = 15
אלגוריתם: כשאופרנד היעד מסוג בית: AX = AL * Operand
כשאופרנד היעד מסוג מילה: DX AX) = AX * Operand)
הדגלים המשתנים: Carry, Overflow


פקודת IDIV

מבצע את אותה הפעולה של DIV. אלא שכאן מתייחסים לביט הסימן. כלומר מדובר במספרים מסומנים כאשר יש מספר מסומן נבצע את שיטת המשלים ל-2. לאחר מכן נבצע את החילוק עם המספר שקיבלנו.
פרמטרים: אוגר; זכרון
תחביר: DIV Operand
לדוגמה: כאשר AX=15,BL=6:
DIV BL; AH=3,AL=2
אלגוריתם: כשאופרנד היעד מסוג בית: AL = AX / operand
כשאופרנד היעד מסוג מילה: AX = (DX AX) / operand
הדגלים המשתנים: Carry, Overflow