Множення.
Операція множення для без знакових даних виконується командою MUL, а для знакових – IMUL (integer Multiplication) – множення цілих чисел. Контроль над форматом чисел і вибір команди множення повинен здійснювати сам програміст.
Множення байт на байт . Множення знаходиться в регістрі AL, а множник – в байті пам’яті або в однобайтовому регістрі. Тоді результат буде розміщений в регістрі AX.
Множення слова на слово. Множення знаходиться в AX, множник – в слові пам’яті або в регістрі. Після перемноження добуток утворюється в подвійному слові: в DX – старше слово; в AX – молодше.
Команди MUL і IMUL мають один операнд, в якому вказується множник: MUL MULTR.
Якщо поле MULT визначено як байт (DB), то операція передбачає множення вмісту регістру AX на слово з MULTER. Якщо множник знаходиться в регістрі , то довжина регістру визначає тип операції.
Якщо перемножуються слово на байт з допомогою без знакової команди MUL, то розширення байту до слова здійснюється шляхом очистки старшого байту командою SUB AH, AH, а не CBW, яка заповнює старший байт знаковим розрядом.
При здійснені множення операндів із знаком використовується команда IMUL, яка виконується аналогічно команді MUL тільки в старшому розряді відображає знак результату. Крім того, при розширені байту до слова, якщо множиться слово на байт, потрібно використовувати команду CBW, яка заповнює старший байт значенням знакового розряду вихідного однобайтного операнду.
Множення на число рівне цілому степеню числа 2 (2, 4, 8, 16 і т. д) еквівалентне зсуву значення множеного вліво на число розрядів рівне степеню двійки числа множника.
00010011× 100 = 01001100
Команди зсуву.
·
ROL RCL
ROR RCR
SHL,. SAL SHR
SAR
Дата добавления: 2015-10-09; просмотров: 668;