При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Информационный Канал Subscribe.Ru |
Выпуск № 187
от 16.07.2005, 15:51
Администратор: | Калашников О.А. |
В рассылке: | Подписчиков: 245, Экспертов: 14 |
В номере: | Вопросов: 2, Ответов: 8 |
Вопрос № 23.298 |
Очень часто из многих книг, авторы мимо ходом затрагивали такие термина, как CMOS и ПЗУ, до этого момента я думал, что CMOS - это и есть ПЗУ. Но в одной книге прямо сейчас читаю. Цитата: "в ПЗУ записать что - либо невозможно, а в CMOS - памяти свободного места для хранения вирус- ного кода никогда не хватит" Дак чем же отличается ПЗУ от CMOS и наоборот?. CMOS (Complementary Metal-Oxide Semiconductor). ПЗУ (Постоянное Запоминающее Устройство). |
Отправлен: 10.07.2005, 17:03 Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель) Всего ответов отправлено: 4 |
Отвечает: Евгений Иванов Здравствуйте, Терсков Алексей Николаевич! CMOS - применяется для хранения данных. их можно стирать. ПЗУ - нельзя стереть. (ну если только ультрафиолетовые). --------- Что имеем - не храним, потерявши - плачем |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 10.07.2005, 17:08 |
Отвечает: John Freeman Здравствуйте, Терсков Алексей Николаевич! CMOS это вообще не название чипа, это название структуры, а суть в том, что на основе CMOS сделали RAM с ОЧЕНЬ малым энергопотреблением, ну и размером соответствующим(изначально 16 байт и сейчас не сильно больше), вот этот RAM питается от батарейки годами и хранит настройки BIOS --------- You're trying to take me They trying to make me This is the only Gives me the only thing Tired of lying, I'm tired of lying The only thing I inderstand is what I feel... |
Ответ отправил: John Freeman (статус: Профессор) Отправлен: 10.07.2005, 21:49 |
Отвечает: Ayl Здравствуйте, Терсков Алексей Николаевич! ПЗУ (ROM, Read-only memory) - постоянное запоминающее устройство, допускается только чтение. CMOS - энергонезависимая память, предназначена для записи и сохранения важных параметров для работы компа. В ней хранятся настройки BIOS, которые можно просмотреть и изменить через BIOS Setup. Размер памяти CMOS - несколько десятков байт. В ПЗУ хранится программа POST и код для загрузки с дискового накопителя. Также хранятся все программы BIOS (кроме работы с видеокартой, Video BIOS маппируется на основную память прямо с карты). Область ПЗУ - с A0000 по FFFFF, причем адреса с A0000 по BFFFF отводятся для Video BIOS, С0000 - DFFFF - область для подключения дополнительной памяти (EMS), E0000 - FFFFF - собственно ПЗУ (стандартные обработчики прерываний, POST, IBM PC Identification Code, BIOS release date, etc). --------- Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени |
Ответ отправил: Ayl (статус: Профессор) Отправлен: 11.07.2005, 13:21 |
Отвечает: ASMодей Здравствуйте, Терсков Алексей Николаевич! Многие путают CMOS и ПЗУ (ROM). Еще вместо ПЗУ часто говорят BIOS. Но это все совсем разные типы памяти, а BIOS - это вообще не память :) 1. ПЗУ - это отдельная микросхема постоянной памяти (на материнской плате ее можно найти по голографической наклейке). Именно в ПЗУ хранится BIOS. Раньше ПЗУ можно было записывать специальными программаторами, предварительно очистив ее с помощью ультрафиолета, для чего в микросхеме было специальное окошко из кварцевого стекла. В современных компьютерах ПЗУ работает на так называемой Flash-памяти. Это значит, что ее можно стирать и перезаписывать специальными программами. 2. CMOS-память - это энергонезависимая память компьютера. Именно в ней хранятся все настройки BIOS'а, а также часы реального времени (RTC). Питается эта память от аккумулятора на материнской плате (потому и энергонезависимая). |
Ответ отправил: ASMодей (статус: Профессионал) Отправлен: 11.07.2005, 18:48 |
Вопрос № 23.303 |
Вопрос про массивы: Я задал массив в ассемблере: ... fibo dup(12) db ? ... Как получить доступ к конкретному элементу,например с индексом 4? Допусти в Паскале так: ... var fibo : array[1..12] of byte; write(fibo[3]); Для записи fibo[3] := 3; ... А в ассемблере можно? |
Отправлен: 10.07.2005, 18:10 Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель) Всего ответов отправлено: 4 |
Отвечает: Евгений Иванов Здравствуйте, Терсков Алексей Николаевич! mov bx, offset fibo mov si, 3 m1: mov al,[bx+si] inc si cmp si, maxelem jnz m1 применяя 32-бит, можно вот так (даже в реальном режиме, только обнули старшее слово!) fibo dd dup(12) ? mov ebx, offset fibo mov esi , 3 m1: mov eax, [ebx+esi*4] inc esi cmp esi, maxelem jnz m1 то есть, учитывается размер элемента. удачи! --------- Что имеем - не храним, потерявши - плачем |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 10.07.2005, 18:18 |
Отвечает: Master135 Здравствуйте, Терсков Алексей Николаевич! В процессоре 80386 для записи эффективного адреса можно использовать любой 32-битный регистр общего назначения как базовый, а также любой регистр общего назначения кроме ESP как индексный. Так же появилась возможность умножения индексного регистра на 2, 4 или 8, что облегчает работу с массивами данных и два дополнительных сегментных регистра – FS и GS. Поскольку в качестве базового и индексного регистра могут использоваться одни и те же регистры общего назначения, для определения сегмента по умолчанию важную роль играет порядок следования. Вначале идет базовый регистр, затем – индексный. При базовом регистре EBP или ESP сегмент по умолчанию – SS, во всех остальных случаях – DS. Таким образом к элементу массива можно обращатся например так при этом занести в ЕСХ номер элемента массива A[ECX] Вот еще несколько примеров: MOV BX, [ebx + ecx + 1] ; базовый регистр, индексный регистр и константа MOV DX, gs:[edi] ; только индексный регистр MOV SI, [eax + 2*eax] ; базовый регистр, индексный регистр и множитель Приложение: |
Ответ отправил: Master135 (статус: 6-ой класс) Отправлен: 10.07.2005, 20:47 |
Отвечает: Ayl Здравствуйте, Терсков Алексей Николаевич! Конечно, можно. Например, так: mov bx, OFFSET fibo ; начало массива mov al, 4 ; 5-й элемент массива (нумерация - с 0!) xlat ; AL = BX [AL] - в AL - соотвествующий элемент массива можно так: mov bx, OFFSET fibo mov al, [bx+4] или так: mov bx, 4 mov al, fibo [bx] или так (для просмотра всех элементов): mov si, OFFSET fibo mov cx, 12 @loop: lodsb ; AL = [SI]; SI = SI + 1 call Print_AL loop @@loop --------- Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени |
Ответ отправил: Ayl (статус: Профессор) Отправлен: 11.07.2005, 13:28 |
Отвечает: ASMодей Здравствуйте, Терсков Алексей Николаевич! Да почти так же, как и на паскале: mov al, fibo[3] |
Ответ отправил: ASMодей (статус: Профессионал) Отправлен: 11.07.2005, 18:51 |
Отправить вопрос экспертам этой рассылкиПриложение (если необходимо): Обратите внимание!
|
© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq |
Отписаться
Вспомнить пароль |
В избранное | ||