# | Сообщение добавлено 05.06.2010 17:52:53
Отредактировано 05.06.2010 17:53:09 by Actor
возникла небольшая проблемка с использованием инструкции shr. используется masm. этот код выполняется:
.386
.model flat, stdcall
include kernel32.inc
includelib kernel32.lib
.data
mv db 4d
.code
start:
mov eax, 77d
shr eax, 4d
;;;;;;;;;;;;;
;shr eax, mv
;;;;;;;;;;;;;
;mov ebx, 4d
;shr eax, ebx
invoke ExitProcess,0
end start
а следующие два - нет
.386
.model flat, stdcall
include kernel32.inc
includelib kernel32.lib
.data
mv db 4d
.code
start:
mov eax, 77d
;shr eax, 4d
;;;;;;;;;;;;;
shr eax, mv
;;;;;;;;;;;;;
;mov ebx, 4d
;shr eax, ebx
invoke ExitProcess,0
end start
.386
.model flat, stdcall
include kernel32.inc
includelib kernel32.lib
.data
mv db 4d
.code
start:
mov eax, 77d
;shr eax, 4d
;;;;;;;;;;;;;
;shr eax, mv
;;;;;;;;;;;;;
mov ebx, 4d
shr eax, ebx
invoke ExitProcess,0
end start
насколько я понял, второй аргумент в инструкции shr должен быть "просто числом". вопрос: можно ли в качестве второго аргумента использовать, например, регистр (как в последнем случае)? и если да, что надо дописать/изменить в коде?
Заранее спасибо.