статьи
форум
VIP-акции
практика
о компании
прайс-лист
доставка
контакты
работаем без выходных
Ваш город: Санкт-Петербург изменить
Москва
Ставрополь

Гарантийные сервисные центры в регионах
 
главная > статьи > Справочная информация > Команды и параметры командной стро...  

← Отдел электроники Отдел силовой техники →

Станьте нашим клиентом, нажмите, чтобы получить скидку 15% на ремонт

количество просмотров: 60162
дата публикации: 04:10:2006

Страницы: 1 .. 182 183 184 185 186 .. 282

 

Debug: a (assemble)

Создание двоичного кода процессоров 8086/8087/8088 непосредственно в памяти. Выполненная без параметров команда a начинает работу с точки последнего останова.

Синтаксис

a [адрес]

Параметры

адрес
Задает адрес, по которому записаны инструкции на языке ассемблер. Параметр адрес принимает шестнадцатеричные значения без знака h.
?
Вывод списка команд debug.

Примечания

  • Задание правильных записей адреса

    Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр можно пропустить. По умолчанию для команд debug a, g, l, t, u и w адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Примеры правильных адресов:

    CS:0100

    04BA:0100

  • Задание мнемоник префикса

    Задайте мнемонику префикса инструкции перед кодом операции (т. е. opcode), к которой она относится. Команда a создает исполняемый машинный код из инструкций на языке ассемблера. Все числовые значения должны быть представлены в шестнадцатеричном формате и записаны как набор от 1 до 4 символов.

  • Использование мнемоник

    Мнемоники cs:, ds:, es: и ss:. Мнемоникой, вызывающей возврат управления в другой сегмент кода (far return), является retf. Мнемоники для работы со строками должны точно определять размер элементов строк. Например, для перемещения строк из слов (16 бит) следует использовать movsw, а для перемещения строк из байтов (8 бит) следует использовать movsb.

  • Задание переходов и вызовы функций

    Ассемблер автоматически обрабатывает переходы и вызовы (т. е. префиксы short, near или far ) в зависимости от смещения байтов. Имеется возможность переопределить переходы или вызовы с помощью префиксов near или far. Например:

    -a0100:0500
    0100:0500 jmp 502 ; короткий (short) переход на 2 байта
    0100:0502 jmp near 505 ; ближний (near) переход на 3 байта
    0100:0505 jmp far 50a ; длинный (far) переход на 5 байтов

    Вместо префикса near можно использовать сокращение ne.

  • Задание адреса слова или байта в памяти

    Если операнды ссылаются на адреса слов или байтов в памяти, тип данных должен быть задан с использованием префикса word ptr или byte ptr, которые можно сократить до wo для word ptr и до by для byte ptr. Например:

    dec wo [si]
    neg byte ptr [128]

  • Задание операндов

    В программе Debug.exe используется общее соглашение о том, что операнды, указывающие на адрес в памяти, заключаются в квадратные скобки ([ ]). Это единственный способ, который позволяет различать непосредственные операнды и ссылки на области в памяти в Debug.exe. Например:

    mov ax,21 ; загрузить число 21h в регистр AX
    mov ax,[21] ; загрузить содержимое
    ; памяти по адресу 21h
    ; в регистр AX

  • Псевдоинструкции

    С командой a часто используются две псевдоинструкции: операция db, которая размещает байты непосредственно в памяти, и операция dw, которая размещает в памяти слова. Например:

    db 1,2,3,4,"ЭТО ПРИМЕР"
    db 'ЭТО КАВЫЧКА: "'
    db "ЭТО КАВЫЧКА: '"
    dw 1000,2000,3000,"BACH"

  • Ввод данных в определенные байты
  • Деассемблирование байт

Примеры

Команда a допускает различное использование ссылок на регистры. Например:

add bx,34[bp+2].[si-1]
pop [bp+di]
push [si] )

Кроме того, команда a поддерживает использование синонимов дополнительных кодов операций: Например:

loopz 100
loope 100
ja 200
jnbe 200

Для дополнительных кодов операций процессора 8087 необходимо задать префиксы wait или fwait. Например:

fwait fadd st,st(3) ; эта строка вставляет
; в код префикса fwait

 

1 .. 182 183 184 185 186 .. 282

 

 

 

Почему мы лучше

Максимум 2 дня до диагностики (при сдаче ноутбука в любом из отделений)

бесплатная диагностика по многим видам техники

10 лет опыта

Работаем без выходных

Полный спектр услуг по ноутбукам и сварочной технике