![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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: 613; Нарушение авторских прав |