Как произвести циклический сдвиг на свое число?
Есть программа, считывает из консоли число и производит циклический сдвиг на 5, выводит в консоль результат, но задача состоит в том что я должен еще ввести и второе число на кторое и будет совершен сдвиг, однако у меня ничего не получается, если я просто считаю второе число не использую его, ответ получается совсем не тем, и еще проблема в том что я не знаю как передать считанное значение второго числа в ROL
.386
.model flat, stdcall
option casemap:none
include D:\masm32\include\masm32rt.inc
ExitProcess proto :DWORD
.data
scanForm db "%d",0
printForm db "%d",0
.data?
firstnum dword ?
secondnum dword ?
.code
start:
invoke crt_scanf, offset scanForm, offset secondnum
mov ecx, secondnum
invoke crt_scanf, offset scanForm, offset firstnum
mov eax, firstnum
rol AX, CL
invoke crt_printf, offset printForm, eax
invoke crt_scanf, offset scanForm, offset firstnum
invoke ExitProcess, 0
end start
code end
Ответы (1 шт):
Автор решения: nearby_all
→ Ссылка
Проблема решена
invoke crt_scanf, offset scanForm, offset secondnum
mov ecx, secondnum
mov CL, CH
invoke crt_scanf, offset scanForm, offset firstnum
mov eax, firstnum
rol AX, CL
invoke crt_printf, offset printForm, eax
invoke crt_scanf, offset scanForm, offset firstnum
invoke ExitProcess, 0