Другие языки программирования и технологии

Дан массив из 8 байт. Рассматривая его, как массив из 64 бит посчитать длину самой длинной последовательности единиц.

Нужна помощь по ассемблеру
OPTION DOTNAME
option casemap :none

include temphls.inc
include win64.inc
include kernel32.inc
include msvcrt.inc
includelib kernel32.lib
includelib msvcrt.lib

OPTION PROLOGUE:rbpFramePrologue
OPTION EPILOGUE:rbpFrameEpilogue

.data
  Array db  85, 177, 62, 31, 252, 1, 101, 132
  Format db "%u", 0

.code
N184694494 proc <1>
    mov ecx, 8
    lea rsi, Array
@@:
    shl rax, 8
    lodsb
    loop @B
    xor r11, r11
    xor r10, r10
DoLoop:
    rcl rax, 1
    pushf
    adc r10, 0
    cmp r11, r10
    jae @F
    mov r11, r10
@@:
    popf
    jc @F
    xor r10, r10
@@:
    test rax, rax
    jnz DoLoop

    invoke printf, addr Format, r11d
@@:
    invoke _kbhit
    test eax, eax
    jz @B

    invoke ExitProcess, 0
    ret
N184694494 endp
    end
Денис Перлов
Денис Перлов
51 590
Лучший ответ
о_О Вы действительно думаете что ассемблер это один язык? Только для x86 модели я знаю 4 ассемблера. И синтаксис в них немного отличается. А если взять arm процессоры, то там свой ассемблер. Для пик микроконтроллеров свой, для атмел микроконтроллеров свой, для 8051 свой! Поканкретнее задавать надо! А потом помагите подразумевает что вы пробовали писать, но у вас где то ошибка и вы просите найти ее или подсказать где она!
Игорь Музыка
Игорь Музыка
15 388
cyberforum.ru/asm-beginners/thread1400882.html
там все просто, запихиваем в регистр, сдвигаем в флаг и подсчитываем
Андрей Дёмин
Андрей Дёмин
1 786

Похожие вопросы