Основные команды работы с битами

Различают следующие команды работы с битами

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. Создать ехе.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: