אסמבלי 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