| | |
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Autor | Správa |
---|
Registrovaný: 06.12.07 Prihlásený: 06.12.07 Príspevky: 2 Témy: 1 | Napísal lauryl: 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
|
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | Napísal sento: 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
|
|
Registrovaný: 06.12.07 Prihlásený: 06.12.07 Príspevky: 2 Témy: 1 | Napísal autor témy lauryl: 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.
|
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | Napísal sento: 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
|
|
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| ASSEMBLER i8080 POMOC v Assembler, C, C++, Pascal, Java | 3 | 857 | 29.03.2009 13:12 bbeni | | ASSEMBLER POMOC(URGENTNE) v Assembler, C, C++, Pascal, Java | 0 | 404 | 13.04.2015 19:22 Matadot | | assembler pomoc s prevodom v Assembler, C, C++, Pascal, Java | 2 | 698 | 27.03.2010 19:10 blw90 | | Assembler uloha - prosim pomoc v Assembler, C, C++, Pascal, Java | 2 | 841 | 28.05.2008 15:25 HT | | assembler uloha pomoc s prevodom... v Assembler, C, C++, Pascal, Java | 1 | 606 | 28.03.2009 17:39 bbeni | | HDD info v Pevné disky a radiče | 2 | 745 | 11.05.2009 0:25 andre10 | | potrebujem mensiu info/pomoc ohladne phpbb a hyperlinkov v Redakčné systémy | 5 | 490 | 13.03.2007 22:59 matwej | | extreny HDD info.. v Ostatné zariadenia | 3 | 425 | 28.03.2012 23:12 KocuR | | 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 | | hdd pomoc v Pevné disky a radiče | 7 | 307 | 26.04.2023 8:03 shiro | | Pomoc s HDD v Úložné zariadenia | 19 | 1325 | 15.12.2008 15:40 Mike_BossO | | Formatovanie HDD pomoc ? v Pevné disky a radiče | 20 | 2224 | 04.04.2010 15:01 The Jackal | | POMOC! z HDD v Operačné systémy Microsoft | 1 | 281 | 21.02.2010 9:06 majky358 | | potrebujem pomoc hdd v Pevné disky a radiče | 7 | 860 | 28.04.2009 17:58 cadet345 | | pomoc ohladom HDD v Pevné disky a radiče | 9 | 513 | 28.12.2010 18:36 koviniak | | pomoc pri vybere HDD v Pevné disky a radiče | 8 | 829 | 20.08.2006 0:40 Intelman |
| 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
|
|