Intel x86 Assembly Language & Microarchitecture
Манипуляция данными
Поиск…
Синтаксис
- .386 : Сообщает MASM о компиляции для минимальной версии чипа x86 386.
- .model : Устанавливает модель памяти для использования, см. .MODEL .
- .code : сегмент кода, используемый для процессов, таких как основной процесс.
- proc : Объявляет процесс.
- ret : используется для успешного завершения функций, см. « Работа с возвращаемыми значениями» .
- endp : завершает декларацию процесса.
- public : делает процесс доступным для всех сегментов программы.
- end : Ends program или если используется с процессом, например, в « end main », делает процесс основным методом.
- call : вызывает процесс и выталкивает свой код операции в стек, см. « Управление потоком» .
- ecx : регистр счетчика, см. регистры .
- ecx : регистр счетчика.
- mul : умножает значение на eax
замечания
mov используется для передачи данных между регистрами .
Использование MOV для управления значениями
Описание:
mov копирует значения бит из аргумента источника в целевой аргумент.
Общий источник / назначение - это регистры , как правило, самый быстрый способ управления значениями с [in] CPU.
Еще одна важная группа значений source_of / destination_for - это память компьютера.
Наконец, некоторые непосредственные значения могут быть частью самой кодировки команды mov , экономя время отдельного доступа к памяти, считывая значение вместе с инструкцией.
На процессоре x86 в режиме 32 и 64 бит есть богатые возможности для их объединения, особенно в различные режимы адресации памяти. Обычно копирование памяти на память выходит за пределы (за исключением специализированных инструкций, таких как MOVSB ), и такая манипуляция требует промежуточного хранения значений в регистре [s].
Шаг 1. Настройте проект на использование MASM , см. « Выполнение сборки x86 в Visual Studio 2015».
Шаг 2: Введите следующее:
.386
.model small
.code
public main
main proc
mov ecx, 16 ; Move immediate value 16 into ecx
mov eax, ecx ; Copy value of ecx into eax
ret ; return back to caller
; function return value is in eax (16)
main endp
end main
Шаг 3: Скомпилируйте и отлаживайте.
Программа должна вернуть значение 16 .