akaGM
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kolbaser_Mx блин, читать надо было внимательнее: Цитата: может быть ты просто .com формат не можешь сделать...? | или это тебе ничего не сказало? а с комментариями -- нет уж, парень, извини, -- один тебе код написал, другой откомментировал, а ты это сдавать/продавать будешь? асм не такая штука, чтоб его в ботаническом институте учили, так что давай, учи... правда, один коммент посоветовать могу в первых двух строчках напиши: Код: ; Kolbaser_Mx ; (C) 2008, All rights reserved | --- ладно, это почти что шутка... общая идея проги такая: размер памяти получаем чтением из порта cmos 71 (70 -- его адресный порт), используя адресные регистры (коды функций) 15-16 и 17-18 (emm) Код: mov al,015h ; #регистра 15 -- base mem out 070h,al ; засылаем код в адресный порт cmos in al,071h ; читаем из cmos-порта, al=младший байт обычной памяти mov bl,al ; сохраняем mov al,016h ; #регистра 16 out 070h,al in al,071h ; al=старший байт обычной памяти | тоже самое и для функций 17-18 (получение extended памяти, сам их в коде найди) потом в блоках типа Код: mov ax,bx mov bx,10 xor di,di l1: xor dx,dx div bx add dl,030h ; <-- здесь лучше напиши add dl, '0' для понятности dec di mov buf_end[di],dl cmp ax,00h jnz l1 lea dx,buf_end[di] | переводим полученные байты (размера) в печатабельную символьную строку и готовим её выдачу на экран посредством вызова 9-ой функции 21-ого дос-прерывания: Код: mov ah,9 mov dx,offset pr int 21h | сам где-нить посмотри аргументы 9ой 21-ого хотя, можно было проще всё сделать, т.к. все эти данные из cmos'a копируются при посте в bios data area 0040:хххх | Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 14:26 27-10-2008 | Исправлено: akaGM, 23:07 27-10-2008 |
|