Integer to string - Assembler

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

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

.code
start:
 
mov esi,0    
@@hty: 
        invoke  MessageBox,HWND_DESKTOP,esi,'Заголовок',MB_ICONASTERISK
        inc esi 
 
        cmp esi,5 
            jne @@hty
            invoke ExitProcess,0 
.end start
Все кто смотрел, заметили большую хрень в строке №6, т. к. я пытаюсь вывести значение регистра как текст... Буду благодарен тому, кто расскажет вкратце про типы переменных в регистрах в asm, или кинет ссылочку на учебник/самоучитель

Решение задачи: «Integer to string»

textual
Листинг программы
buf db 128 dup (0)
fmt db '%08X',0
...
invoke wsptintf,addr buf,addr fmt,esi
invoke  MessageBox,HWND_DESKTOP,addr buf,'Заголовок',MB_ICONASTERISK

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

  1. Переменная buf объявлена как буфер для хранения строки. Её размер составляет 128 байт. Начальное значение каждого байта установлено в 0.
  2. Переменная fmt содержит форматную строку, которая определяет, как будет выглядеть итоговая строка. В данном случае формат состоит из восьмиричного числа в шестнадцатеричной системе счисления.
  3. Команда invoke wsptintf используется для преобразования целого числа в строку с использованием указанного формата и сохранением результата в буфере buf.
  4. Команда invoke MessageBox отображает диалоговое окно с сообщением, используя адрес буфера buf в качестве текста сообщения. Дополнительные параметры включают адрес окна рабочего стола, заголовок и тип иконки.

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


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

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

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