Реализовать арифметические действия - Assembler

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

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

Добрый день! Помогите реализовать на АСМ

Решение задачи: «Реализовать арифметические действия»

textual
Листинг программы
title lab3.asm
.MODEL Large, Pascal
.data
Extrn Numerator:Dword
Extrn aS:word,ccS:word,ddS:word,bbS:word
Extrn xI:word
Extrn Denominator:word
.code
Public  Lab3S
Lab3S   proc    far
    mov bx, 4
    mov ax, aS
    cwd
    idiv    bx
    mov bx,bbS
    sub bx,ax
        mov     Denominator,bx  ; b-a/4
 
 
    mov bx, 3
    mov ax, ddS
    cwd
    idiv    bx
    mov cx, ax  ; d/3
 
    mov bx, 2
    mov ax, ccS
    imul    bx
    xchg    cx, ax
    mov bx, dx
    cwd
    sub cx, ax
    sbb bx, dx
 
    mov ax, cx
    mov dx, bx
 
    mov word ptr Numerator,ax
    mov word ptr Numerator+2,dx
    
        idiv    Denominator
    mov xI,ax
    ret
Lab3S   endp
    end

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

  1. Объявлены внешние переменные: Numerator, aS, ccS, ddS, bbS, xI, Denominator.
  2. Код выполняет следующие действия:
    • Деление aS на 4 и сохранение результата в bx.
    • Вычитание bx из ax.
    • Сохранение результата в Denominator.
    • Деление ddS на 3 и сохранение результата в ax.
    • Вычитание bx из ax.
    • Умножение ccS на 2 и сохранение результата в ax.
    • Обмен значениями ax и cx.
    • Вычитание bx из ax.
    • Сохранение результата в bx.
    • Деление Numerator на Denominator и сохранение результата в ax.
    • Сохранение результата в xI.
  3. Код завершается возвратом в вызывающую программу.

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


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

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

15   голосов , оценка 4.2 из 5
Похожие ответы