Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: i8080/8085/KP580
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
RUSya82
237 / 115 / 14
Регистрация: 15.10.2010
Сообщений: 395
1

Работа с памятью

22.03.2011, 19:03. Просмотров 1094. Ответов 2
Метки нет (Все метки)

Доброго времени суток. Осталась одна лаба по Организации ЭВМ и систем, первые три добил. Работа на микроконтроллере МК580(ну то есть на его эмуляторе). Всю лабу делать не прошу, надо только подсказать. Задание:
создать программный пакет тестирования ОЗУ шахматным кодом. Пакет состоит из двух программ. Первая заполняет ячейки ОЗУ выбранного диапазона шахматным кодом. При этом в i - ю ячейку записывается код 01010101, а в i+1 – ю код 10101010. Вторая программа производит проверку записанной информации. В случае успеха выдавать в порт 05 комбинацию 01h, а при сбое комбинацию 0FFh. Диапазон тестируемой памяти: 0810 - 09FF.
В последнем предложении как раз и загвоздка. Как программа, так и данные пишутся в ОЗУ, диапазон адресов которого 0800 - 0BB0. Код программы хранится начиная с 0800. Но её не уместить в 16 байт. Как мне разместить код программы на другом участке памяти? И как потом обратиться к нему?
В институте явно изучали когда то, может что вспомните
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2011, 19:03
Ответы с готовыми решениями:

Работа с памятью
Друзья, ассемблер только начал изучать. Ассемблер начал изучать недавно и...

работа со страничной памятью
Доброго времени суток! Занят написанием манагера памяти для ОСи, в данный...

Область видимости и работа с памятью
Вопрос касается работы с переменными в ассемблере. а именно области видимости и...

работа с памятью через Virtual Pascal
все в духе "на уроках изучаем 2+2=4, а контрольная "расчитайте сколько самолет...

Masm организация управления основной памятью
Со сдачей затянул,сейчас надо срочно сдать. С ассемблером почти не знаком...

2
RUSya82
237 / 115 / 14
Регистрация: 15.10.2010
Сообщений: 395
25.03.2011, 13:31  [ТС] 2
Никто не помнит что ли?
0
RUSya82
237 / 115 / 14
Регистрация: 15.10.2010
Сообщений: 395
05.04.2011, 21:04  [ТС] 3
Это есть в настройках эмулятора оказывается.
Вот код, может кому понадобится:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
              lxi B,02EF  ;счетчик
              lxi H,0810   ;адрес начала тестируемой памяти
              mvi A,55    ; в регистр A помещаем 01010101
 link:      mov M,A    ;по адресу в HL записываем число
              inx H           ;переход к следующей ячейке 
              rlc              ;8 разрядный сдвиг аккумулятора
              dcr C         ;декремент счетчика
              jnz link     ;если счетчик не равен нулю, повторяем цикл
              dcr B    ;инкремент старшего байта
              jnz link  ;если не ноль, то продолжаем
               
                   lxi H, 0810   ;начало тестируемой памяти
                   mvi E,55      ;01010101 в Е
                   lxi B, 02EF   ;счетчик
while:         mov A,E       ;с чем будем сравнивать
                   sub M           ;вычитаем
                   jnz bad         ;если не ноль, то тест не прошел
                   inx H             ;переход к след ячейке
                   mov A,E          ;функция сдвига
                   rlc
                   mov E,A
                   dcr C             ;декремент счетчика
                   jnz while        ;если не ноль, то цикл продолжаем
                  dcr B              ;декремент старшего байта
                  jnz while         ;если не ноль, то продолжаем
                  jmp good       ;иначе тест завершился положительно
                   
bad:         mvi A,FF       ;вывод, если тест не прошел
                 out 05
                 hlt
good:       mvi A, 01       ;вывод если прошел
                 out 05
                 hlt
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2011, 21:04

Ускорить xchg c памятью. Вопрос на засыпку по оптимизации!
Как известно, инструкция xchg, оперирующая с памятью, занимается нехорошим...

Нужна книга, где рассматриваются работа с прерываниями, указатели, работа с памятью, ассемблерные вставки
Привет всем! Подскажите, пожалуйста, хорошую книгу по C (именно C, не C++)....

Работа с памятью
в Windows есть команды работы с памятью HeapAlloc HeapReAlloc HeapSize HeapFree...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru