Зеркально поменять местами разряды внутри старшего и младшего байтов каждого числа. (раздельная компиляция asm и C) - Assembler
Формулировка задачи:
Сюда посылаю 16-битовое число. Как зеркально поменять местами разряды внутри старшего и младшего байтов числа? MASM.
.686 .MODEL FLAT, C .STACK .DATA .CODE Fun PROC C a:dword ret Fun ENDP END
Решение задачи: «Зеркально поменять местами разряды внутри старшего и младшего байтов каждого числа. (раздельная компиляция asm и C)»
textual
Листинг программы
mov ecx,8 M:rol al,1 rcr ah,1 loop M mov al,ah
Объяснение кода листинга программы
- mov ecx,8 - Переменная ecx содержит 8 в шестнадцатеричной системе счисления.
- M:rol al,1 - В этом блоке выполняется операция сдвига влево на 1 бит без переноса (rotate left) для регистра al.
- rcr ah,1 - В этом блоке выполняется операция сдвига вправо на 1 бит без переноса (rotate right) для регистра ah.
- loop M - Этот блок повторяет выполнение двух предыдущих блоков до тех пор, пока значение переменной ecx не станет равным 0.
- mov al,ah - Значение регистра ah копируется в регистр al.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д