Работа с строчным оператором - Assembler
Формулировка задачи:
Я студент 1 курса ...и не понимаю Архитектуру ЭВМ.Почему? ну наверное слаб + предпод у нас гениальный человек , но он не может быть предподом, так как не умеет объяснять
ПОЭТОМУ ПРОШУ ПОМОГИТЕ МНЕ РЕШИТЬ 3 номер в билете
Вот нормальное условие :
Работа с строчным оператором.сложить цифры в строку @str db "25".взять во внимание что код цифры 0 и символа "0" отличаются на 48...
Решение задачи: «Работа с строчным оператором»
textual
Листинг программы
mov ah,0 mov si,offset @str mov cx,2 next_digit: lodsb sub al,48 add ah,al loop next_digit ; На выходе из цикла будем иметь сумму в регистре ah.
Объяснение кода листинга программы
В данном коде выполняется сложение чисел от 0 до 9, после чего результат сохраняется в регистре ah. Вот список действий, которые выполняются в этом коде:
- mov ah,0 — в начало цикла устанавливается начальное значение суммы равное 0.
- mov si,offset @str — в регистр si загружается смещение строки, с которой начинается цикл.
- mov cx,2 — в регистр cx загружается значение 2, которое будет использоваться в цикле.
- next_digit: — название цикла.
- lodsb — из памяти загружается байт, представляющий собой цифру числа.
- sub al,48 — из регистра al вычитается значение 48, представляющее собой цифру 0 в десятичной системе счисления. Это необходимо для получения числового значения цифры в диапазоне от 0 до 9.
- add ah,al — к значению в регистре ah добавляется значение из регистра al.
- loop next_digit — переход к следующей итерации цикла.
- ; На выходе из цикла будем иметь сумму в регистре ah. — комментарий, описывающий результат работы цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д