Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Assembly: Pixelin piirto assemblyllä

Sivun loppuun

haxor [03.08.2002 19:03:19]

#

Elikkäs nyt piirretäänki sitte assemblyssä pixeli
QBasic käyttäjät voivat tehdä tästä qb libaryn

koodi on hyvin kommentoitu joten eipa sitten muutaku
koodia vaan..

[BITS 16]
[ORG 0x100]
[SECTION .text]

; Pixelin piirto 1.0
; Pistin sarakket, arvot ja rivit desimaalina
; jotta niita olisi helpompi käyttää
; kääntyy nasmilla

; --
mov ah,00h	; Vaihdetaan
mov al,13h	; grafiikkatilaan.
int 10h		; biossin keskeytys
; --

; Nyt piirretään pixeli... pixelin piirto on tapahtuu
; keskeytyksellä 10h

mov ah,0Ch	; 0Ch on biosin palvelu pixelin piirtoon
mov al,100	; al = pixelin arvo
mov cx,120 	; cx = mille sarakkeelle pixeli tulee
mov dx,120	; dx = mille riville pixeli tulee
int 10h		; biossin keskeytys
; --

; Nyt odotetaan että käyttäjä painaa jotain nappia

mov ah,08	; Dossin palvelu joka lukee merkin al rekisteriin
int 21h		; dossin keskeytys
; --

; Nyt vaihdetaan takaisin tekstitilaan

mov ah,00h	; vaihdetaan takaisin
mov al,03h	; tekstitilaan.
int 10h		; biossin keskeytys

; ja sitten lopettaan ohjelma:

mov ah,00h	; Käytän tässä "terminate program" palvelua siksi
int 21h		; emme tarvitse mitaan palautetta ERRORLEVELinä

end

haxor [04.08.2002 17:31:39]

#

Että tällänen sitte..

thefox [04.08.2002 21:42:07]

#

Pikselinpiirtoa ei missään nimessä kannata toteuttaa INT10:llä johtuen sen suunnattomasta hitaudesta (veikkaan että jos tuosta tekisi QLB:n olisi se hitaampi kuin QB:n alkup. pikselinpiirto).
Järkevämpää on piirtää pikseli suoraan näyttömuistiin (segmentti 0A000h).

HtH [04.08.2002 22:07:52]

#

Hidasta hidasta... suoraan muistiin movilla tai stosbilla, ni hyvin menee :)

haxor [04.08.2002 22:53:45]

#

Niin mutta toi onki versio 1.0 =)

cbob [04.08.2002 23:17:40]

#

assembly = ex-demoparty
assembler = rautaläheinen ohjelmointikieli

Jaakko [05.08.2002 14:29:43]

#

cbob, ei tiedettykää, kiitos uudesta tiedosta. me kotiis

thefox [05.08.2002 18:08:59]

#

cbob, tuo asia on punnittu noin miljoona kertaa eri henkilöiden toimesta ja sillä ei tosiaankaan ole mitään väliä sanotaanko sitä assemblyksi vai assembleriksi.
Yleinen mielipide (joka ei kuitenkaan pidä täysin paikkaansa, imo) on että assembler on kääntäjä ja assembly itse kieli.
Itse käytän useimmiten 'asm'-nimitystä koska silloin ei ainakaan kukaan tule valittamaan mitään ;>

Huoh [05.08.2002 18:38:41]

#

Periaatteessa tuo ei ole edes mikään mutu-kysymys. Assembly on symbolinen konekieli ja assembler on kääntäjä, joka kääntää symbolisen konekielen koneen ymmärtämään muotoon, eli ykkösiksi ja nolliksi.

HtH [05.08.2002 19:06:59]

#

tommenen pilkunnussinta pitäis kieltää lailla. sorry karkee kielenkäyttö
Joo, ja cbob, mitenniin ex-demoparty? Kyllähän ne vielä ensi vuonna tulee? ja sitä seuraavana, ja sitä seuraavana...

Pekkuli [06.08.2002 00:06:20]

#

No cbob meinasi, notta Assemblyt on nykyään pelkkä GUAGE-peelojen
tietokonekansan tietokonekokoontuminen.
Joskushan Assemblyt oli kunnon demoparty
ilman KUAQE porukkaa.

(nimetön) [06.08.2002 01:44:32]

#

ULIULIUL

Chride [06.08.2002 12:10:45]

#

No itse asiassa ne on CS peeloja nykyään ;)

Krisu [12.08.2002 10:13:26]

#

näinpä... ;)

(nimetön) [13.08.2002 14:14:59]

#

>assembly = ex-demoparty
>assembler = rautaläheinen ohjelmointikieli

Väärin, assembly = ohjelmointikieli
assembler = kääntäjä yo. ohjelmointikielelle

Kryil [09.10.2002 09:45:31]

#

Assembly on sana, joka tarkoittaa kokoontumista ym. Assembly-koodikieli on aivan eri asia kuin Assembly-messut.
Assembler taasen on sana, joka tarkoittaa kokoajaa (parempi suomennos voisi olla liittäjä :). Tietokoneterminä Assembler taasen tarkoittaa Assembly-koodin kääntäjää.

Ja Assembly-messuilla on kyllä aivan liikaa Guage versus Kauntterstraik meininkiä nykyään...
Jospa kaikki tekisivät ensi vuodelle kaikki compotyöt haukkuen ko. porukkaa? Ehkäpä tajuaisivat pysyä poissa seuraavalla kerralla? ;)

P.S. Ja jos kaikki CS-pelaajat ovat peeloja, mitä ovat ne, jotka CS-pelaajien mielestä ovat peeloja?

nnevatie [20.01.2003 19:00:51]

#

Ulkomuistista vähän nopeampi esimerkki (moodi 19):

mov ah,00h    ; Vaihdetaan
mov al,13h    ; grafiikkatilaan.
int 10h        ; biossin keskeytys

mov al,100    ; al = pixelin arvo
mov cx,120     ; cx = mille sarakkeelle pixeli tulee
mov di,120    ; di = mille riville pixeli tulee

mov bx, di
shl di, 8
shl bx, 6
add di, bx
add di, cx
mov es, 0a000h
mov es:[di], al

..tai jotain.


Sivun alkuun

Vastaus

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

Tietoa sivustosta