Различают следующие команды работы с битами
1. Логические операции
2. Сдвиги
Эти команды выполняются над битами байта или слова. По-этому они называются побитовые.
ЛОГИЧЕСКИЕ КОМАНДЫ
В ассемблере принято следующее правило - если содержимое бита=0 это означает false.
ТАБЛИЦА: Основные операции булевой алгебры
В ассемблере побитовые команды применяются к каждому биту байта или слова отдельно.
ТАБЛИЦА: Логика работы побитовых команд
Синтаксис | Логика | Флаги | ||||
OF | SF | ZF | PF | CF | ||
AND пр,ист | Пр=пр and ист | + | + | + | ||
Test -||- | Пр and ист | + | + | + | ||
OR -||- | Пр=пр or ист | + | + | + | ||
XOR -||- | -||- XOR -||- | + | + | + | ||
NOT приемн | Пр= не пр | - | - | - | - | - |
Маскирование разрядов
<источник> в логических командах с 2мя операндами называется маска. Значения маски обычно задаются обычно в 2 или 16 коде. Оно означает, что в соответствующем разряде установлена 1.
ТАБЛ: Значение маски
Номер бита | Значение маски hex | Номер бита | Значение маски hex |
ЛАБА 3
|
|
Создание.com файла
В ОС Windows основными характеристиками исполняемого файла типа.com является:
1. Длина файла ограничивается длиной 1 сегмента и не может превышать 64 кб
2. Отсутвуют сегмент стека и сегмент данных. Все данные программы находятся в сегменте кода
3. Все процедуры должны иметь атрибут NEAR т.е. модель памяти TINY
4. В программе необходимо установить значение начального смещения равного 100h -> 256 байт это выполняется директивой ORG 100h
5. Нет необходимости специально готовить стек, это делает ОС
6. Все данные и зарезервированную память необходимо размещать в виде блока в начале программы кода или после него, лучше перед; используется команда jmp для перехода к командам
7. Этапы компиляции
a. Создание.obj и листинга
b. Создание исполнительного файла.com tlink -t laba.obj -> laba2.com
;laba2.asm
.model TINY
.code
ORG 100h
Start jmp SHORT main
;==============DATA================
var1 dw 3
var2 dw 4
;==============CODE================
main proc near
mov ax,var1
mov bx,var2
add ax,bx
ret
main endp
end Start
При помощи системного отладчика DEBUG загружаем файл в ОЗУ (DEBUG laba2.com). Выполняем команду d 100 (Выводит дамп памяти который начинается с <CS>:0100h). При помощи листинга найти в дампе памяти коды созданной вами программы. Командой отладчика r вывести содержимое регистра. Затем использовать команду t - трассировка и проследить за регистрами ax и bx. q - quit. Создать ехе.