cmp *
Сравнение памяти (memory compare)
Help:
=> help cmp
cmp - memory compare
Usage:
cmp [.b, .w, .l] addr1 addr2 count
=>
Результат выполнения команды для
Orange Pi Zero2:
=>cmp 0x10000 0x20000 0x400
word at 0x00010000 (0x00) != word at 0x00020000 (0xea0002be)
Total of 0 word(s) were the same
=>
С помощью команды cmp
можно проверить, идентично ли содержимое двух областей памяти.
Команда проверит либо всю область, как указано в третьем аргументе (длина), либо остановится на первом различии.
=> cmp 0x100000 0x200000 0x400
word at 0x00100000 (0x8083764e) != word at 0x00200000 (0x27051956)
Total of 0 words were the same
=> md 0x100000 0xc
00100000: 8083764e bd86200a 60a19054 2c12c402 ..vN.. .`..T,...
00100010: c101d028 00438198 7ab01239 62406128 ...(.C..z..9b@a(
00100020: 0c900d05 320b4581 1ca3d0a2 c498293a ....2.E.......):
=> md 0x200000 0xc
00200000: 27051956 552d426f 6f742032 3030392e '..VU-Boot 2009.
00200010: 31312e31 20284665 62203035 20323031 11.1 (Feb 05 201
00200020: 30202d20 30383a35 373a3132 29000000 0 - 08:57:12)...
=>
Как и большинство команд памяти, cmp
может обращаться к памяти разного размера: как 32-битные (длинное слово), 16-битные (слово) или 8-битные (байтовые) данные.
Если команда вызывается как cmp
, то размер по умолчанию 32 бита (длинные слова). То же самое можно выбрать явно, набрав вместо этого cmp.l
.
Если вы хотите получить доступ к памяти как к 16-битным или словным данным, вы можете использовать cmp.w
.
Для доступа к памяти в виде 8-битных (байтовых) данных используйте cmp.b
.
! Внимание ! Обратите внимание, что аргумент count указывает количество элементов данных для обработки, то есть количество длинных слов или слов или байтов для сравнения.
=> cmp.l 0x100000 0x200000 0x400
word at 0x00100000 (0x8083764e) != word at 0x00200000 (0x27051956)
Total of 0 words were the same
=> cmp.w 0x100000 0x200000 0x800
halfword at 0x00100000 (0x8083) != halfword at 0x00200000 (0x2705)
Total of 0 halfwords were the same
=> cmp.b 0x100000 0x200000 0x1000
byte at 0x00100000 (0x80) != byte at 0x00200000 (0x27)
Total of 0 bytes were the same
=>