Записать последовательность ASCII кодов его букв в ячейку памяти минимального размера - Assembler
Формулировка задачи:
Ребят нужна помошь есть вот такая задача
"Дано слово из трех букв (например ФКН). С помощью битовых операций запишите
последовательность ASCII кодов его букв в ячейку памяти минимального размера. Слово может быть и
другим, программа должна его запрашивать. Запрашивать можно на языке высокого уровня."
Нужно помочь с её решением, уже весь день убил, а продвигу 0, препод ничего тоже не объясняет дал тока срок,
знаю точно что писать нужно в ассемблер в C++, учюсь блин 3 день, а уже такое.
Помогите кто чем может новичку.
Решение задачи: «Записать последовательность ASCII кодов его букв в ячейку памяти минимального размера»
textual
Листинг программы
cld mov si,offset Строка xor dx,dx mov сx,3 @@1: push cx mov cl,5 lodsb ; al=ds:[si] @@2: shr al,1 rcr dx,1 loop @@2 pop cx loop @@1 shr dx,1 ; 16-й бит ; результат в dx ; я думаю, вам вряд ли рассказывали про shrd, так что пусть так
Объяснение кода листинга программы
- Установка регистра si на смещение строки.
- Очистка регистра dx.
- Запись значения 3 в регистр cx.
- Повторяющийся блок кода, который начинается с 16-й бит ASCII-кода и заканчивается после обработки всех 8 битов.
- Вычитание 1 из значения в регистре cx.
- Ввод значения 5 в регистр cl.
- Чтение байта из памяти по смещению, хранящемуся в регистре si, и сохранение его в регистре al.
- Удаление 1-го бита из значения в регистре al (shr al,1).
- Сдвиг значения в регистре dx на 1 позицию вправо (rcr dx,1).
- Повторение шагов 8 и 9 до тех пор, пока не будет выполнено 16 повторений.
- Вывод значения в регистре dx, представляющего собой 16-й бит ASCII-кода.
- Возврат значения в регистре dx к его начальному значению (shr dx,1).
- Результат сохраняется в регистре dx.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д