Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Команда MOV





Формат команды: MOV П,И

где П – приемник информации. В качестве приемника может использоваться РОН или ячейка памяти;

И – источник информации. В качестве источника информации могут использоваться РОН, ячейка памяти или константа (непосредственные данные, указанные в самой команде ассемблера).

Команда MOV копирует данные из источника в приемник. Приемник и источник должны быть одинаковой размерности! Нельзя в одной команде MOV пересылать данные между двумя ячейками памяти! При записи в память, т.е., если в качестве приемника указан адрес ячейки памяти, информация размером в Byte (8 бит) будет записана непосредственно в ячейку памяти с адресом, указанным в команде. При записи информации размером в Word (2 байта или 16 бит), будут задействованы две соседние ячейки памяти, начиная с адреса, указанного в команде, причем первым будет записан младший байт информации, а в соседнюю ячейку (в сторону увеличения адресов), старший байт информации. При записи информации размером Integer (2 слова, 4 байта, 32 бита), будут задействованы четыре соседних ячейки памяти начиная с адреса, указанного в команде, причем, первым будет записан младший байт младшего слова информации, а в соседние ячейки (в сторону увеличения адресов), соответственно, старший байт младшего слова, младший байт старшего слова и старший байт старшего слова (младшим байтом или словом называют байт или слово с меньшими номерами битов, например, в слове младшим байтом называют байт, который состоит из битов с нулевого по седьмой, а старшим тот, который состоит из битов с восьмого по пятнадцатый).

Примеры:

MOV AL,10 Занести число 10 в регистр AL. После выполнения команды AL=0A.

MOV BX,$FA Занести число FA16 (25010) в регистр BX. В данной строке примера использован символ «$» перед числом, который является обязательным префиксом для шестнадцатеричного числа. После выполнения команды BX=00FA. Несмотря на то, что в команде указана байтовая константа, компилятор оценит приемник, в качестве которого здесь выступает 16-ти разрядный регистр, и автоматически расширит константу незначащими нулями слева.

MOV ECX,EDX Занести значение регистра EDX в регистр ECX. Совершенно очевидно, что EDX сохранит свое значение.

MOV [EBX],BH Занести в ячейку памяти (т.к. приемник указан в квадратных скобках) с адресом, хранящимся в регистре EBX, один байт (так как источником является 8-ми разрядный регистр) со значением, хранящимся в регистре BH.

MOV Byte Ptr [ESI], $F0 Занести в ячейку памяти (т.к. приемник указан в квадратных скобках) с адресом, хранящимся в регистре ESI, один байт со значением F016 (24010). В данном случае определить размер источника без дополнительных указаний не представляется возможным, так как это может быть и F016, и 00F016, и 000000F016 и любая из этих констант может быть записана в память, заняв, соответственно, одну, две или четыре соседних ячейки памяти. В таких случаях размер данных указывается специальным префиксом, в данном случае Byte Ptr, который четко указывает, что заноситься будет один байт.

MOV Word Ptr [ECX+EDX*2], $1234 Занести в ячейку памяти с адресом, вычисленным по выражению ECX+EDX*2, одно слово со значением 123416 (466010). При этом по адресу ECX+EDX*2 будет занесен байт $34, а по адресу ECX+EDX*2+1 байт $12.

MOV DWord Ptr [ECX+EBX+$A], $12345678 Занести в ячейку памяти с адресом, вычисленным по выражению ECX+EBX+$A, двойное слово со значением 1234567816 (1908874410). При этом по адресу ECX+EBX+$A будет занесен байт $78, по адресу ECX+EBX+$A+1 байт $56, по адресу ECX+EBX+$A+2 байт $34, а по адресу ECX+EBX+$A+3 байт $12.

 

Date: 2015-10-19; view: 562; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию