Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly: asm syötteen luku ja kirjoitus

Mazuli [04.08.2005 14:14:35]

#

juu eli olen tässä yrittänyt väsätä tälläistä pientä ohjelmaa joka lukee käyttäjälät kymmenen merkkiä ja tulostaa ne samaan aikaan ruudulle. jostain syystä ohjelma tulostaa vikan merkin kaksi kertaa, eli mikä vikana?? niin ja täs koodi ja assembleri on nasm

[org 100h]

	mov	cx,10

lukuLoop:

	mov	ah,0
	int 	16h

	call	tulostaMerkki

	loop lukuLoop

tulostaMerkki:

	mov 	ah,0Eh
	int 	10h

	ret

Megant92 [04.08.2005 15:01:35]

#

Tulostaa ne samaan aikaan?
Siis kun on kymmenen merkkiä luettu vai joka merkin jälkeen?

    mov    cx,10

lukuLoop:

    mov    ah,01H
    int     21h



    loop lukuLoop

Tommostako meinasit?
Kuitenkin, sun oma koodi korjattuna.

[org 100h]

    mov    cx,10

lukuLoop:

    mov    ah,0
    int     16h

    call    tulostaMerkki

    loop lukuLoop
    jmp loppu

tulostaMerkki:

    mov     ah,0Eh
    int     10h

    ret
loppu:

Antti Laaksonen [05.08.2005 12:32:49]

#

Keskeytyksen 21h toiminto 1 on kuin ohjelmaasi luotu. Se nimittäin lukee yhden merkin näppäimistöltä ja tulostaa sen saman tien. Luettu merkki tulee al-rekisteriin.

        mov cx, 10
        mov ah, 1
luku:   int 21h
        loop luku

Ja alkuperäisen ohjelman vika taisi olla siinä, että silmukan jälkeen mennään vielä kerran tulostaMerkki-osaan.

muokkaus: Tulipa toistettua Megant92:n viesti. :)

Mazuli [05.08.2005 13:13:53]

#

jaa kiitoksia vastauksista nyt toimii

Mazuli [05.08.2005 14:19:34]

#

tuli uusi ongelma eli luin erästä opasta ja nyt yritän saada koodin tallentamaan luetun tekstin muuttujaan mutta nasmi valittaa, että lue.asm:3 warning: uninitialised space declared in .text section: zeroing eli mikä vikana, ai niin ja koodi:

[org 100h]

viesti	resb	10

mov	dx,viesti
mov	ah,0ah
int	21h

mov	ax,4c00h
int	21h

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta