Есть одно значение DWORD и есть указатель на другой DWORD. Нужно сравнить эти два значения. Как это сделать в masm32?
можно так cmp EAX,[EBX]; EAX - Есть одно значение DWORD в EBX - указатель на другой DWORD а можно и так mov EBX,[EBX]/cmp EAX,EBX
То, что нужно. Спасибо. А как быть если значения больше дворда, не строки? Ведь нельзя сравнивать [регистр] c переменной.
vg если значение больше DWORD можно 1) сравнивать в цикле по частям 2) использовать FPU или MMX сравнения чтобы сравнить [регистр] c переменной можно либо содержимое [регистр], либо содержимое переменной поместить в регистр, а потом сравнивать
Есть еще команды CMPS*. А так вообще жестокая тема, глянул у автора под 400 сообщений на форуме, а с cmp незнаком. Да и при чем тут MASM.
vg Код (Text): .data a dq ? b dq ? .code mov ebx,4; (размер QWORD в байтах)/2 a1: mov eax,dword ptr a[ebx] cmp dword ptr b[ebx],eax jnz a2; вывод сообщения "a не равно b" sub ebx,4 jnc a1
Почему незнаком? Знаком. Вопрос был в []. Макросы. Подзабыл. Казалось больше для строк (с нулём на конце). Но посмотрел, похоже тоже подойдёт.