Mov es, ax
mov dx, offset mas ; в dx загружаем смещение
mov bx, es:[dx] ; загрузили в bx число 5
Типы данных, которые поддерживает ассемблер:
1) Байт (byte) – 8 разрядов, младший разряд справа
2) Слово (word) – 2 байта, 16 разрядов. Делится на 2 части: справа младший байт, слева – старший байт. Адресом слова в памяти является адрес младшего байта.
3) Двойное слово (dword). Состоит из младшего и старшего слов. Адресом является адрес младшего слова.
МП кроме разрядности поддерживает логическую интерпретацию типов:
a) Целый тип без знака
Байт: 0….255
b) Целый тип со знаком
Байт: -128….+127
Слово: -32768…+32768
c) Цепочка – непрерывный набор байтов, слов или двойных слов (максимальная длина до 4 Гбайт).
d) Битовое поле – непрерывная последовательность бит, в которой каждый бит является независимым и может рассматриваться как независимая переменная (максимальная длина 32 бита).
Ввод информации с клавиатуры и вывод ее на экран осуществляется в символьном виде. Кодирование этой информации производят согласно таблице. Каждый символ кодируется байтом.
При вводе чисел в программу необходимо преобразование кода символа в двоичный формат. При выводе результатов необходимо выполнить обратное преобразование (чисел в символьные коды).
Символ Код ASCII Двоичное представление Разность
0 30h 0000 30h
: : : :
9 39h 1001 30h
Для преобразования в двоичный код достаточно вычесть из кода ASCII 30h (для чисел от 0 до 9)
А(а) 41h(61h) 1010 37h(57h)
: : : :
F(f) 46h(66h) 1111 37h(57h)
Программа должна опознать, в каких границах находится код ASCII данного числа и в зависимости от принятого решения, вычесть из кода ASCII либо 37h, либо 57h.