Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 06.12.2007 22:19

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
Príspevok NapísalOffline : 07.12.2007 9:30

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
Príspevok Napísal autor témyOffline : 07.12.2007 10:22

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
Príspevok NapísalOffline : 07.12.2007 11:17

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


Odpovedať na tému [ Príspevkov: 4 ] 


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

857

29.03.2009 13:12

bbeni Zobrazenie posledných príspevkov

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

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

0

404

13.04.2015 19:22

Matadot Zobrazenie posledných príspevkov

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

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

2

698

27.03.2010 19:10

blw90 Zobrazenie posledných príspevkov

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

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

2

841

28.05.2008 15:25

HT Zobrazenie posledných príspevkov

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

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

1

606

28.03.2009 17:39

bbeni Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

2

745

11.05.2009 0:25

andre10 Zobrazenie posledných príspevkov

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

490

13.03.2007 22:59

matwej Zobrazenie posledných príspevkov

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

v Ostatné zariadenia

3

425

28.03.2012 23:12

KocuR Zobrazenie posledných príspevkov

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

495

07.12.2011 18:16

san01 Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

7

307

26.04.2023 8:03

shiro Zobrazenie posledných príspevkov

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

v Úložné zariadenia

19

1325

15.12.2008 15:40

Mike_BossO Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

20

2224

04.04.2010 15:01

The Jackal Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

1

281

21.02.2010 9:06

majky358 Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

7

860

28.04.2009 17:58

cadet345 Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

9

513

28.12.2010 18:36

koviniak Zobrazenie posledných príspevkov

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

v Pevné disky a radiče

8

829

20.08.2006 0:40

Intelman Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra