Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly ja C++ (C++)

Sivun loppuun

KoodiNoppa [22.08.2007 22:26:22]

#

1. Mistä saisi x86:n hardware-keskeytyslistan? Jonkun mahdollisimman selkeän ja missä olisi ohjeita ("tälle int:lle ei voi antaa lukua suoraan, pitää siirtää rekisterin kautta" yms.)
2. Mikä on helpoin tapa saada asm-koodinpätkät toimimaan c++-ohjelmassa?

Erityisesti ääneen ja lisälaitteisiin (usb-härvelit,koskettimistot...) liittyviä keskeytyksiä tarvitaan.

tgunner [22.08.2007 23:22:49]

#

Tuohon kakkoseen voin sanoa, että jos käytössäsi on inline assemblyä tukeva kääntäjä (aika harva varmaan on tukematta?), niin yksinkertaisin keino on käyttää sitä. Toinen apu on asmifunktioiden linkittäminen C++-ohjelmaan linkkerivaiheessa. Eli koodaat asmifunktiot valmiiksi omaan tiedostoonsa ja jaat nämä C++-koodisi kanssa.

Grez [22.08.2007 23:40:15]

#

USB-härveleihin liittyviä BIOSin keskeytyksiä? Voi olla aika hiljaista, ellei puhuta näppiksestä, hiirestä, USB-tikusta ja muusta peruskaurasta mitä PC:n biosit oikeasti jopa tukee. Mutta silloin ohjelman kannalta käsittelet vaan näppistä/hiirtä/massamuistia, ja se, että kyseessä on USB on epäoleellista.

Jos et tarkoittanut BIOSin keskeytyksiä, niin sitten olisi varmaan relevanttia tietää käyttis ja mahdollinen USB-pinta..

KoodiNoppa [23.08.2007 00:39:36]

#

Tukeeko dev-c++ inline assemblyä?

No tällä hetkellä ei muuta tarvitse kuin saada koskettimisto toimimaan... Ohjelmat tunnistavat sen midi-koskettimistona, mutta se on usb-liitännässä kiinni... Sillä usb:lla ei varmaan sitten tee mitään, kun ohjelmatkin ettii tietonsa muualta.

Käyttöjärjestelmänä win2k

EDIT: Missä tiedostomuodossa linkitettävän tiedoston pitää olla?

Turatzuro [23.08.2007 10:38:54]

#

Dev-c++ ei ole kääntäjä, vaan IDE (Integrated Development Environment, ts. kehitysympäristö), ja sillä ei ole mitään väliä koodin kääntymiseen tukeeko ide jotain vai ei. Dev-c++ käyttää kääntäjänään GCC:tä, ja gcc kyllä tukee inline-assemblyä, mikäli sitä välttämättä haluat käyttää.

anttipanda [24.08.2007 12:09:22]

#

"No tällä hetkellä ei muuta tarvitse kuin saada koskettimisto toimimaan... Ohjelmat tunnistavat sen midi-koskettimistona, mutta se on usb-liitännässä kiinni... Sillä usb:lla ei varmaan sitten tee mitään, kun ohjelmatkin ettii tietonsa muualta.

Käyttöjärjestelmänä win2k "

Tälläin "sivusilmällä" kysymys. Et siis voi käyttää midi-koskettimia, koska se on usb-portissa kiinni? En tiedä Win2k:sta, mutta XP:ssä usb-midi-kiipparit toimii ihan vain ajurien asennuksella (tai jopa ilman, XP:ssä ainakin on jonkinlainen usb-midi-usb -mapperi). Ja mitä teet koskettimilla jos et ohjaa midi-ohjelmia?

Itse pistin koskettimet kiinni usb-porttiin, avasin cubasen ja aloin rokkaamaan :)

KoodiNoppa [24.08.2007 15:30:18]

#

Mitenkäs se inline sitten käytännössä toimii? joidenkin sulkeiden sisällä?

Siis kyllä se koskettimisto toimii, mutta se tässä on aiheena että sen saa toimimaan omassa ohjelmassakin, eli löytää tarvittavat arvot keskeytyksillä, rekistereistä tai jostain.
Koska midiä tukevat ohjelmat löytävät koskettimiston (joka on usb:ssä), ajattelin että w2k siirtää tiedot usb-liitännästä sinne mistä midi-in-tiedot löytää (onko tämä se usb-midi-usb-mapperi?)


Ellei sekavista puheista saa selvää, voin yrittää selventää...

Grez [24.08.2007 17:34:53]

#

Kun et kerran ole laite-ajuria ohjelmoimassa Win2k:ssa, niin voit aivan samantien unohtaa nuo keskeytykset etkä tarvitse assembleriakaan yhtään mihinkään (saahan sitäkin toki käyttää, mutta hyöty on olematon).

Käytä Windowsin MIDI APIa.

KoodiNoppa [25.08.2007 15:23:10]

#

Kai se WinApi täytyy vihdoin opetella... Onko netissä jossain hyvää ja helposti ymmärrettävää opasta?

neau33 [26.08.2007 17:33:25]

#

Moikka KoodiNoppa!

Tsekkaa nämä ja kaikki linkit niin löydät purtavaa

Kamaa ...lisää kamaa
ja
imppaa vielä tämä

Deffi [26.08.2007 21:30:07]

#

GCC käyttää oletuksena AT&T-syntaksin inline assemblyä, omasta mielestäni se on aivan kauhea verrattuna Intel-syntaksiin (joo, enhän mä ole AT&T-syntaksiin edes kunnolla tutustunut, mutta kauhealta se ainakin näyttää).
Inline Assembly On GCC using Intel Syntax

Ja kun sitä WinAPI-opasta kyselit, itse pääsin hyvin alkuun WinAPI:n kanssa tällä oppaalla:
theForger's Win32 API Tutorial

KoodiNoppa [26.08.2007 23:20:44]

#

Olen samaa mieltä at&t:stä... Onneksi en tarvitse assemblyä kovin monta riviä (toivottavasti).

Kiitos kaikille vastauksista :)

Pekka Karjalainen [28.08.2007 12:06:25]

#

Ei se AT&T:n syntaksi mitenkään outoa ole. Se vain on eri kulttuuri. Ranskassakin syödään etanoita.

Tällainen taikakalu voi olla avuksi, jos sen erilaisuus häiritsee.

http://www.niksula.cs.hut.fi/~mtiihone/intel2gas/

Tämä on mahdollisesti uudempi versio.

http://dir.filewatcher.com/d/OpenBSD/3.5/sparc/intel2gas-1.3.3.tgz.31969.html

Nämä voivat kyllä olla vähän työläitä saada toimimaan Windowsissa.

anttipanda [30.08.2007 11:15:24]

#

http://www.borg.com/~jglatt/tech/winapi.htm

Tuolta löytyy varmasti sopiva tapa ottaa vastaan midi-viestejä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta