Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevok: 1 ] 
AutorSpráva
Offline

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

Registrovaný: 15.03.10
Prihlásený: 18.04.10
Príspevky: 3
Témy: 3
Príspevok NapísalOffline : 18.04.2010 20:15

caute, potreboval by som pomôcť so zadanim. neako mi to nejde vie to niekto upraviť.. :D pls

Text zadania:

Načítajte zo súboru reťazec znakov ukončený znakom "konca súboru". Nech tento reťazec predstavuje celé číslo v desiatkovej sústave. Preveďte toto číslo do šestnástkovej sústavy a vytlačte výsledok.

TITLE prevod.asm
.MODEL SMALL
.STACK 400
.DATA
lf DB 13
cr DB 10
output1 DB 'Zadane cislo je $'
output2 DB ' v sestnastkovej sustave.',13,10,'$'
char DB 0
kelosoli DB 0,0
tabulka DB '0123456789ABCDEF'
.CODE


newline MACRO ;makro noveho riadku
push ax
push dx
mov ah,02h
mov dl,CR
int 21h
mov dl,LF
int 21h
pop dx
pop ax
ENDM

ukaz16kovo PROC ;procedura na zobrazenie cisla v decimalnom kode parametrom je cislo ulozene v bufferi
push bp ;ulozenie ukazovatela na aktualnu poziciu zasobnika
mov bp,sp
push ax ;na zaciatku procedury ulozime do zasobnika stare obsahy registrov
push bx
push cx
push dx

mov ah,02h
mov dl,'0'
int 21h
mov dl,'.' ;kedze ide o desatinne cislo tak najprv napisat 0.
int 21h

mov cx,00h
mov dh,00h ;pripravenie parametrov
mov bx,0000h
mov ax,[bp+4] ;nacitanie zo zasobnika cislo na zobrazenie

nocheinmal:

mov cx,16
mov dx,0000h
mul cx ;nasobenie sestnastkou
add dl,48 ;pripocitanie ASCII nuly
push ax
mov ah,02h ;vypis danej cislice v dl na obrazovku
int 21h
pop ax
cmp ax,00h
jnz nocheinmal

pop dx
pop cx ;vratenie povodnych obsahov registrov
pop bx
pop ax
pop bp

ret 2

ukaz16kovo ENDP

getc PROC NEAR ;procedura na nacitanie znaku z klavesnice
push bp ;parametrom procedury je offset buffera na ulozenie znaku
mov bp,sp
push ax ;na zaciatku procedury ulozime do zasobnika stare obsahy registrov
push bx

mov bx,[bp+4] ;nacitanie z zasobnika offset buffera na ulozenie znaku
mov ah,01h ;DOS funkcia na nacitanie znaku z klavesnice
int 21h ;volanie prerusenia
mov [bx],al ;ulozenie znaku do buffera
cmp al,lf ;porovnanie s koncom riadku

pop bx ;vratenie povodnych obsahov registrov
pop ax
pop bp

ret 2
getc ENDP


start:
mov ax,@DATA ;ulozenie datoveho segmentu
mov ds,ax ;do ds
mov dx,0000h
mov bx,OFFSET char ;pripravenie prametra procedury getc
mov ax,2000h

cyklus:
push bx ;sprostredkovanie parametra procedure getc cez zasobnik
call getc ;volanie nacitania znaku
jz navestie1 ;skoc na vypis

mov cx,[bx]
cmp cl,'.' ;porovnanie ci moze zacat nacitavat cislo lebo desatinne miesta idu od bodky
jz nastav

cmp dl,01h ;ci treba este nacitavat ci sa uz neprekrocila hranica poctu znakov
jz cyklus

cmp dh,01h ;nastavenie aby viac uz necitalo znaky
jnz cyklus

cmp cl,'0' ;kontrola intervalu cislic
js navestie1
cmp cl,'9'
jns navestie1

push ax
push bx
push dx
mov ch,00h
sub cl,30h
mul cx
mov bx,OFFSET kelosoli
mov cx,[bx]
add cx,ax ;pripocitanie vysledneho cisla
mov [bx],cx
pop dx
pop bx
pop ax
ror ax,3 ;rotacia o tri bity vpravo
cmp ax,4000h
jz nastavd
jmp cyklus ;skoc na nacitanie a testovanie noveho znaku

nastav:
mov dh,01h
jmp cyklus

nastavd:
mov dl,01h
jmp cyklus


navestie1: newline ;volanie makra newline t.j. novy riadok
mov ah,09h ;DOS funkcia zobrazenia retazca na obrazovku
mov dx,OFFSET output1 ;do dx dame offset zaciatku retazca
int 21h ;volanie prerusenia

mov bx,OFFSET kelosoli
mov ax, [bx] ;pripravenie prametra procedury ukaz16kovo
push ax ;sprostredkovanie parametra procedure cez zasobnik
call ukaz16kovo ;volanie zobrazenia cisla v hexa kode

mov ah,09h
mov dx,OFFSET output2
int 21h ;volanie prerusenia


definitiv:mov ax,4c00h ;koniec programu
int 21h ;volanie prerusenia
end start


Odpovedať na tému [ Príspevok: 1 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. c++ prevod z desiatkovej do dvojkovej sustavy

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

3

3875

11.03.2009 14:38

johny3212 Zobrazenie posledných príspevkov

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

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

3

603

21.04.2009 20:05

Fico Zobrazenie posledných príspevkov

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

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

2

607

27.03.2009 20:33

Ivan11114 Zobrazenie posledných príspevkov

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

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

11

1285

19.05.2010 22:38

JR55 Zobrazenie posledných príspevkov

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

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

5

718

26.04.2009 13:23

bbeni Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Assembler, procesor 8086, zistenie veľkosti súboru

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

0

347

15.03.2014 16:02

wink624 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Assembler 8086-porovnsvanie zo znakmy 1 slova

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

2

835

29.04.2010 22:04

baky Zobrazenie posledných príspevkov

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

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

1

2309

08.12.2007 10:41

jarda Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

6

561

07.06.2008 20:18

prandof Zobrazenie posledných príspevkov

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

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

0

250

24.04.2013 14:02

max18 Zobrazenie posledných príspevkov

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

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

0

707

01.04.2009 21:02

bbeni Zobrazenie posledných príspevkov

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

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

8

1720

13.03.2007 20:39

My-reC Zobrazenie posledných príspevkov

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

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

0

791

31.03.2009 20:10

bbeni Zobrazenie posledných príspevkov

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

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

1

1492

10.11.2006 18:14

Marco Zobrazenie posledných príspevkov

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

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

1

507

16.04.2013 22:34

XOLOO Zobrazenie posledných príspevkov

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

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

5

1156

17.10.2009 17:13

Logik 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