Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лаба 1. Простейшая программа описывающая данные




Символы

Формат представления данных в IBM совместимых процессорах.

БИТЫ, БАЙТЫ, ПОЛУБАЙТЫ, СЛОВА, ДВОЙНЫЕ СЛОВА.

Я СС (HEX)

Это компромисс между тем, что удобно компьютеру и тем что удобно человеку

q=16 {0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}

Позволяет существенно сжать 2ю информацию

1hex-цифра-> 4 двоичных разряда (тетрада)

ПЕРЕВОД 10х В 16ю

есть 3 варианта

1. Воспользоватся правилом целое - деления на 16, дробное - умножать на 16.

2. Сначала 10->2, а потом каждую 2ю тетраду представляют как 16ю цифру. Тетрады образуются от 10й точки влево для целой части и в право для дробной с дополнением если надо незначащих нулей.

3. Калькулятор.

137d->hex

137d->1000 1001 b-> 89 h

0.5d->hex

0.5d->0.1b->0.1000->0.8h

0.703125d->0.1011 01b->0. 1011 0100->0.B4h

обратно: hex->bin->dec

Информация в компьютере хранится в ячейках памяти. В IBM совместимых компьютерах с ОС Windows\Unix ячейки памяти имеют длину: байт, слово и двойное слово.

Байт - последовательность рядом стоящих двоичных цифр длиной 8 бит. Это наименьшая адресуемая компьютером единица информации.

Слово - упорядоченная последовательность информации длиной в 2 байта.

Двойное слово - 4 байта.

Octal

q=8 {0,1,2,3,4,5,6,7}

117.25d->oct

001110101.01b-> 001 110 101. 010 -> 165.2 Oct

Данные имею определенный формат.

Формат - размер ячейки (количество бит) в которой хранится данные и способ его преставления.

Для начала рассмотри форматы данных применительно к 16-ти разрядному программированию.

Хранятся в памяти в виде числового кода.

Стандартным является американский стандартный код для обмена информации ASCII. В нем представлены алфавитные, цифровые и специальные символы для каждого из которых выделяется 1 байт

1 символ = 1 байт

Формат Директив и машинных команд. Язык А состоит из директив и машинных команд. Формат директив и машинных команд одинаков и в общем случае состоит из 4х полей:

Имя Мнемокод Операнды ;коментарии

 

Между полями должен быть хотя бы один пробел (или ТАБ).

Обязательным полем является поле мнемокода остальные не обязательны.

Директива - что-то в программе описывают(объявляют). Команды - что-то в программе выполняют.

Используем TASM 2.0 (4.0)(Borland)

Этот компилятор поддерживает 2 синтаксических стандарта: MASM, Ideal.

Директивы ИНИЦИАЛИЗАЦИИ И ОПИСАНИЯ ДАННЫХ

Данные могут размещаться в областях памяти которые называются сегменты.

В общем случае таких сегментов 3:

1. Сегмент данных (.DATA)

2. Сегмент кода (.CODE)

3. Сегмент стека (.STACK)

Сегменты описывают с помощью специальной директивы SEGMENT.

Директива модели памяти (.MODEL).

Для инициализации простых типов данных используют директивы (D"x"). Эти директивы указывают компилятору какой размер памяти необходимо выделить.

Директивы Dx

Длина (бит) Мнемо код директивы Описание
  db,DB BYTE
  DW,dw WORD
  DD,dd DOUBLE WORD (DWORD)
  DQ,dq QWORD
  DT,dt TBYTE

 

Для директив Dx имя может быть а может и отсутсвовать.

Описание и инициализация данных - это распределение и инициализация памяти.

Пример

C/C++ Assembler
int N; N DW?
  N DD?
float A; A DD?
double B=-898.6897; B DQ -898.6897
long double Arr[100]; Arr DT 100dup(?)
   
   
   
   

 

ОБЩАЯ СТРУКТУРА ПРОГРАММЫ НА ASSEMBLER

Заголовок программы Title Заголовок
Модель памяти .Model large
  .Model tiny
  .Model small
  .Model medium
  .Model compact
  .Model huge
Сегмент Стека .Stack
  Dx
Сегмент дынных .DATA
  Dx
  Extrn
Сегмент Кода .CODE
  Extrn
  Proc1
  Proc2
  ...ProcN
Конец программы END
   
   

 

Исходный код программы сохраняется в виде файла с расшщирением ASM

Компиляция:

tasm Имя.asm /L (win)

tasm -L Имя.asm (Unix) -> Имя.lst

СТРУКТУРА lst ФАЙЛА

       
Номер строки Адрес смещения Машинный код Исходный код

 

Поля 2 и 3 содержат 16-е коды.

Поле 3 называют результатом ассемблирования

Пример:

В программе объявляются данные которые размещаются только в сегменте данных.

:файл example.asm

title example

;-----------------------------------------

.model tiny

;-----------------------------------------

.DATA

;-------------byte-----------------------

i DB 0, 255

;------------WORD---------------------

iw DW 4000

DW 65535

;--------------Short int----------------

is DB -128,127

;-------------integer-------------------

ii DW -32768

DW -25536

DW 32767

DW -1607

;--------long int -----

il dd 42294965689

ill dd -1607

;------single----------

a dd -1.

b dd 1.

ai dd -0.5, 0.5

dd 0.703125

dd -0.703125

dd 117.25

dd -117.25

;----------double---------

ad dq -1.

bd dq 1.

aid dq -0.5, 0.5

dq 0.703125

dq -0.703125

dq 117.25

dq -117.25

;---------end--------------

END

НАЗВАНИЕ ЛАБ 1: СОЗДАНИЕ ЛИСТИНГА




Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 407; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.