zdravim...mam program co porovna ci je pocet operatorov v retazci dvojnasovny ako pocet malych pismen
mam toto
.486
.MODEL small
.STACK 100h
.DATA
retazec DB 255, 0, 253 dup (24h)
male_znaky DB 0
operatory DB 0
vyhovujuce_slova DB 0
.CODE
start:
mov ax, @data
mov ds, ax
lea dx, retazec ; nacitanie retazca
mov ah, 0Ah
int 21h
lea bx, retazec
xor cx, cx
mov cl, [bx+1]
mov si, bx
add si, 2
main_loop:
cmp DWORD PTR [bx+si], 20h ; medzera = nove slovo
je kontrola
cmp DWORD PTR [bx+si], 61h ; kontrola, ci sa jedna o male pismeno
jl operator
cmp DWORD PTR [bx+si], 7Ah
jg operator
inc male_znaky
jmp dalsi_znak
operator:
cmp DWORD PTR [bx+si], 2Ah ; kontrola, ci sa jedna o operator
jl dalsi_znak
cmp DWORD PTR [bx+si], 2Fh
jg dalsi_znak
inc operatory
jmp dalsi_znak
kontrola: ; vyhovuje podmienka (operatory = 2 * male_znaky) ?
call skontroluj
dalsi_znak:
inc si
loop main_loop
call skontroluj
koniec:
mov ax, 4C00h
int 21h
skontroluj PROC
mov al, male_znaky
mov ah, 2
mul ah
cmp al, operatory
jne zmaz
inc vyhovujuce_slova
zmaz:
mov male_znaky, 0
mov operatory, 0
ret 0
skontroluj ENDP
END start
len teraz neviem ako doprogramovat aby to na zaciatku vypisalo "Zadajte retazec : " a potom "Pocet slov : " a vypisalo vyhovujuce slova...
a este pri prikaze tlink subor.obj mi vypiste chybu ze "Fatal: 32bit record encountered in modul subor.asm"
mozte prosim pomoct vyriesit tie dva problemy ?diks :)