Создание программ не линейной структуры - Assembler

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

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

Доброе время суток, очень нужно решить 2 задачи, буду огромно благодарен за помощь: 1) Задано натуральное число, диапазон значений слово. Сформировать число обратное к заданному. (123->321). 2) Определить попадает точка с заданными координатами в первую очередь или вторую четверть. Ответ вывести сообщением.

Решение задачи: «Создание программ не линейной структуры»

textual
Листинг программы
model   tiny
.code
org 100h
begin:  mov ax,1234
    mov bx,10
    xor cx,cx
@@01:   xor dx,dx
    div bx
    push    dx
    inc cx
    or  ax,ax
    jnz @@01
    mov si,1
    xor di,di
@@02:   pop ax
    xor dx,dx
    mul si
    add di,ax
    mov ax,si
    mul bx
    mov si,ax
    loop    @@02
    mov ax,di
    ret
    end begin

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

  1. Установка начального значения регистра AX в 1234.
  2. Установка начального значения регистра BX в 10.
  3. Установка начального значения регистра CX в 0.
  4. Установка начального значения регистра DX в 0.
  5. Начинается цикл, который выполняется до тех пор, пока значение регистра CX не станет равным 0.
  6. В начале цикла выполняется операция деления регистра AX на значение регистра BX, результат сохраняется в регистре DX.
  7. Результат операции деления (в регистре DX) сохраняется на стеке.
  8. Значение регистра CX увеличивается на 1.
  9. Если значение регистра AX (которое содержит результат операции деления) не равно 0, то выполняется следующая итерация цикла.
  10. Установка начального значения регистра SI в 1.
  11. Установка начального значения регистра DI в 0.
  12. Начальный цикл (п.5-9) завершается, и начинается новый цикл.
  13. Стек очищается, и из него извлекается значение, которое было сохранено в регистре DX в начале первого цикла.
  14. Значение в регистре DX (результат операции деления) умножается на значение регистра SI.
  15. Результат умножения (в регистре AX) добавляется к значению регистра DI.
  16. Значение регистра SI заменяется на значение регистра AX.
  17. Значение регистра AX (теперь оно равно значению регистра SI) умножается на значение регистра BX.
  18. Значение регистра SI заменяется на значение регистра AX.
  19. Цикл (п.10-17) повторяется до тех пор, пока значение регистра SI не станет равным 1.
  20. Значение регистра DI заменяется на значение регистра AX.
  21. Код завершается, и управление передается следующей инструкции после него.

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


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

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

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