Пятница, 2025-06-20, 5:43 PM
Приветствую Вас Гость | RSS
Главная | Арифметические операции | Регистрация | Вход
Меню сайта
Вход на сайт
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Программирование

    Арифметические операции Ассемблер. Команды Ассемблера

     

    Программирование арифметических выражений в языке Ассемблер происходит через некоторые команды такие, как:  mul, div, sub, add. Эти команды называются командами арифметических операций.


    Mul – команда умножения. Она умножает регистр ax на то, что стоит после нее. Результат заносится в ax. 
    Div – команда деления. Она делит регистр ax на то, что стоит после нее. Результат заносится в ax. 
    Add – команда сложения. Слаживает два числа. Результат заносится в первый регистр.
    Sub – команда вычитания. Вычитает два числа. Результат заносится в первый регистр.

    Пример: Написать программу на ассемблере вычисления выражения: а – e/b – de; 
    где а =5
    b =27
    c = 86
    е =1986; 
    d =1112; 
    Результат вычисления выражения сохранить в памяти. Навести значение и порядок размещения данные в памяти.

     Текст программы

    .686            ; директива определения типа микропроцессора 
    .model flat,stdcall          ; задание линейной модели памяти 
    ; но соглашения ОС Windows

    .data                  ; директива определения данные 
    _a dw 5           ; запись в 16-разрядный амбарчик памяти с именем _а числа 5 
    _b dw 27    ; запись _b = 16h 
    _c dw 86    ; запись _c = 56h 
    _e dw 1986        ; запись _e = 7C2h 
    _d dw 1112        ; запись _d = 458 
    res dw 0          ; резервирование памяти для сохранения переменной res

    .code       ; директива начала сегмента команд 
    start: 
    mov edx,0   ; очистка регистров 
    mov ebx,0   ; очистка регистров 
    mov ecx,0   ; очистка регистров 
    mov ах,_e   ; в регистр ах заносим число _e = 7C2h 
    mul _d      ; множим _e и _d 
    SHL edx,16  ; делаем здвиг на 16 
    mov dx,ax 
    push edx    ; бросаем значение в стек 
    mov edx,0 
    mov ах,_e 
    mov cx,_b 
    div cx      ; делим ах с cx 
    pop ecx     ; достаем из стеку значения 
    sub ecx,eax ; отнимаем
    mov ах,_a   
    sub eax,ecx       
    mov res, eax 
    ret   ; возвращение управление ОС 
    end start   ; окончание программы с именем _start

    Результат работы программы


    uCozCopyright MyCorp © 2025