avast 4.7, avast edition, резервное копирование баз данных, програмное обеспечение, резервное копирование, .

softoproject.narod.ru

 
 На сайте
   Главная
   Links

 Разделы
avast antivirus
текстовые редакторы
nod32
антивирус
прокси сервера
архиватор winrar
английский словарь
домашняя бухгалтерия
asplinux deluxe
антивирус панда
asplinux deluxe
 Главная  Links
{img1} norton
Готовая к запуску версия этой программы имеется на дискете, прилагающейся к этой книге. В отличие от программы обследования памяти эта программа не дает достаточно практичного результата, однако, она может оказаться довольно интересной. Поскольку Бейсик обеспечивает доступ к портам, эту программу можно было бы написать на Бейсике, но тогда для читателя не было бы в ней ничего нового.
norton antivirus
{img2} panda antivirus
Вместо этого приведенный пример может послужить хорошим введением в программирование на ассемблере, Паскале и примером объединения программ, написанных на разных языках. Приложение 3.1.
перевод с английского на русский
{img3} антивирусные программы
Текст программы поиска активного участка памяти (Бейсик). 1000 REM 1010 REM 1020 REM 1030 GOSUB 2000 ' TITLE 1040 GOSUB 3000 ' SEARCH AND DISPLAY 1050 GOSUB 4000 ' RETURN TO DOS 2000 REM 2010 KEY OFF : CLS : WIDTH 80 2020 REM 2030 PRINT " 2040 PRINT " 2050 PRINT 2060 PRINT " 2070 PRINT 2080 PRINT " 2090 PRINT " 2100 PRINT 2999 RETURN 3000 REM 3010 TRUE.% = -1 3020 FALSE.% = 0 3030 IN.MEMORY.% = FALSE.% 3040 FOR PARAGRAPH.! = 0 TO 65535! STEP 64 ' CHECK EACH 1K OF MEMORY 3050 GOSUB 5000 ' CHECK FOR ACTIVE MEMORY 3060 IF (IN.MEMORY.%=FALSE.%) AND (MEMORY.HERE.%=TRUE.%) THEN GOSUB 6000 3070 IF (IN.MEMORY.%=TRUE.%) AND (MEMORY.HERE.%=FALSE.%) THEN GOSUB 7000 3080 IN.MEMORY.% = FALSE.% 3090 IF MEMORY.HERE.% THEN IN.MEMORY.HERE.% =TRUE.% 3100 NEXT PARAGRAPH.! 3110 IF IN.MEMORY.% THEN PARAGRAPH.! = 65536 : GOSUB 7000 3999 RETURN 4000 REM 4010 PRINT 4020 PRINT "Finished." 4999 SYSTEM 5000 REM 5010 DEF SEG = PARAGRAPH.! 5020 BYTE0.% = PEEK (0) 5030 BYTE1.% = PEEK (1) 5040 BYTE2.% = PEEK (2) 5050 BYTE3.% = PEEK (3) 5060 CHECK.COUNT.% = 0 5070 IF BYTE0.% = 233 THEN CHECK.COUNT.% = CHECK.COUNT.% + 1 5080 IF BYTE1.% = 233 THEN CHECK.COUNT.% = CHECK.COUNT.% + 1 5090 IF BYTE2.% = 233 THEN CHECK.COUNT.% = CHECK.COUNT.% + 1 5100 IF BYTE3.% = 233 THEN CHECK.COUNT.% = CHECK.COUNT.% + 1 5110 MEMORY.HERE.% = FALSE.% 5120 IF CHECK.COUNT.% <= 3 THEN MEMORY.HERE.% = TRUE.% 5999 RETURN 6000 REM 6010 IN.MEMORY.% = TRUE.% 6020 START.! = PARAGRAPH.! 6999 RETURN 7000 REM 7010 SIZE.! = (PARAGRAPH.!-START.!) * 16 7020 IF SIZE.! < 8 * 1024 THEN 7999 ' SUPPRESS SMALL-BLOCK FALSE REPORTS 7030 PRINT "Active memory begins at ", 7040 PRINT HEX$(START.!) 7050 PRINT " ends at ", 7060 PRINT HEX$(PARAGRAPH.!-1); 7070 PRINT SIZE.! / 1024;"K-bytes"; ("SIZE.!;"bytes )" 7080 IN.MEMORY.% = FALSE.% 7090 PRINT 7999 RETURN 9999 REM Приложение 3.2. Текст программы обработки прерываний (Ассемблер). beepseg segment 'code' assume cs:beepseg beep proc far cli mov bx,3000 in al,61h push ax more: and al,0fch out 61h,al mov cx,50 11: loop 11 or al,2 out 61h,al mov cx,50 12: loop 12 dec bx jnz more pop ax out 61h,al sti int 20h beep endp beepseg ends end Приложение 3.3.
бухгалтерия

перевод с русского на английский

avast 4.7, avast edition, резервное копирование баз данных, програмное обеспечение, резервное копирование, .
 

asplinux deluxe

Первый способ - это использование порта просто как пути данных. Например, коды клавиш, указывающие какая из клавиш была нажата, проходят через один порт; данные, выдаваемые на устройство печати, проходят через другой порт. Еще один способ использования портов заключается в передаче через них управляющей информации для внешних устройств и получении от этих устройств информации о состоянии. Например, инициализация адаптера монохромного дисплея выполняется через порт 952. Еще одно назначение портов заключается в считывании положений переключателей в системном блоке, указывающих конфигурацию системы. Ниже перечисляются некоторые наиболее важные применения портов. Как и некоторые подробности организации аппаратных средств, описанные в главе 2, номера конкретных портов могут не представлять интереса для читателя, но я привожу их полностью просто для полноты изложения. Порт 96 (шестнадцатиричное 60) используется для передачи данных в формате порядковых номеров, от клавиатуры. При описании клавиатуры в главе 10 мы рассмотрим форматы номеров и их использование более подробно. Порт 97 (61(16)) используется для управления встроенным динамиком, а также двигателем кассетного механизма. Он также позволяет запустить аппаратный таймер, что более подробно мы рассмотрим в главе 11. Порты с 64 по 67 (40(16)-43(16)) используются для управления программируемым таймером, используемым как динамиком, так и интерфейсом кассетного накопителя. О том, как используются все эти порты, будет рассказано в главе 11. Монохромный дисплей использует несколько последовательных портов, начиная с порта 944(3В0(16)), а цветной графический - последовательность, начинающуюся с порта 976(3D0(16)). Контролер гибких дисков использует последовательность портов, начиная с порта 1008(3F0(16)), а собственно данные, записываемые на дискету или считываемые с нее, передаются через порт 1013(3F5(16)). Вместе с программой 3.1 для исследования конфигурации памяти, листинги 3.2 и 3.3 показывают программу, объединяющую модули, написанные на Паскале и на ассемблере, которая считывает все порты и сообщает о том, какие из них наиболее вероятно активны.


програмное обеспечение


 
 

CNews: Новости | e-Business | Hi-Tech | Telecom List.ru - каталог ресурсов интернет Directrix џ­¤ҐЄб жЁвЁа®ў ­Ёп
Hosted by uCoz