Вычислить выражение - Assembler (223246)

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

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

Помогите,пожалуйста! Необходимо вычислить выражение: W1*W2-B1*B2 И посоветуйте,пожалуйста,литературу по языку Ассемблер.Спасибо!

Решение задачи: «Вычислить выражение»

textual
Листинг программы
  1. LOCALS
  2.  
  3. .model small
  4.  
  5. .stack 100h
  6.  
  7. .data
  8.         W1      dw      300
  9.         W2      dw      500
  10.         B1      db      120
  11.         B2      db      70
  12. .code
  13.  
  14. main    proc
  15.         mov     ax,     @data
  16.         mov     ds,     ax
  17.  
  18.         mov     ax,     W1      ;(dx:ax):=W1*W2
  19.         imul    W2
  20.         mov     cx,     ax      ;(bx:cx):=(dx:ax)
  21.         mov     bx,     dx
  22.  
  23.         mov     al,     B1      ;ax:=B1*B2
  24.         imul    B2
  25.         cwd                     ;(dx:ax):=B1*B2
  26.  
  27.         sub     cx,     ax      ;(bx:cx):=W1*W2-B1*B2
  28.         sbb     bx,     dx
  29.  
  30.         mov     ax,     4C00h
  31.         int     21h
  32. main    endp
  33.  
  34. end     main

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

  1. Установка сегмента данных на сегмент стека: .model small .stack 100h
  2. Объявление переменных: .data W1 dw 300 W2 dw 500 B1 db 120 B2 db 70
  3. Начало выполнения программы: main proc
  4. Передача сегмента данных в регистр ax: mov ax, @data
  5. Передача сегмента данных в регистр ds: mov ds, ax
  6. Вычисление значения (dx:ax) как (W1*W2): mov ax, W1 imul W2
  7. Передача результата в регистры bx и cx: mov cx, ax mov bx, dx
  8. Вычисление значения ax как (B1*B2): mov al, B1 imul B2
  9. Приведение регистра ax к типу dx: cwd
  10. Вычисление значения (bx:cx) как (W1W2)-(B1B2): sub cx, ax sbb bx, dx
  11. Вывод в консоль сообщения об успешном выполнении программы: mov ax, 4C00h int 21h
  12. Конец выполнения программы: main endp
  13. Конец файла: end

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


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

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

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут