[ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.12.07
Prihlásený: 06.12.07
Príspevky: 2
Témy: 1 | 1
NapísalOffline : 06.12.2007 22:19 | Assembler HDD info - pomoc

Zdravím. Mám takú domácu úlohu pre Assembler - vyčítať informácie o disku. Je tam ale menší háčik (že som z toho idiot) a potreboval by som odbornú radu, keďže neviem ako upraviť dáta tak, aby boli zrozumitelné. Moja predstava je asi taká, že by to mohol byť jednoduchý program, ktorí len vypíše voľné miesto na disku. Alebo tak podobne. Všetko čo mám je zatiaľ asi toto:

.model tiny
.data
.code
org 100h
startupcode
MOV AH,36H ; Zisti info
MOV DL,3 ; Disk c:
INT 21H ; Volanie DOS
MUL CX
MUL BX
LOOP pis
pis:
mov ah,09h
int 21h
exitcode
end


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4 | 4
NapísalOffline : 07.12.2007 9:30 | Assembler HDD info - pomoc

Pokial mozem, pomozem. Ibaze:

- davate tu svoje zadania (to by az tak nevadilo... kazdy to robi), ale az vtedy, ked na dokoncenie mate tak cca 24-48 hodin; to sa ozaj neda stihnut
- nebavi ma pisat UPLNE HOTOVE programy, trochu skuste pouvazovat aj vy, alebo si aspon daco dorobit, alebo aspon zacat niecim.
- zbytocne Vam budem pisat program, ked si ho ani neprezriete; treba tam dat aj daco vlastne, nie len cakat na vysledok od druheho;

..... toto ale neplati vseobecne CEST VYNIMKAM, a ospravedlnujem sa aj laurylovi, ze som to napisal do jeho temy...

Kód:
.MODEL SMALL                   
.STACK 50H     
.data
                 
txt_info    DB 13,10,'Disk Info <C>: $'

txt_spc     DB 13,10,'sectors per cluster: $'
txt_noac    DB 13,10,'number of available clusters: $'
txt_nobps   DB 13,10,'number of bytes per sector: $'
txt_nocpd   DB 13,10,'number of clusters per drive: $'

txt_bpc     DB 13,10,13,10,'bytes per cluster: $'

spc   DW 0 ; AX = sectors per cluster
noac  DW 0 ; BX = number of available clusters
nobps DW 0 ; CX = number of bytes per sector
nocpd DW 0 ; DX = number of clusters per drive

txt_cislo   DB "..."
c_10000     DB '0' ;;; cislica desattisice
c_1000      DB '0' ;;; cislica tisice
c_100       DB '0' ;;; cislica stovky
c_10        DB '0' ;;; cislica desiatky
c_1         DB '0' ;;; cislica jednotky
            DB '$'

.CODE
org 100h
                 
START:
          mov ax,@data
          MOV DS,AX

          mov ah,09h
          lea dx,txt_info
          int 21h           ; zobrazi sa text: "Disk..."
         
          MOV AH,36H  ; Zisti info
          MOV DL,3    ; Disk c:
          INT 21H     ; Volanie Int21
                      ; AX = sectors per cluster
                      ; BX = number of available clusters
                      ; CX = number of bytes per sector
                      ; DX = number of clusters per drive
          mov spc, AX
          mov noac, BX
          mov nobps, CX
          mov nocpd, DX

;;; teraz vypisy:
          mov ah,09h
          lea dx,txt_spc
          int 21h           ; zobrazi sa text: "sectors per..."
          mov AX,spc            ;;; mame cislo, 4567 a chceme ho vypisat na obrazovku
                                ;;; takze treba z neho urobit znaky '0' '4' '5' '6' '7'
                                ;;; a vypisat ich
          call vypis_cisla    ;do AX sme vlozili cislo, co chceme vypisat
         
          mov ah,09h
          lea dx,txt_noac
          int 21h             ; zobrazi sa text: ...
          mov AX, noac
          call vypis_cisla    ; vypis cisla

          mov ah,09h
          lea dx,txt_nobps
          int 21h             ; zobrazi sa text: ...
          mov AX, nobps
          call vypis_cisla    ; vypis cisla

          mov ah,09h
          lea dx,txt_nocpd
          int 21h             ; zobrazi sa text: ...
          mov AX, nocpd
          call vypis_cisla    ; vypis cisla
         
; bytes per cluster = nobps * spc
          mov ah,09h
          lea dx,txt_bpc
          int 21h             ; zobrazi sa text: ...
         
          XOR DX,DX           ; DX <--- 0
          MOV AX, nobps
          mov BX, spc
          MUL BX              ; AX * BX ---> (DX:AX)
         
          call vypis_cisla    ; vypis cisla (pozor, ale iba AX,
                              ;       cize vacsie cisla nez 65536 to nevypise!!!)
;;;         


          jmp koniec                               
                               
               
;;; podprogram pre vypisovanie cisla: 123 ako retazca ...00123                               
vypis_cisla:
          mov BL, '0'
          mov c_1, BL
          mov c_10, BL
          mov c_100, BL
          mov c_1000, BL
          mov c_10000, BL
pocitame:
          cmp AX, 0
          je  vypiseme_pocet
          dec AX
jednotky:
          inc c_1
          cmp c_1,'9'
          jle pocitame
          mov c_1,'0'
desiatky:
          inc c_10
          cmp c_10,'9'
          jle pocitame
          mov c_10,'0'
stovky:
          inc c_100
          cmp c_100,'9'
          jle pocitame
          mov c_100,'0'
tisicky:
          inc c_1000
          cmp c_1000,'9'
          jle pocitame
          mov c_1000,'0'
desattisicky:
          inc c_10000
          jmp pocitame
         
vypiseme_pocet:     
              lea dx,txt_cislo
              mov ah,09h
              int 21h           ;vypisanie cisla ako retazca '...04567'
         
          ret
             

       
koniec:                               
          MOV AX,4C00H
          INT 21H               ; koniec               
          END START


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.12.07
Prihlásený: 06.12.07
Príspevky: 2
Témy: 1 | 1
Napísal autor témyOffline : 07.12.2007 10:22 | Assembler HDD info - pomoc

sento čo mi zostáva iné ako poďakovať. Ono to fakt beží. Nemáš sa mi velľmi za čo ospravedlňovať, lebo v podstate si mal pravdu aj v mojom prípade. Aj ked saom sa čiatočne snažil niečo vypotiť. Ešte raz ďakujem.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4 | 4
NapísalOffline : 07.12.2007 11:17 | Assembler HDD info - pomoc

iny sposob na prevod cisla na retazec:
Kód:
;;; podprogram pre vypisovanie cisla: 123 ako retazca ...00123                               
vypis_cisla:
          MOV AX, AX
          XOR DX, DX
          MOV BX, 10000
          DIV BX
          ADD AL,'0'
          mov c_10000, AL
         
          mov AX, DX
          XOR DX, DX
          MOV BX, 1000
          DIV BX
          ADD AL,'0'
          mov c_1000, AL
         
          mov AX, DX
          XOR DX, DX
          MOV BX, 100
          DIV BX
          ADD AL,'0'
          mov c_100, AL
         
          mov AX, DX
          XOR DX, DX
          MOV BX, 10
          DIV BX
          ADD AL,'0'
          mov c_10, AL
         
          mov AX, DX
          XOR DX, DX
          MOV BX, 1
          DIV BX
          ADD AL,'0'
          mov c_1, AL
         
vypiseme_pocet:     
              lea dx,txt_cislo
              mov ah,09h
              int 21h           ;vypisanie cisla ako retazca '...04567'
         
          ret


 [ Príspevkov: 4 ] 


Assembler HDD info - pomoc



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

ASSEMBLER i8080 POMOC

v Assembler, C, C++, Pascal, Java

3

888

29.03.2009 13:12

bbeni

V tomto fóre nie sú ďalšie neprečítané témy.

ASSEMBLER POMOC(URGENTNE)

v Assembler, C, C++, Pascal, Java

0

441

13.04.2015 19:22

Matadot

V tomto fóre nie sú ďalšie neprečítané témy.

assembler pomoc s prevodom

v Assembler, C, C++, Pascal, Java

2

731

27.03.2010 19:10

blw90

V tomto fóre nie sú ďalšie neprečítané témy.

Assembler uloha - prosim pomoc

v Assembler, C, C++, Pascal, Java

2

873

28.05.2008 15:25

HT

V tomto fóre nie sú ďalšie neprečítané témy.

assembler uloha pomoc s prevodom...

v Assembler, C, C++, Pascal, Java

1

632

28.03.2009 17:39

bbeni

V tomto fóre nie sú ďalšie neprečítané témy.

HDD info

v Pevné disky a radiče

2

782

11.05.2009 0:25

andre10

V tomto fóre nie sú ďalšie neprečítané témy.

potrebujem mensiu info/pomoc ohladne phpbb a hyperlinkov

v Redakčné systémy

5

528

13.03.2007 22:59

matwej

V tomto fóre nie sú ďalšie neprečítané témy.

extreny HDD info..

v Ostatné zariadenia

3

465

28.03.2012 23:12

KocuR

V tomto fóre nie sú ďalšie neprečítané témy.

Windows 7 SP1 - obnova bitovej kópie HDD z DVD zálohy --info

v Operačné systémy Microsoft

0

525

07.12.2011 18:16

san01

V tomto fóre nie sú ďalšie neprečítané témy.

hdd pomoc

v Pevné disky a radiče

7

349

26.04.2023 8:03

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc s HDD

v Úložné zariadenia

19

1380

15.12.2008 15:40

Mike_BossO

V tomto fóre nie sú ďalšie neprečítané témy.

Formatovanie HDD pomoc ?

v Pevné disky a radiče

20

2274

04.04.2010 15:01

The Jackal

V tomto fóre nie sú ďalšie neprečítané témy.

POMOC! z HDD

v Operačné systémy Microsoft

1

313

21.02.2010 9:06

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

potrebujem pomoc hdd

v Pevné disky a radiče

7

896

28.04.2009 17:58

cadet345

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc ohladom HDD

v Pevné disky a radiče

9

551

28.12.2010 18:36

koviniak

V tomto fóre nie sú ďalšie neprečítané témy.

SATA HDD pomoc prosim

v Pevné disky a radiče

5

987

03.12.2006 19:01

misiak2222



© 2005 - 2024 PCforum, edited by JanoF