Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: ASM-koodia QB:hen

Sivun loppuun

thefox [18.06.2002 10:25:56]

#

Tässä on nyt tällainen esimerkki että miten omat x86-assembly tuotokset voi assembloida ja linkata QB:tä varten QLB-kirjastoksi. Mukana todella yksinkertainen "kerro kahdella" funktio.
Alhaalta löytyy kolme tiedostoa:

- TESTI.ASM -- QLB-kirjaston ASM lähdekoodit
- MAKE.BAT -- Pieni BAT-komentojonotiedosto kääntämisprosessin helpottamiseksi
- ESIM.BAS -- Yksinkertainen QB-ohjelma joka kutsuu ASM-funktiota

Että tämä toimisi, pitää sinun ensinnäkin kopioida MAKE.BATia varten QB4.5:n hakemistosta LINK.EXE, LIB.EXE ja BQLB45.LIB. Lisäksi MASM:n pitää olla pathissa.
Kun ajat MAKE.BAT:n, luo se LEIM.QLB nimisen kirjaston. Muista ladata QB seuraavasti, jotta homma toimii:

QB.EXE /Lleim

Sitten vain lataat ESIM.BAS:in QB:hen ja nautit hienosta "kerro kahdella"-funktiosta.

testi.asm

.model medium, basic
.stack 10h
.386
option casemap :none

.code

; Testifunktio, palauttaa n * 2
AsmTest proc n:WORD
   mov   ax, n
   shl   ax, 1		; ax = ax * 2
   ret
AsmTest endp

end

esim.bas

DEFINT A-Z
DECLARE FUNCTION AsmTest% (BYVAL n AS INTEGER)

INPUT "Anna arvo: ", a
PRINT a; "* 2 ="; AsmTest(a)

make.bat

del leim.lib
ml /c testi.asm
lib leim.lib +testi;
link /q leim.lib,leim.qlb,nul,bqlb45.lib;

Antti Laaksonen [19.06.2002 22:23:20]

#

Hieno vinkki! Vähän piti soveltaa (QBasic 7.1:n kanssa), mutta lopulta kaikki toimi niin kuin pitää ja 10 tulostui. Sitten pitää enää opetella kunnolla itse assembly...:)

QBasic 7.1:n käyttäjille tiedoksi: bqlb45.lib on korvattava kirjastolla qbxqlb.lib

thefox [19.06.2002 22:26:25]

#

Kuuluuko tuon taustan olla sininen? Näyttää rumalta =)

thefox [19.06.2002 22:55:47]

#

Niin, ja QB4.5:lle käännetty QLB ei muitsaakseni toimi QB7.1:llä ja vice versa.

HtH [19.06.2002 23:14:36]

#

Tattista vaan, nytpä teenkin matopelini ehkä qbasicilla ;)

haxor [30.06.2002 02:14:33]

#

kiitos tasta mainiosta vinkista

Tatu Peltola [23.05.2003 20:25:08]

#

JOO KIITOS!!!!! QB tekeeki jotku asiat liian hitaasti, eli haluan asmia koodini, ja nythän se onnistuu :-)

moptim [20.01.2007 09:03:23]

#

Hyvä thefox!

gamehouse [06.06.2007 10:49:14]

#

WoW! (ei World Of Warcraft!) Todella hieno ja toimiva!

Dude [01.04.2008 21:18:06]

#

taidanpas ruveta tekemään asmikirjastoa...


Sivun alkuun

Vastaus

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

Tietoa sivustosta