Написать программу перевода двухбайтового целого числа в массив символов - Assembler
Формулировка задачи:
Помогите пожалуйста сделать несколько лаб по ассемблеру, вот например такое задание:
Разработать алгоритм т написать программу перевода 2-байтового целого числа в массив символов, который представляет запись числа в шестнадцатеричной системе(4 знака)
число: A2B7h
Решение задачи: «Написать программу перевода двухбайтового целого числа в массив символов»
textual
Листинг программы
mov ecx,8; количество цифр в строке mov edi,offset String; адрес строки в edi @@: rol eax,4; преобразуемое число в регистре eax push eax cmp al,9;если al < 10, CF = 1 ja a1 add al,'0' jmp short a2 a1: add al,'7' a2: stosb; помещаем значение из AL в строку pop eax loop @b; уменьшаем счетчик
Объяснение кода листинга программы
- Вначале происходит установка счётчика циклов в 8 (ecx=8).
- Затем происходит установка адреса строки в регистре edi (edi=offset String).
- Далее происходит преобразование двухбайтового числа в регистре eax (eax=eax rol 4).
- Затем значение eax сохраняется на стеке (push eax).
- Происходит проверка младшего бита числа в eax (al) на предмет его значения (al < 10). Если это так, то флаг CF устанавливается в 1.
- Если условие в пункте 5 выполняется, то происходит переход к метке a1.
- В противном случае происходит переход к метке a2.
- При выполнении условия в пункте 7, к младшему биту числа в eax (al) добавляется символ '7'.
- При выполнении условия в пункте 6, к младшему биту числа в eax (al) добавляется символ '0'.
- Затем происходит переход к метке a2.
- Происходит копирование значения регистра al в строку (stosb).
- Затем происходит восстановление значения eax из стека (pop eax).
- Далее происходит проверка условия окончания цикла (loop @b).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д