Решение примера - Assembler (224428)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите написать программу. DX=(4*[0315]+3*[0513])^3-([0415]+[0417])^2 Заранее спасибо

Решение задачи: «Решение примера»

textual
Листинг программы
mov ax, word [0x0315]
sal ax, byte 0x02
xchg bx, ax
mov ax, word [0x0513]
sal ax, byte 0x02
sub ax, word [0x0513]
add bx, ax
mov ax, bx
mul ax
mul bx
xchg ax, bx
mov ax, word [0x0415]
add ax, word [0x0417]
mul ax
sub bx, ax

Объяснение кода листинга программы

  1. mov ax, word [0x0315] - Переменная 'ax' получает значение из слова, находящегося по адресу 0x0315.
  2. sal ax, byte 0x02 - Значение переменной 'ax' сдвигается вправо на 2 позиции (на 16-битном регистре).
  3. xchg bx, ax - Значения переменных 'ax' и 'bx' меняются местами.
  4. mov ax, word [0x0513] - Переменная 'ax' получает значение из слова, находящегося по адресу 0x0513.
  5. sal ax, byte 0x02 - Значение переменной 'ax' сдвигается вправо на 2 позиции (на 16-битном регистре).
  6. sub ax, word [0x0513] - Значение переменной 'ax' уменьшается на значение слова, находящегося по адресу 0x0513.
  7. add bx, ax - Значение переменной 'bx' увеличивается на значение переменной 'ax'.
  8. mov ax, bx - Переменная 'ax' получает значение переменной 'bx'.
  9. mul ax - Значение переменной 'ax' умножается на 16 (на 16-битном регистре).
  10. xchg ax, bx - Значения переменных 'ax' и 'bx' меняются местами.
  11. mov ax, word [0x0415] - Переменная 'ax' получает значение из слова, находящегося по адресу 0x0415.
  12. add ax, word [0x0417] - Значение переменной 'ax' увеличивается на значение слова, находящегося по адресу 0x0417.
  13. mul ax - Значение переменной 'ax' умножается на 16 (на 16-битном регистре).
  14. sub bx, ax - Значение переменной 'bx' уменьшается на значение переменной 'ax'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5