RSS    

   Курсовая работа: Микропроцессорные средства и системы

Выполнить следующее арифметическое действие в 8-ми разрядной сетке ( старший бит содержит знак числа ) : 5 х 25

х 0 . 0 0 1 1 0 0 1 х 2 5
0 . 0 0 0 0 1 0 1 5
0 0 1 1 0 0 1
0 0 0 0 0 0 0
0 0 1 1 0 0 1
0 . 1 1 1 1 1 0 1 1 2 5

Контрольная работа № 2

Задача № 1

Определить размер памяти в килобайтах ( байтах ), если данная память адресуется с адреса A0EDH по адрес EF34H. Одна ячейка памяти занимает 8 бит

Для решения определим вначале кол-во ячеек памяти, адресуемых одним разрядом при 16- теричной системе адресации.

4-й разряд 3-й разряд 2-й разряд 1-й разряд H
4096 256 16 1 H

Таким образом, начальный и конечный адреса в десятичной системе будут :

A0EDH = 4096 * 10 + 256 * 0 + 16 * 14 + 1 * 13 + 1= 41198 ;

EF34H  = 4096 * 14 + 256 * 15 + 16 * 3 + 1 * 4 +1 = 61237 .

61237 - 41198 = 20039.

20039 = 19 * 1024 + 583.

Итак, размер памяти будет 20039 байт или 19 кБ. 583 байт

Задача № 2

Символьная строка расположена в ОЗУ начиная с адреса 0006H. Известно, что под каждый символ отводится одна ячейка памяти. Число символов в строке = 731. Определить адрес для обращения к последнему символу строки.

Порядковый номер последней ячейки памяти в десятичной системе будет 731 + 6 = 737. Переведем 738 из десятичной системы в двоичную :

73710 = 0010111000012

Теперь  переводим в 16 - теричную : 0010111000012 = 02E116   

Ответ : адрес последнего символа 02E1H

Задача № 3

Составить программу на Ассемблере с комментариями :

Подсчитать число символов в строке, расположенной в области начиная с адреса 1000H и заканчивая адресом 2000H без учета пробелов, если известно, что каждый символ занимает одну ячейку памяти и пробел кодируется как 01H.

Максимальное число символов в строке 2000h -1000h=1000h=409610

После выполнения программы результат будет помещен в HL.

LXI SP,3000h ; указание вершины стека

LXI H,1000h ; адрес 1-го элемента => в HL

LXI D,1000h ; загрузка счетчика в D,E

XRA A ; обнуление аккумулятора

STA 2001h ; обнуление счетчика количества символов

STA 2002h ; обнуление счетчика количества символов

MVI B,01h ; код пробела => в В

LOOP:

MOV A,M ; загрузить символ из ячейки М в аккумулятор

CMP B ; проверка на код пробела

JNZ COUNT ; если не совпадает, переход к COUNT, иначе - дальше

INX H ; адрес следующего символа

DCX D ; уменьшить счетчик

JZ EXIT ; если счетчик = 0, на выход

JMP LOOP ; в начало цикла

COUNT:

PUSH H ; выгрузить содержимое HL в стек

LHLD 2001h ; загрузить HL содержимым счетчика количества символов

INX H ; увеличить счетчик на 1

SHLD 2001h ; сохранить счетчик количества символов в 2001h, 2002h

POP H ; восстановить в HL сохраненный адрес

RET  ; возврат из подпрограммы

EXIT:

LHLD 2001h ; загрузить HL содержимым счетчика количества символов

END

Задача № 4

Составить программу на Ассемблере, направленную на решение математической функции :

Страницы: 1, 2, 3, 4, 5, 6, 7


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.