Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jmp __multiplicator_main
- multiplicator:
- push sp
- mov bp, sp
- sub sp, 4
- mov ax, word[bp + 4]
- ; Если второй множитель = 0, то вернуть 0
- cmp ax, 0
- jz __multiplicator_zero_multiplier
- mov word[bp - 2], ax ; Хранит то, на что умножать
- mov ax, word[bp + 6]
- ; Если первый множитель = 0, то вернуть 0
- cmp ax, 0
- jz __multiplicator_zero_multiplier
- mov word[bp - 4], ax ; Хранит то, что умножать
- cmp ax, [bp - 2]
- jnl __multiplicator_skip_swap
- xchg word[bp - 2], ax
- mov word[bp - 4], ax
- __multiplicator_skip_swap:
- dec word[bp - 2]
- jz __multiplicator_end ; Если один из множителей = 1, вернуть больший из множителей
- __multiplicator_mul1:
- add ax, word[bp - 4]
- dec word[bp - 2]
- jnz __multiplicator_mul1
- __multiplicator_end:
- mov sp, [bp]
- ret
- __multiplicator_zero_multiplier:
- mov ax, 0
- jmp __multiplicator_end
- __multiplicator_main:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement