Heresy #02
13 августа 1999

Кoдиm нa ПЦ: Урoк втoрoй - Втoрoй yрoк: Зaгрyзкa фaйлa.

<b>Кoдиm нa ПЦ: Урoк втoрoй</b> - Втoрoй yрoк: Зaгрyзкa фaйлa.
                                                                
####################  ####################                      
#########  ########## #########        ###                      
#########   ######### ########                                  
#########   ######### #######     ######  #####   #######       
#########  ########## #######     ######  ######        #       
#################### ########          # #######        #       
#########           ##########                                  
#########            ##########        ###                      
######### a$h         ####################                      
                                                                
(c) Demiurge Ash                                                
                                                                
    Второй урок: загрузка файла.                                
    Пояснения сразу даются по тексту исходника.                 
                                                                
;------------------------------------                           
   .MODEL tiny                                                  
   .CODE                                                        
        ORG 256                                                 
start:                                                          
;------подготовка------                                         
   mov si,80h          ;берем адрес коммандной строки (КС)      
   push si             ;запоминаем                              
   lodsw               ;перекидываем из КС в регистр ax         
                       ;кол-во символов и, заодно, пропускаем   
                       ;первый пробел                           
   xor cx,cx           ;обнуляем регистр                        
   or cl,al            ;если кол-во символов в КС равно нулю,   
   je error            ;то переходим на ошибку синтаксиса КС    
space:                                                          
   lodsb               ;символ из КС в регистр ax               
   cmp al,20h          ;проверка на пробел                      
   je space            ;если да то пропускаем                   
   dec si              ;уменьшаем значение и                    
   mov dx,si           ;запоминаем адрес КС в регистре dx       
   pop si              ;вспоминаем первоначальный адрес КС      
   add si,cx           ;прибавляем к нему длину всей КС         
   inc si              ;переход на конец строки                 
   mov byte ptr [si],0 ;зaнyляem конец строки                   
;----открытие файла----                                         
   mov ax,ЗdOOh        ;подготовка вызова функции DOS           
                       ;для открытия файла (только чтение)      
   int 21h             ;вызов функции                           
   jb no_file          ;если такого файла нет, то переходим на  
                       ;ошибку открытия файла                   
;-----загрузка файла---                                         
   mov bx,ax           ;в bx номер полученного дескриптора      
   mov dx,offset buff  ;адрес буфера загрузки файла             
   mov ah,Зfh          ;номер функции                           
   mov cx,8000h        ;задаем максимальный размер буфера       
                       ;загрузки (файл можно грузить частями)   
   int 21h             ;вызов функции                           
   jb no_file          ;если файл не найден, то переходим на    
                       ;ошибку открытия файла                   
; файл загружен,                                                
; делайте c ним что хотите ;-)                                  
                                                                
   jmp exit            ;на выход                                
;----печать сообщений--                                         
no_file:                                                        
   mov dx,offset Mess2 ;адрес первого сообщения                 
   jmp print                                                    
                                                                
error:                                                          
   mov dx,offset Mess1 ;адрес второго сообщения                 
print:                                                          
   mov ah,9                                                     
   int 21h             ;печать сообщений                        
;----ВЫХОД-------------                                         
exit:                                                           
   mov ah,Чch                                                   
   int 21h             ;выход в DOS                             
;----------------------                                         
Mess1  db 'Command line syntax: SECOND filename.',13,10,'$'     
Mess2  db 'File not found',13,10,'$'                            
buff   db 8000h (?)                                             
                                                                
end start                                                       
;------------------------------------                           
                                                                
    Все это набивается в любом редакторе (очень удобен для этого
встроеный  в Dos Navigator), затем списывается на диск, в файл c
расширением, к примеру, second.asm                              
    Теперь,  если  y  вас  есть  ассемблер,  можно откомпилить в
com-файл. Через коммандную строку задаем:                       
    tasmx /m2 second.asm                                        
и получаем объектный файл second.obj, линкyem его в .com:       
    tlink /t /x second.obj                                      
и лицезреем новый файл second.com - запускайте!                 
                                                                
;------------------------------------                           
    Thanks 4 advices 2 Pyrodex and Dark Lion.                   



Другие статьи номера:

Sketches among the Ruins of my Mind - Привeтcтвyю тeбя coбрaт c пoвeрнyтыmи moзгamи. Кaк этo нe yдивитeльнo, нo этo yжe втoрoй нomeр moeй Eрecи.

Апoлoгия Пeccиmизma - Ecть ли жизнь пocлe cmeрти? Стoит ли oтдaтьcя лeгкиm рyкam гocпoжи Сmeрти? Oбрeтy ли я вeчнoe ycпoкoeниe? Прeкрaтятьcя ли эти бecкoнeчныe тeрзaния ceрдцa и yma?

Кoдиm нa ПЦ: Урoк втoрoй - Втoрoй yрoк: Зaгрyзкa фaйлa.

Пeрвыe рyлeзы нoвoй пaти Дзeржинcкa - 21-22 aвгycтa 1999 гoдa в гoрoдe Дзeржинcкe бyдeт прoвoдитьcя party, цeликom и пoлнocтью пocвящeннoe лyчшemy в mирe кomпьютeрy, a иmeннo ZХ-Spectrum.

Кaк дoбрaтьcя дo пaти Дзeржинcкa - Party бyдeт прoвoдитьcя в пomeщeнии Дзeржинcкoгo Пeдaгoгичecкoгo Кoллeджa (aктoвый зaл, 250 кв. m.)...

Квинтэcceнция Любви - Пoдлиннaя любoвь, кaк извecтнo бeзжaлocтнa...

Com Dehrumer 1.0 - Нeбoльшaя иcтoрия coздaния COM DEНRUMERa...

Этюд Succubus - Этo нe рaccкaз и нe нoвeллa. Этo ЭТЮД. Снaчaлo рoдилocь Нacтрoeниe, пocтeпeннo пeрeтeкшee в Чyвcтвo. Зaтem в рyкaх oчyтилcя кaрaндaш и чиcтый лиcт - Чyвcтвo oбрeлo Фoрmy.

Кaк cдeлaть RPG - Poлeвыe игры - в них aкцeнт дeлaeтcя нa пeрcoнификaцию глaвнoгo кomпьютeрнoгo гeрoя, нa oтoждecтвлeниe eгo c чeлoвeкom-игрoкom...

Пoд знaкom Свacтики - Нa нaпиcaниe cтaтьи нa этy тemy meня пoдтoлкнyл Unbeliever и, пo cпрaвeдливocти, читaть этo вы дoлжны в eгo Born Dead'e.

Кeвин Mитник: Хaкeр-лeгeндa - Кoгдa я зaдymaл нaпиcaть жизнeoпиcaниe Mитникa и cтaл coбирaть maтeриaлы, я cтoлкнyлcя c oбычнoй прoблemoй любoгo иcтoрикa: иcтoчники прoтивoрeчaт дрyг дрyгy...

SP0RАW Storyz - Вeчepeлo, кoгдa я yжe пoдoшeл к пpизemиcтomy здaнию бeз oкoн...

Музыка - Pink Floyd: mир aльбoma "Стeнa".

Прилoжeниe - Presentation, WanТeD...


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
От авторов - Управление.
Hard & soft - безглючная схема подключения музыкального сопроцессора AY-8910.
Твоя игра - редакция газеты "Абзац" и Perspective gruop объявляют конкурс компьютерных игр на ZX-Spectrum.

В этот день...   6 августа