Какой регистр x86 обозначает местоположение источника в команде movsb?
Какой регистр x86 обозначает местоположение источника в команде movsb?
Ответ 1
В 32-битном режиме esi
.
В частности, movsb
копирует один байт от ds:esi
до es:edi
, настраивает как esi
, так и edi
на 1, вверх или вниз в зависимости от флага направления.
Ответ 2
Как извлечь эту информацию из руководства
Теперь, когда вы вошли в osdev.org, пришло время оплатить свой моральный долг, фактически изучив его.: -)
Перемещает байт, слово или двойное слово, указанное со вторым операндом (исходный операнд), в указанное место с первым операндом (операндом назначения). Оба операнда источника и адресата находятся в памяти. адрес исходного операнда считывается из регистров DS: ESI или DS: SI
Минимальная тестовая программа
Наконец, вы должны сделать минимальную программу, которая использует инструкцию, чтобы убедиться, что вы поняли ее правильно:
section .data
src db 0
dest db 1
section .text
global _start
_start:
mov esi, src
mov edi, dest
cld
movsb
/* dest == 0*/
Версия этого с утверждениями на GitHub.