Кто может проверить, правильно ли я написал программу? - Assembler

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

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

Нужно разработать программу с подпрограммой. В программе задаются данные 3 регистров (для каждого своя), после этого происходят операции на этими данными и результаты записываются соответственно, затем они складываются. Я тут прикинул. Исправьте меня, пожалуйста, если неправильно. Косяки возможны в в подпрограмме. (53+AL)*2+(150-AL)/3 BX=36 CX=82 DX=18
PROG:
XOR AH, AH
MOV BL, AL
ADD BL, 53
MOV CL, 150
SUB CL, AL
ADD BL, BL (по-моему, здесь косяк)
MOV AL, 3
DIV CL
ADD AL, BL
RET
MOV AL, 18
CALL PROG
MOV DX, AX
MOV AL, 82
CALL PROG
MOV CX, AX
MOV AL, 36
CALL PROG
MOV BX, AX
ADD DX, BX
ADD DX, CX

Решение задачи: «Кто может проверить, правильно ли я написал программу?»

textual
Листинг программы
push bx
push cx
; тут код процедуры
pop cx
pop bx
ret

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

В данном коде, написанном на языке Assembler, происходит следующее:

  1. push bx - на стек записывается значение регистра bx.
  2. push cx - на стек записывается значение регистра cx.
  3. ; тут код процедуры - здесь располагается код процедуры, который не представлен в данном фрагменте.
  4. pop cx - со стека считывается значение, которое записывается в регистр cx.
  5. pop bx - со стека считывается значение, которое записывается в регистр bx.
  6. ret - выполнение программы завершается, и управление передается операционной системе.

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


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

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

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