Написать программу перевода двухбайтового целого числа в массив символов - Assembler

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

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

Помогите пожалуйста сделать несколько лаб по ассемблеру, вот например такое задание: Разработать алгоритм т написать программу перевода 2-байтового целого числа в массив символов, который представляет запись числа в шестнадцатеричной системе(4 знака) число: A2B7h

Решение задачи: «Написать программу перевода двухбайтового целого числа в массив символов»

textual
Листинг программы
  1.     mov ecx,8; количество цифр в строке
  2.     mov edi,offset String; адрес строки в edi
  3. @@:    rol eax,4; преобразуемое число в регистре eax
  4.     push eax
  5.     cmp al,9;если al < 10, CF = 1
  6.     ja a1  
  7.     add al,'0'
  8.     jmp short a2
  9. a1:     add al,'7'
  10. a2:    stosb; помещаем значение из AL в строку
  11.     pop eax
  12.     loop @b; уменьшаем счетчик

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

  1. Вначале происходит установка счётчика циклов в 8 (ecx=8).
  2. Затем происходит установка адреса строки в регистре edi (edi=offset String).
  3. Далее происходит преобразование двухбайтового числа в регистре eax (eax=eax rol 4).
  4. Затем значение eax сохраняется на стеке (push eax).
  5. Происходит проверка младшего бита числа в eax (al) на предмет его значения (al < 10). Если это так, то флаг CF устанавливается в 1.
  6. Если условие в пункте 5 выполняется, то происходит переход к метке a1.
  7. В противном случае происходит переход к метке a2.
  8. При выполнении условия в пункте 7, к младшему биту числа в eax (al) добавляется символ '7'.
  9. При выполнении условия в пункте 6, к младшему биту числа в eax (al) добавляется символ '0'.
  10. Затем происходит переход к метке a2.
  11. Происходит копирование значения регистра al в строку (stosb).
  12. Затем происходит восстановление значения eax из стека (pop eax).
  13. Далее происходит проверка условия окончания цикла (loop @b).

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


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

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

11   голосов , оценка 4.273 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы