Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197

Определить весь объем CMOS памяти, установленной на машине

08.06.2015, 14:48. Показов 2325. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. При написании редактора CMOS памяти столкнулся с проблемой - не нашел как узнать реальный обьем CMOS памяти. Во всех источниках ни один байт не соответствует его обьему. Может кто-нибудь знает как ее узнать ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2015, 14:48
Ответы с готовыми решениями:

Определить весь объем CMOS памяти, установленной на машине
Друзья! Помогите написать программу, которая определит весь объем CMOS памяти, установленной на машине. Просто пишу курсач, чтение и...

Нужно увеличить объем памяти. Какую память поставить, что-бы она была совместима с уже установленной?
У меня стоит память Kingston две планки по 2 ГБ (DIMM 1600, в скриншоте параметры из CPU-Z). Я бы хотел добавить еще одну планку 8 гб....

Отображается не весь объем на карте памяти
Купил карту памяти на 64 гб, заполнил 20 и пишет что нет свободного места. Хотя телефон видит, что там еще 20+ свободно. Как исправить?

9
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
08.06.2015, 15:04
Для адресации к CMOS используются биты 6..0 порта 70h
Т.е. в CMOS максимум 128 ячеек размером в байт.
Если в реальной микросхеме ячеек 64, то чтение ячеек 40h..7Fh повторит чтение ячеек 0..3Fh
(кроме тех ячеек, что изменятся за время между двумя прочтениями).
Это из-за того, что в этом случае бит 6 порта 70h тупо не используется.

Вроде бы так.
1
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197
08.06.2015, 15:06  [ТС]
Ethereal, То есть как я понял всего обьем cmos памяти 128 байт ? И можно ли это узнать программно ?
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
08.06.2015, 15:17
Лучший ответ Сообщение было отмечено mracobes9 как решение

Решение

Например, если такая COM-программа выводит звездочки раз в секунду,
то CMOS 64 байта. Если нет, то 128. Программа завершается нажатием
любой клавиши.
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
    Model   Tiny
    .386
    .Code
    Org 100h
 
Start:  mov al, 40h
    out 70h, al
    in  al, 71h
    mov ah, al
@:  mov al, 40h
    out 70h, al
    in  al, 71h
    cmp al, ah
    je  @
    mov ax, 0E00h+'*'
    int 10h
    mov ah, 1
    int 16h
    jz  Start
    mov ah, 0
    int 16h
    ret
 
    End Start
У меня на компе 64 байта CMOS. Компьютеры со 128 байтами CMOS
мучить не приходилось. Говорят, что были компы с 2К CMOS.
Тоже мучить не довелось. Да и доступ к 2К должен быть какой-то
совсем другой.
2
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197
08.06.2015, 15:18  [ТС]
Ethereal, спасибо
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
08.06.2015, 15:20
Цитата Сообщение от mracobes9 Посмотреть сообщение
То есть как я понял всего обьем cmos памяти 128 байт ?
С доступом по (записал адрес в порт 70h, записал/прочитал значение из 71h) могут быть
или cmos 64 байта или cmos 128 байт.

Добавлено через 30 секунд
Цитата Сообщение от mracobes9 Посмотреть сообщение
И можно ли это узнать программно ?
Тут надо подумать над удачным алгоритмом. Но можно конечно.
1
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197
08.06.2015, 15:23  [ТС]
Ethereal, кстати звездочки появляются раз в секунду. Вот только как бы теперь это в своем редакторе реализовать ?
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
08.06.2015, 15:52
Затупил. Вот так правильнее будет :
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
    Model   Tiny
    .Code
    Org 100h
 
Start:  mov al, 40h
    out 70h, al
    in  al, 71h
    mov bl, al
@:  mov ah, 1
    int 16h
    jz  @@
    mov ah, 0
    int 16h
    ret
@@: mov al, 40h
    out 70h, al
    in  al, 71h
    cmp al, bl
    je  @
    mov ax, 0E00h+'*'
    int 10h
    jmp Start
 
    End Start
Добавлено через 52 секунды
Цитата Сообщение от mracobes9 Посмотреть сообщение
Вот только как бы теперь это в своем редакторе реализовать ?
В редакторе надо делать по другому. Щас подумаю как.

Добавлено через 24 минуты
Не вполне строгий алгоритм, но ...
Просто считает сколько ячеек в областях 0..3Fh и 40h..7Fh совпадают.
Тут я нарисовал несколько заморочный алгоритм перебора ячеек, но что
вышло, то вышло. Люблю изящные заморочки. Он сравнивает ячейки
1 2 3 4 ... 3D 3E 3F 0
соответственно с ячейками
41 42 43 44 ... 7D 7E 7F 40
вот именно в таком порядке.
Потом у меня стоит вывод сосчитанного значения на экран.
При прогонах программы получается 63 ячейки совпадают, очень редко
(случилось один раз) 62.
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
    Model   Tiny
    .Code
    Org 100h
 
Start:
 
    xor bx, bx
@:  inc bl
    or  bl, 40h
    mov al, bl
    out 70h, al
    in  al, 71h
    mov ah, al
    and bl, not(40h)
    mov al, bl
    out 70h, al
    in  al, 71h
    cmp al, ah
    jne @@
    inc bh
@@: test    bl, bl
    jnz @
 
    mov al, bh      ;Число совпадений в BH
    aam
    or  ax, 3030h
    xchg    al, ah
    int 29h
    mov al, ah
    int 29h
    ret
 
    End Start
Можно задаться нестрогим критерием - если совпадают 3/4 ячеек
или более, то будем считать, что это 64-ячеечная CMOS. Если это
не так, то 128-ячеечная.
2
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197
08.06.2015, 15:54  [ТС]
Ethereal, спасибо
0
Эксперт .NET
 Аватар для Rius
13110 / 7671 / 1674
Регистрация: 25.05.2015
Сообщений: 23,383
Записей в блоге: 14
08.06.2015, 16:25
Они уже вроде и до 4 кБайт дошли в объёме. 128 байт это старая память на AT компах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2015, 16:25
Помогаю со студенческими работами здесь

Видно не весь объем оперативной памяти
Купил оперативную память установил на компьютер в Эвересте пишет 1500Мб доступно хотя вставил на 2 гига. Открыл диспечер задач там тоже...

Комп перестал видеть весь объем памяти RAM
После перезагрузки комп стал писать кучу BSOD (установлена win10 pro) разобрал почистил собрал ничего не изменилось но видел полностью 32GB...

Windows XP SP3 не видит весь объём оперативной памяти
Здравствуйте, ищу решение проблемы с оперативной памятью на Windows XP SP3, стоит 2 гб оперативы, биос их видит, а сама ось определяет на...

Жесткий диск Samsung, не доступен весь объём памяти.
В общем суть проблемы: Есть жесткий диск Samsung SP0822N , ёмкость (по умолчанию) 80,6 Гб/2мб кэш/7200 prm. Так вот, при подключении в...

Как использовать весь объем оперативной памяти в приложении на C++ Builder
Всем привет! В приложении, написанном на C++ Builder возникла необходимость использовать огромный объем памяти, при помощи объектов...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru