Minulla on sellainen ongelma etten saa ASSEMBLY-koodia kääntymään millään ASSEMBLERilla mitä oon kokeillut. Olisko kellään mitään vinkkejä noiden assemblerien suhteen tai jotain vinkki miksi ne ei oikein käännyt. Minulla on myös Microsoftin Visual C++ -kääntäjä, jos siitä on mitään hyötyä, kun se kuitenkin tukee minun tietääkseni inline-assemblyä?
Kerro tarkemmin ongelmastasi. Tuleeko jotain virheilmoituksia? Mitä assembleria käytät ja mitä kirjoitat komentoriville? Millainen on käännettävä ohjelma? Minä olen kääntänyt assembly-ohjelmia ongelmitta MASMilla, TASMilla ja NASMilla.
Esim. koitin kääntää tuota sinun Assembly -koodi vinkeissä olevaa tekstin valutus koodia NASMilla ja FASMilla, mutta molemmat valittivat siitä DOSSEG -jutusta sitten kokeilin ottaa sen ihan malliksi pois niin rupesi valittamaan ENDistä ja sitten kun otin senkin pois niin se rupesi valittamaan seuraavasta komennosta eli minulla on sellainen kuva, että se aikoo valittaa kaikista komennoista se ASSEMBLERi.
Jos voisit antaa kullanarvoisia neuvoja tämän suhteen niin olisi SUPERIA.
NASMilla kirjoitin komentoriville, kun olin tallentanut sen sinun koodin source.txt -tiedostoon, "NASM G:\source.txt G:\matrix.asm . Noin kirjoitin, mutta ei oikein auttanut se valitti silloin siitä DOSSEGista.
Ohjelman pitäisi toimia sellaisenaan TASMilla, mutta NASMilla ohjelman alku pitää muotoilla hieman toisin. Kun alussa nyt lukee:
DOSSEG .MODEL SMALL .STACK 100h .DATA .CODE
Kirjoita tämän tilalle:
org 100h
Käännöskomento on:
nasm -f bin naytalas.asm -o naytalas.com
Sain käännettyä sen FASMilla, mutta sitten menin komentoriviin ja laittoin ohjelman pyörimään niin ei mitään välittänyt. Se vain odotti hetken ja sitten meni takaisin siihen promptiin.
Minä suosittelisin MASM32:ta. http://www.masm32.com/ MASMilla on helppo tehdä ohjelmia.
Oppaita ja foorumi Win32 sovellusten tekoon MASMilla http://win32asm.cjb.net/
Tuon MASMin sain, mutta nyt en osaa kääntää sillä mitään. Vaikka kuinka painan sieltä project valikosta sitä compile kohtaa niin ei tapahdu mitään.
Mikäköhän vikana? Veikkaisin, että vika on käyttäjässä, mutta apua tarvitaan siltikin.
Se compile kohta ilmeisesti suorittaa tiedoston kanssa samassa kansiossa olevan makeit.* (bat, exe...) tiedoston
MASM32 toimii näin:
Tee tiedosto makeit.bat ja kirjoita sinne
win32asm.cjb.net kirjoitti:
SET FileName=messagebox ml /c /coff %FileName%.asm link /SUBSYSTEM:windows /LIBPATH:c:\masm32\lib %FileName%.obj PAUSE
PAUSE sitä varten että näet errorit. Jotta sen voisi suorittaa vaikka työpöydällä windowsin pitää osata hakea tiedostot masmin kansiosta.
Ohjauspaneeli -> Järjestelmä -> Lisäasetukset -> Ympäristömuuttujat -> PATH kohtaan "%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\masm32\bin"
Näin kääntyy vain win32 ohjelmat, kuten:
win32asm.cjb.net kirjoitti:
.386 .model flat, stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib kernel32.lib include \masm32\include\user32.inc includelib user32.lib .data MsgCaption db "Iczelion's tutorial no.2",0 MsgBoxText db "Win32 Assembly is Great!",0 .code start: invoke MessageBox, NULL,addr MsgBoxText, addr MsgCaption, MB_OK invoke ExitProcess,NULL end start
Aihe on jo aika vanha, joten et voi enää vastata siihen.