Использование памяти отведенной malloc - Assembler

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

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

Выделяю память и хочу инициализировать всё байтовой единицей. Что я делаю не так ?
mov dword [number], 21
    
    create_array:
    
    sub dword [number], 1 ;;;
    push dword [number]
    call _malloc
    add esp, 4
    test eax, eax
    je .fail
    jne .fail_continue
    .fail:
        push error_malloc
        call _printf
        add esp, 4
        mov edx, 1
        jmp end
    .fail_continue:
        mov ecx, [number]
        mov edx, eax
        .for:
            mov byte [edx], 1
            inc edx
            loop .for

Решение задачи: «Использование памяти отведенной malloc»

textual
Листинг программы
        mov edi, eax
        mov eax, 1010101h
        rep stosd

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

В данном коде на языке Assembler происходит следующее:

  1. mov edi, eax — в данном выражении происходит копирование регистра eax в регистр edi.
  2. mov eax, 1010101h — в данном выражении в регистр eax записывается значение 1010101 в шестнадцатеричной системе счисления.
  3. rep stosd — это команда, которая выполняет повторенное чтение-запись блоков данных из памяти. В данном случае, она будет записывать в память значения, которые находятся в регистре eax.

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


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

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

6   голосов , оценка 3.333 из 5
Похожие ответы