Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Флаги регистра eflags/flags можно разделить на три группы.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
· 8 флагов состояния. Эти флаги могут изменяться после выполнения машинных команд; · 1 флаг направления. Обозначается как df (Directory Flag). Используется цепочечными командами; · 8 системных флагов, управляющих вводом/выводом, маскируемыми прерываниями, отладкой, переключением между задачами и виртуальным режимом 8086. Таблица 2.1. Флаги состояния
Таблица 2.2. С истемные флаги
Данные в ассемблере Секции.data,.data? и.const нужны для определения данных программы. Место под данные резервируется с помощью директив db, dw, dd, dq, dt.
Db - 1 байт Dw - 2 байта - 1 слово Dd - 4 байта - 2 слова Dq - 8 байт - 4 слова Dt - 10 байт
Все данные из секции.data включаются в исполнимый файл. В секции.data? данные нельзя инициализировать. Все данные в этой секции не включаются в исполнимый файл. Секция.const предназначена только для чтения. При попытке изменить эти данные ошибок не возникает. .data Perem dd 0000FF11h;0000 0000 0000 0000 1111 1111 0001 0001 X1 dw 01235h;0001 0010 0011 0101 Binary db 00111010b;00111010 decimal dw 28d;0001 1100 large dq 01123456789ABCDEFh;0001 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 .data? Perem1 dd? 0000 0000 0000 0000 0000 0000 0000 0000 Perem2 dq? 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 Perem5 dw? 0000 0000 0000 0000 Dd? 0000 0000 0000 0000 0000 0000 0000 0000 Dw? 0000 0000 0000 0000 Perem4 db? 0000 0000 .const Const1 dd 012345678h 0001 0010 0011 0100 0101 0110 0111 1000 dw 768d 0000 0011 0000 0000
Строки. В ассемблере можно задавать только ANSI строки, Unicode строки сложнее задавать и для их обработки существует целый ряд API функций. Первой известной кодировкой символов была кодировка ASCII, и она используется до сих пор. В ASCII-кодировке каждый символ занимает 8 бит, или один байт. 2) Международная организация по стандартизации ISO (International Standards Organization) создала новый стандарт кодировки символов, названный Latin-1, который содержал европейские символы, не вошедшие в набор ASCII. 3) Microsoft расширила Latin-1 и назвала этот стандарт ANSI. ANSI 8-битная кодировка, которая может представлять только 256 уникальных символов. 4) Microsoft в сотрудничестве с Apple Computer, Inc., и IBM создала некоммерческий консорциум Unicode, целью которого стало определение нового стандарта на кодировку символов для международных наборов символов. Работа, проделанная в Unicode, была объединена с работой, которая велась в ISO, и их результатом работы стал стандарт Unicode для кодировки символов. Unicode является 16-разрядным стандартом, что обеспечивает 65 536 уникальных символов - более чем достаточно для представления всех языков мира. 5) Родной кодировкой для Windows является Unicode, но она поддерживает и ANSI. ОС представляет имена объектов, пути и имена файлов в виде 16-битных символов Unicode. Она также использует Unicode для хранения данных в реестре. Если программа сохраняет текст Jerry с использованием ANSI, то он будет выглядеть в памяти как: 0×4А 0×65 0×72 0×72 0×79. Если программа сохраняет этот же текст с использованием Unicode, то он будет выглядеть как: 0×00 0х4А 0×00 0×65 0×00 0×72 0×00 0×72 0×00 0×79.
При присваивании однобайтовой переменной некоторого символа, то эта переменная будет равна коду символа в кодировке ANSI. При инициализации символа можно использовать и кавычки и апострофы - без разницы.
Data Char1 db 'W' Char2 db 'Й' db "r" Тоже самое: Data Char1 db 57h Char2 db 0C9h Db 72h
Объявлять строки можно и следующим образом: String db "ASM" Тоже самое: String db 'A' Db "S" Db "M" Тоже самое: String db 41h Db 53h Db 4Dh Тоже самое: String db 41h, 53h, 4Dh
При передаче строк функциям в качестве параметров надо чтобы в конце строки был 0, для того чтобы функция смогла найти конец строки. String db "ASM",0h Msg db "First ASSEMBLER program",0h Ttl db 'Hello, World!!!!',0h
Заполнение данными. Если нужно описать много одинаковых переменных, например 30 переменных, то это можно сделать так: Db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; 30 раз Но можно это сделать с помощью директивы DUP. Db 30 DUP (0); тот же результат
в скобках указываем, чем надо заполнять, можно использовать символы в кавычках. Обязательно чтобы размер в скобках совпадал с директивой.
Примеры: Dd 10 DUP ("в") 00 00 00 A2 00 00 00 A2 00 00 00 A2 00 00 00 A2 00 00 00 A2 00 00 00 A2 00 00 00 A2 00 00 00 A2 00 00 00 A2 00 00 00 A2 Dw 45h DUP (0DF23h); 69 повторений DF23 Dd 100b DUP (12345678h); 4 повторения 12345678h 12345678h 12345678h 12345678h
Операнды языка Ассемблер Операнды – это объекты (некоторые значения, регистры или ячейки памяти), на которые действуют инструкции или директивы, либо это объекты, которые определяют или уточняют действие инструкций или директив. Классификация операндов: 1. Постоянные или непосредственные операнды – число, строка, имя или выражение, имеющие некоторое фиксированное значение. Имя не должно быть перемещаемым, то есть зависеть от адреса загрузки программы в память. Оно может быть определено операторами equ или =. Num equ 5 imd = num-2 Mov al,num; эквивалентно mov al,5: 5 здесь непосредственный операнд add [si],imd; imd=3 – непосредственный операнд
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 539; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.166.45 (0.008 с.) |