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
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:
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. :)
jaa kiitoksia vastauksista nyt toimii
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.