|
Geçen sene finale çalışırken yazdığım bir kod.
2000-3000 arasına 2 tane “makul” kelimesi yerleştiriyoruz. 1 tane de “makwl” koyuyoruz.
Sonuçta 4000′de 2 sayısı olacak.
Ekleme: 4001′den itibaren de bulunan kelimelerin yerlerini kaydediyoruz. Yani 4001′de ilk “makul”ün adresinin Low kısmı 07 olacak ve 4002′de 20 olacak.
(kodlar tamamen doğrudur, emulater’da denenmiştir, çalışmaktadır.)
#make_COM#
; COM file is loaded at CS:0100h
ORG 100h
mov al,'M'
mov bx,2000h
mov [bx],al
mov al,'A'
mov bx,2001h
mov [bx],al
mov al,'K'
mov bx,2002h
mov [bx],al
mov al,'w'
mov bx,2003h
mov [bx],al
mov al,'L'
mov bx,2004h
mov [bx],al
mov al,'M'
mov bx,2007h
mov [bx],al
mov al,'A'
mov bx,2008h
mov [bx],al
mov al,'K'
mov bx,2009h
mov [bx],al
mov al,'U'
mov bx,200ah
mov [bx],al
mov al,'L'
mov bx,200bh
mov [bx],al
mov al,'M'
mov bx,2110h
mov [bx],al
mov al,'A'
mov bx,2111h
mov [bx],al
mov al,'K'
mov bx,2112h
mov [bx],al
mov al,'U'
mov bx,2113h
mov [bx],al
mov al,'L'
mov bx,2114h
mov [bx],al
mov [4000h],00h
mov di,2000h
mov cx,1000h
bastan: mov al,'M'
repne scasb
cmp cx,00h
jz bitir
mov bl,[di]
cmp bl,’A’
jnz bastan
mov bl,[di+1]
cmp bl,’K’
jnz bastan
mov bl,[di+2]
cmp bl,’U’
jnz bastan
mov bl,[di+3]
cmp bl,’L’
jnz bastan
mov bl,[4000h]
inc bl
mov [4000h],bl
mov al,bl
mov dl,2
mul dl
mov bx,ax
dec bx
mov dx,di
dec dx
mov [bx+4000h],dx
loop bastan
bitir:
hlt
|
3 Ocak, 2008 saat 23:31
çok teşekkürler sorular için…
26 Mayıs, 2008 saat 12:15
Bilader ekranda bir şey yok. emu da çalışmıyor !
26 Mayıs, 2008 saat 12:53
Bilader ben benu emulatorde yazdım, çalışıyor. ekrana birşey yazmayacak zaten.
sonuçları bellekten göreceksin.
4000′de kelime sayısı, sonra da adresleri olacak.
en üstte demişim ki;
Sonuçta 4000′de 2 sayısı olacak.
4001′den itibaren de bulunan kelimelerin yerlerini kaydediyoruz. Yani 4001′de ilk “makul”ün adresinin Low kısmı 07 olacak ve 4002′de 20 olacak.